FOSHKplugin & Home Assistant

Für Geräte von froggit
Benutzeravatar
olicat
Offline
Beiträge: 2030
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 28 mal
Danksagung erhalten: 414 mal
Kontaktdaten:

FOSHKplugin & Home Assistant

#1

Beitrag von olicat »

Hi!

Die Ecowitt-Integration für Home Assistant liefert zwar die meisten Keys der aktuellen Ecowitt-Wetterstationen.
Jedoch werden die zusätzlichen von FOSHKplugin erzeugten Keys natürlich nicht verarbeitet und landen somit nicht im HA.
Ich vermute, dass es ein paar Nutzer gibt, die daran Interesse hätten - zumindest fand ich im Netz ein paar entsprechende Anfragen.

Ein Ausweg wäre, den Autor der Ecowitt-Integration um eine Erweiterung zu bitten. Allerdings mag ich nicht, anderen "meine" Arbeit aufzuhalsen. Außerdem könnte man das dann schwerlich weiter Ecowitt-Integration nennen ...
Eine Alternative wäre eine eigene FOSHKplugin-Integration. Dazu müsste ich aber sehr viel mehr von HA und dessen Schnittstellen wissen. Das erscheint mir sehr aufwändig. Ich kann mich aber auch irren.

Da FOSHKplugin von sich aus bereits MQTT unterstützt und es für HA eben auch eine MQTT-Integration gibt, liegt dessen Einsatz nahe.
Ich habe die MQTT-Unterstützung im FOSHKplugin nun dahingehend erweitert, dass FOSHKplugin ohne jegliche weitere Konfiguration (händisches Zuordnen der Entitäten im YAML) per MQTT-Discovery sämtliche Keys & Values bereitstellt.
FOSHKplugin wird somit als eigenständiges Gerät durch HA erkannt und und alle Entitäten sind - inkl. Einheit - sofort verfügbar.

Nachteil:
Ein MQTT-Broker ist erforderlich. Ich hatte den sowieso hier - aber manch ein Nutzer müsste den womöglich erst installieren und konfigurieren.

Nun frage ich mich, ob ich diesen Weg weiter verfolgen soll.
Was meint ihr? Ist ein MQTT-Broker im Home Assistant-Umfeld inzwischen voraussetzbar oder dessen Installation erwartbar?
Oder ist das Erstellen einer eigenen Integration sowie dessen nachträgliche Installation nicht besonders schwierig und sollte präferiert werden?
Hat jemand ein paar Hintergrundinformationen, will den aktuellen Stand vielleicht testen oder hat andere hilfreiche Ideen?
Ich suche noch, was ich mit den vorhandenen Werten nun eigentlich anfangen kann. Zumindest "schön" visualisieren sollte doch ohne Probleme möglich sein, oder?
Ich habe auch noch ein paar grundsätzliche Fragen zu HA - fühlt sich jemand diesbezüglich "wissender" als ich?
Würde mich über Reaktionen freuen, vielen Dank!

Oliver
Dateianhänge
FOSHKpluginHA-MQTT.png
FOSHKpluginHA-MQTT.png (90.13 KiB) 1108 mal betrachtet
Benutzeravatar
Werner
Offline
Beiträge: 121
Registriert: 07 Dez 2020, 18:23
Wohnort: Lackenhäuser
Danksagung erhalten: 33 mal
Kontaktdaten:

Re: FOSHKplugin & Home Assistant

#2

Beitrag von Werner »

Ein MQTT-Broker ist erforderlich. ... aber manch ein Nutzer müsste den womöglich erst installieren und konfigurieren.
Nun frage ich mich, ob ich diesen Weg weiter verfolgen soll.
Ich bin ja auch ganz neu bei HA - letzte Woche erstmal installiert ;)
Und hab auch gleich den MQTT-Broker benötigt.

Ich denke, das dieser Weg (via MQTT-Broker) ganz richtig ist.
Und zur Not kann man ja die Daten damit auch noch an das vorhandene Ecowitt Add-on weiterreichen.

Das Ecowitt Add-on lässt z.B. seit langem die "Console-Batterie" vermissen und der Sensoren-Batterie-Wert mit DC-Versorgung wird
mit 120% gelistet.
will den aktuellen Stand vielleicht testen
Ich teste das gerne.
Wetterchen
Offline
Beiträge: 55
Registriert: 22 Dez 2020, 14:06
Wohnort: Bochum
Hat sich bedankt: 16 mal
Danksagung erhalten: 4 mal
Kontaktdaten:

Re: FOSHKplugin & Home Assistant

#3

Beitrag von Wetterchen »

Mhm also mir reicht ehrlich gesagt der aktuelle Stand mit HA und den Ecowitt Protokoll, welches Foshk entsprechend hin funkt.

Die Barometertrends etc. sind mir tatsächlich nicht wichtig.

Der MQTT-Broker ist bei HA (bzw. generell die MQTT Addons von HA) ganz schrecklich und damit komme ich gar nicht so klar .
Hauptsächlich läuft das meiste bei mir ohnehin via InfluxDB & Grafana. Ich könnte vll. irgendwann mal auf iobroker wechseln, aber Influx hat nun 2 Jahre Wetterdaten inne, die will ich ungern aufgeben :mrgreen:
Benutzeravatar
Gyvate
Offline
Beiträge: 2527
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 381 mal
Kontaktdaten:

Re: FOSHKplugin & Home Assistant

#4

Beitrag von Gyvate »

es gibt übrigens auch funktionierende Ansätze, wie weewx via weewx-mqtt Extension Daten an HA schickt, die dort verwendet werden können und wohl auch zu gewünschten Ergebnissen führen. Es gab dazu jüngst eine Diskussion in der weewx-user-group (Topic: WS3500 - Only getting Station Name and Time/Date ???). Vielleicht gibt es dort auch noch ein paar Anregungen. Bzw. @vinceskahan als "Ratgeber".

Das sind dann, in der weewx-Lösung, allerdings maximal die Daten, die ein erweiterter Interceptor-Treiber liefert - also den maximalen Customized Server String.

Zusätzliche Erweiterungen des FOSHKplugin sind da natürlich nicht drin, könnten aber auf diesem von Dir ja auch bereits vorgeschlagenen Weg ebenfalls übermittelt werden. Ist ja egal welcher mqtt-Broker die Daten liefert, wenn die Bestellung (subscription) stimmt.
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
Benutzeravatar
olicat
Offline
Beiträge: 2030
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 28 mal
Danksagung erhalten: 414 mal
Kontaktdaten:

Re: FOSHKplugin & Home Assistant

#5

Beitrag von olicat »

Hi!

Das Senden an MQTT ist nicht das Problem. Das konnte auch FOSHKplugin bisher schon.
Allerdings zieht das dann eine laengere Konfigurationsarbeit nach, weil man fuer jeden gewuenschten Datenpunkt im Home Assistant einen Eintrag in einer YAML machen muss. Das ist sehr aufwaendig (bei 200 oder gar 450 Topics).
Das ist also nichts, was ich einem HA-Nutzer empfehlen wuerde ...

Die Auto-Discovery von HA ist etwas sehr seltsam und entspricht nicht wirklich ihrem Namen. Man wuerde natuerlich erwarten, dass HA eine Baumstruktur aller gefundenen Elemente anzeigt und man einfach einen Zweig oder ein Element anhakt und so fuer die Verarbeitung durch HA konfiguriert.
Leider ist dem nicht so. Zumindest habe ich das nicht gefunden.

Stattdessen muss man auf Endgeraete-Seite eine spezielle Baumstruktur nach einem festgelegten Format (Discovery) erzeugen.
Dann werden tatsaechlich wie von Geisterhand saemtliche Topics automatisch und ohne jede weitere Konfiguration HA zur Verfuegung gestellt.
Und genau das will ich mit meiner Erweiterung der MQTT-Funktion von FOSHKplugin erreichen.
Der Aufwand fuerr den Nutzer reduziert sich dann auf das Hinzufuegen der MQTT-Integration - Eintragen des Servernamens, Ports und der credentials.

Oliver
Benutzeravatar
Gyvate
Offline
Beiträge: 2527
Registriert: 10 Aug 2021, 23:41
Wohnort: Saarbrücken
Hat sich bedankt: 12 mal
Danksagung erhalten: 381 mal
Kontaktdaten:

Re: FOSHKplugin & Home Assistant

#6

Beitrag von Gyvate »

olicat hat geschrieben: 25 Mär 2024, 09:38 Allerdings zieht das dann eine laengere Konfigurationsarbeit nach, weil man fuer jeden gewuenschten Datenpunkt im Home Assistant einen Eintrag in einer YAML machen muss. Das ist sehr aufwaendig (bei 200 oder gar 450 Topics).
Das ist also nichts, was ich einem HA-Nutzer empfehlen wuerde ...
Ich würde einfach eine maximale YAML bereitstellen. 8-)
Dann müsste der Benutzer, wie bei der Ecowitt Integration, die gewünschten Sensoren, die er in einem Dashboard zur Anzeige bringen will, auswählen ....
(oder habe ich da etwas übersehen oder nicht richtig verstanden ?)
Ecowitt WS2320E,HP2553,HP3501,GW2001,GW1100, GW1000,WH2650,WN1910,WN1980, Meteobridge RPi4B-2GB/(16)32GB SLC 3165, Weewx 4.5.1/4.10.2, CumulusMX 3.28.4 b3282, Barani MeteoShield Pro, MetSpecRad02, Personal Weather Tablet(PWT) - http://meshka.eu
Benutzeravatar
olicat
Offline
Beiträge: 2030
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 28 mal
Danksagung erhalten: 414 mal
Kontaktdaten:

Re: FOSHKplugin & Home Assistant

#7

Beitrag von olicat »

Hi!

Ich habe den aktuellen Entwicklungsstand dazu als FOSHKplugin v0.10 Beta 240326 veroeffentlicht.
Hier ein deutscher Text dazu:
Weiterverarbeitung der Daten von FOSHKplugin in Home Assistant

Es gibt verschiedene Möglichkeiten der Integration der Daten einer Ecowitt-Wetterstation in Home Assistant.

Am einfachsten lässt sich dies über die im Core enthaltene Ecowitt-Integration lösen. Diese liefert zwar die meisten Keys der aktuellen Ecowitt-Wetterstationen.
Jedoch werden die zusätzlichen von FOSHKplugin erzeugten Keys natürlich nicht verarbeitet und landen somit nicht im HA.

Eine weitere Möglichkeit stellt - bei Vorhandensein eines MQTT-Brokers - die Übermittlung der Daten via MQTT dar.
Allerdings zieht das eine längere Konfigurationsarbeit nach, weil man für jeden gewünschten Datenpunkt im Home Assistant einen Eintrag in einer YAML machen muss:

Code: Alles auswählen

mqtt:
  sensor:
  - state_topic: "GW2000/tc_co2"
    name: "WH45 Temperature"
    unit_of_measurement: "°C"
    device_class: "temperature"
    icon: "mdi:thermometer"
Das ist sehr aufwendig (bei 200 oder gar 450 Topics).

Mit v0.10 unterstützt FOSHKplugin nun auch die MQTT-Discovery von Home Assistant.
Dabei wird durch HA automatisch FOSHKplugin als ein Gerät mit allen Entitäten gefunden, ohne das irgendwelche Konfigurationsmaßnahmen erforderlich sind. Icon, Einheit und Geräteklasse werden bereits vorbelegt.
Ein Forward-Block in der Konfigurationsdatei foshkplugin.conf sollte ungefähr so aussehen:

Code: Alles auswählen

[Forward-60]
FWD_TYPE = MQTTMET
FWD_CMT = MQTT-Forward of metric values to LoxBerry
FWD_URL = 192.168.15.236:1883@homeassistant/FOSHKplugin
FWD_ENABLE = True
FWD_OPTION = MQTTCYCLE=5,hass=True,devname=GW1000-Test,minmax=False,status=False
FWD_SID = MQTT-username
FWD_PWD = MQTT-password
FWD_STATUS = True
Als Forward-Typ FWD_TYPE sollte für metrische Werte MQTTMET gewählt werden - bei imperialen Maßsystem ist entsprechend MQTTIMP zu wählen.
In der FWD_URL ist das Ziel - also der MQTT-Broker gemeinsam mit der gewünschten Hierarchie anzugeben. Der Aufbau der Adresse lautet MQTTipaddress:port@topic-hierarchy%prefix. Ein Präfix ist optional und muss daher nicht angegeben werden.
In der FWD_OPTION-Zeile muss zur Aktivierung der Auto-Discovery zumindest hass=True eingetragen werden. Mit devame=name wird der Name des Geräts definiert (Standard: FOSHKplugin).
Standardmäßig sendet FOSHKplugin die Daten nur bei Wertänderungen an den Broker. Zusätzlich kann per MQTTCYCLE ein Intervall in Minuten eingetragen werden, in dem ALLE Topics - unabhängig von Wertänderungen - zum Broker geschickt werden.
Bei einem Intervall von 0 werden bei jedem Sendeintervall ALLE Topics gesendet.
Zur Minimierung des Datentransfers empfehle ich für den Regelbetrieb einen Intervall von 10 oder 5 Minuten einzutragen.
Sollte der MQTT-Broker eine Anmeldung erfordern, können mit FWD_SID (Benutzername) und FWD_PWD (Passwort) die credentials konfiguriert werden.

Standardmäßig werden alle Werte inkl. der min/max-Werte (sofern konfiguriert) per MQTT übermittelt. Um die Übermittlung der min/max-Werte zu unterbinden, kann als zusätzliche Option in FWD_OPTION minmax=False gesetzt werden. Sollen zusätzlich auch die Statusmeldungen von FOSHKplugin per MQTT verfügbar gemacht werden, sollte FWD_STATUS auf True gesetzt werden. Alternativ kann diese Option als status=True auch in FWD_OPTION angegeben werden.

Achtung!
Die Schreibweise der Optionen ist case-sensitiv - es gelten also ausschließlich "MQTTCYCLE", "hass", "devname", minmax und status.
Die Hierarchie wie auch der Gerätename dürfen keine Sonderzeichen, Umlaute oder Leerzeichen enthalten (diese werden automatisch entfernt).

Im Home Assistant ist unter Settings/Devices&Services über den Button unten rechts "ADD INTEGRATION" die MQTT-Integration auszuwählen und zu konfigurieren (Adresse, Port und ggf. credentials):
mqtt-config.png
mqtt-config.png (34.88 KiB) 978 mal betrachtet
Unter den konfigurierten Integrationen findet sich daraufhin der Button MQTT, der bereits 1 erkanntes Gerät anzeigt:
mqtt-configured.png
mqtt-configured.png (54.35 KiB) 978 mal betrachtet
Nach Klick auf den MQTT-Button erscheinen Informationen zu dieser Integration wie Anzahl der Geräte, Anzahl der Entitäten in dieser Integration:
mqtt-entries.png
mqtt-entries.png (29.1 KiB) 978 mal betrachtet
In der Geräte-Info kann man schließlich alle Informationen zum FOSHKplugin-Device sehen und ggf. ändern:
mqtt-device.png
mqtt-device.png (147.63 KiB) 978 mal betrachtet
Sämtliche von FOSHKplugin erzeugte Datenpunkte sollten nun innerhalb von Home Assistant für die weitere Verwendung und Visualisierung zur Verfügung stehen.

Hinweis:
Ein äußerst hilfreiches Tool zur Analyse bei etwaigen Problemen oder auch zum allgemeinen Grundverständnis zu MQTT ist der MQTT-Explorer, der für verschiedene Plattformen verfügbar ist.

Update wie üblich:

Code: Alles auswählen

sudo -u username ./generic-FOSHKplugin-install.sh -upgrade generic-FOSHKplugin-0.0.10Beta.zip
sudo -u username ./generic-FOSHKplugin-install.sh -repair
Das ist noch ein sehr früher Zustand der Integration - ich empfehle eine parallele Integration in HA zur etvtl. bereits vorhandenen Lösung.
Dieses "Rezept" findet sich in englischer Sprache auf der Webseite zu FOSHKplugin.

Oliver
Zuletzt geändert von olicat am 27 Mär 2024, 23:05, insgesamt 2-mal geändert.
Benutzeravatar
Werner
Offline
Beiträge: 121
Registriert: 07 Dez 2020, 18:23
Wohnort: Lackenhäuser
Danksagung erhalten: 33 mal
Kontaktdaten:

Re: FOSHKplugin & Home Assistant

#8

Beitrag von Werner »

@Oliver,

das hast Du genial gelöst :-Su :thumbup:
Benutzeravatar
olicat
Offline
Beiträge: 2030
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 28 mal
Danksagung erhalten: 414 mal
Kontaktdaten:

Re: FOSHKplugin & Home Assistant

#9

Beitrag von olicat »

Hi!

Es gibt hierzu eine klitzekleine Aenderung auf Nutzerwunsch - ich habe den Text oben aktualisiert.
Die Aenderung ist:

Standardmäßig werden alle Werte inkl. der min/max-Werte (sofern konfiguriert) per MQTT übermittelt. Um die Übermittlung der min/max-Werte zu unterbinden, kann als zusätzliche Option in FWD_OPTION minmax=False gesetzt werden.
Sollen zusätzlich auch die Statusmeldungen von FOSHKplugin per MQTT verfügbar gemacht werden, sollte FWD_STATUS auf True gesetzt werden. Alternativ kann diese Option als status=True auch in FWD_OPTION angegeben werden.


Neu ist also, das sowohl minmax als auch status innerhalb der FWD_OPTION (de)aktiviert werden koennen.
Das sollte den traffic erheblich reduzieren - immerhin gibt es fuer die meisten Werte im minmax 4 weitere Werte (min-Wert, min-Zeit, max-Wert und max-Zeit). Das Mitsenden des Status konnte bisher schon ueber FWD_STATUS beeinflusst werden. Als Option in FWD_OPTION ist es aber (zusaetzlich) sinnvoller. FWD_OPTION uebertrumpft FWD_STATUS.

Gueltig ist dieses Verhalten ab Beta 240327.
Behoben wurde auch ein Problem mit dem Versand von PM2.5 zum MQTT-Broker.

Oliver
Danke, Werner - auch fuer Test und Anregung!
Benutzeravatar
olicat
Offline
Beiträge: 2030
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 28 mal
Danksagung erhalten: 414 mal
Kontaktdaten:

Re: FOSHKplugin & Home Assistant

#10

Beitrag von olicat »

Hi!
Wetterchen hat geschrieben: 24 Mär 2024, 23:31 Mhm also mir reicht ehrlich gesagt der aktuelle Stand mit HA und den Ecowitt Protokoll, welches Foshk entsprechend hin funkt.

Die Barometertrends etc. sind mir tatsächlich nicht wichtig.
Kein Problem. Fuer die meisten Nutzer sollte die Ecowitt-Unterstuetzung direkt im Home Assistant-Core wohl ausreichen.
Wer aber ohnehin bereits FOSHKplugin im Einsatz hat, kann durchaus ueber den Weg via MQTT nachdenken:

Vorteile der Anbindung via FOSHKplugin und MQTT
  • Werte der Signalqualität der Sensoren werden übermittelt (sofern Konsole die http/JSON-API unterstützt)
  • zusätzliche Werte verfügbar wie Windchill, Taupunkt (auch der Innensensoren), Spread, Feelslike, Hitzeindex, AQI für WH41/43/45/46, 10min-Average für Windgeschwindigkeit und -richtung, max. Böe der letzten 10 Minuten, Helligkeit (lux), Wolkenhöhe, Sonnenscheindauer, Luftdruck-Trend und -Änderung 1h/3h, Intervall, wenn EVAL_VALUES aktiv
  • beliebige Werte anderer Sensoren können eingebunden werden (sofern per Script abrufbar)
  • Verfügbarkeit von min/max-Werten mit jeweiligen Zeiten
  • Warnungen (Gewitter, Sturm, Leckage, CO2, Ausfall von Station oder Sensoren, Batteriewarnung, Intervall-Warnung, Update) sind direkt im Home Assistant verfügbar - ohne zusätzliche Logik
Mit der Unterstuetzung der Discovery-Funktion kann ich die Anbindung via FOSHKplugin und MQTT wirklich empfehlen.
Wobei meine Erfahrungswerte damit leider noch begrenzt sind - ich nutze HA hier (bisher?) nicht produktiv.
Daher bin ich auch sehr interessiert an Euren Erfahrungen, Ideen und Verbesserungsvorschlaegen.

Oliver
Antworten