Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
-
- Beiträge: 13
- Registriert: 4. Mär 2021 11:36
Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
Meine Systemumgebung:
Synology DS220+, Installierte DSM-Version 6.2.4-25556, Docker, Openhab:3.4.0.M5
Voraussetzung zum Abruf der Daten:
Es muss ein Account unter www.ecowitt.net angelegt werden.
Im erstellten Account kann unter „User profil“ der Application Key und der API Key erzeugt werden.
(API Keys --> create) Die Schlüssel werden zum Einlesen des JSON-String in OH3 benötigt.
MAC-Adresse der WS3500 Wetterstation
1.Anlegen eines http-Thing
Basis-Url
https://api.ecowitt.net/api/v3/device/r ... l_back=all
Aktualisierungsintervall kann nach Wunsch in Sekunden eingestellt werden. Ich habe hier 60 Sek. gewählt
Anlegen eines Item im Channel zur Speicherung des ausgelesenen JSON-String
Anmerkung:
Der erhaltene String kann zum besseren Erkennen der Aufbaustruktur mit einem Json-Parser angeschaut werden.
Ich nutze hierzu den http://json.parser.online.fr/ Online Parser
Hinweis: Die Ecowitt-Daten werden im Imperialen System geliefert.
2. Erstellen einer Rule zum Auslesen der Wetterwerte aus dem JSON-String mit Blockly
When
Als Trigger für die Rule ist „an item state change“ mit dem angelegten Item aus dem http-Thing auszuwählen.
Then
Als Action ist “Run script --> Design with Blockly” auszuwählen
3. Erstellen des scripts mit Blockly
1. Schritt
Erstellen von 2 Blockly-Variablen unter Menüpunkt „Variables“
var_json_string_ecowitt --> (bekommt den json-String zugewiesen)
var_sensorwert_ecowitt --> (bekommt nacheinander alle Sensorwerte zugewiesen)
2. Schritt
Einlesen und Umwandeln des Items das den JSON-String enthält und speichern in der Blockly-Variablen
(„create text with“ unter Menüpunkt Text)
3. Schritt
Auslesen der einzelnen, gewünschten Wetterstationswerte mit Umwandlung vom imperialem in metrisches System und Runden auf eine Nachkommastelle.
Anmerkung:
Für alle gewünschten Wetterstationswerte müssen Items angelegt werden die die Daten speichern.
Blockly-Beispiel "Temperaturwerte und Luftfeuchtigkeit aussen und innen"
Struktur aus dem JSON-Sting für die Aussentemperatur --> $.data.outdoor.temperature.value
Umwandlung Temperaturwert von °F in °C --> (°F-32) x 5/9 = °C
Ist analog für weitere gewünschte Wetterdaten anzuwenden
Korrekturwerte hierzu:
Luftdruck von inHg in hPa --> inHg x 33.8639
Niederschlag von Inch in mm --> inch x 25.4
Windgeschwindigkeit von Inch in mm --> miles x 1.77028
usw.
Viel Erfolg beim Umsetzen
Synology DS220+, Installierte DSM-Version 6.2.4-25556, Docker, Openhab:3.4.0.M5
Voraussetzung zum Abruf der Daten:
Es muss ein Account unter www.ecowitt.net angelegt werden.
Im erstellten Account kann unter „User profil“ der Application Key und der API Key erzeugt werden.
(API Keys --> create) Die Schlüssel werden zum Einlesen des JSON-String in OH3 benötigt.
MAC-Adresse der WS3500 Wetterstation
1.Anlegen eines http-Thing
Basis-Url
https://api.ecowitt.net/api/v3/device/r ... l_back=all
Aktualisierungsintervall kann nach Wunsch in Sekunden eingestellt werden. Ich habe hier 60 Sek. gewählt
Anlegen eines Item im Channel zur Speicherung des ausgelesenen JSON-String
Anmerkung:
Der erhaltene String kann zum besseren Erkennen der Aufbaustruktur mit einem Json-Parser angeschaut werden.
Ich nutze hierzu den http://json.parser.online.fr/ Online Parser
Hinweis: Die Ecowitt-Daten werden im Imperialen System geliefert.
2. Erstellen einer Rule zum Auslesen der Wetterwerte aus dem JSON-String mit Blockly
When
Als Trigger für die Rule ist „an item state change“ mit dem angelegten Item aus dem http-Thing auszuwählen.
Then
Als Action ist “Run script --> Design with Blockly” auszuwählen
3. Erstellen des scripts mit Blockly
1. Schritt
Erstellen von 2 Blockly-Variablen unter Menüpunkt „Variables“
var_json_string_ecowitt --> (bekommt den json-String zugewiesen)
var_sensorwert_ecowitt --> (bekommt nacheinander alle Sensorwerte zugewiesen)
2. Schritt
Einlesen und Umwandeln des Items das den JSON-String enthält und speichern in der Blockly-Variablen
(„create text with“ unter Menüpunkt Text)
3. Schritt
Auslesen der einzelnen, gewünschten Wetterstationswerte mit Umwandlung vom imperialem in metrisches System und Runden auf eine Nachkommastelle.
Anmerkung:
Für alle gewünschten Wetterstationswerte müssen Items angelegt werden die die Daten speichern.
Blockly-Beispiel "Temperaturwerte und Luftfeuchtigkeit aussen und innen"
Struktur aus dem JSON-Sting für die Aussentemperatur --> $.data.outdoor.temperature.value
Umwandlung Temperaturwert von °F in °C --> (°F-32) x 5/9 = °C
Ist analog für weitere gewünschte Wetterdaten anzuwenden
Korrekturwerte hierzu:
Luftdruck von inHg in hPa --> inHg x 33.8639
Niederschlag von Inch in mm --> inch x 25.4
Windgeschwindigkeit von Inch in mm --> miles x 1.77028
usw.
Viel Erfolg beim Umsetzen
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Beiträge: 126
- Registriert: 20. Jun 2020 12:21
- Wohnort: Gelsenkirchen, NRW
Re: Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
Geht das nicht einfacher mit der JSONPath Transformation? Mit °F als Unit-Symbol sollte die Umwandlung dann von openHAB selbst übernommen werden (bei einem Number:Temperature Item).
openHAB 4.0.0-SNAPSHOT - - local build -
APU2, 4GB RAM, 32GB SSD, Debian Buster
openHAB Core/Distro/Addons & SmartHome/J Maintainer
APU2, 4GB RAM, 32GB SSD, Debian Buster
openHAB Core/Distro/Addons & SmartHome/J Maintainer
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
Da diese wohl baugleich mit der Fine Offset WH2910 ist würde ich mal das dazu passende Binding ausprobieren.
Würde die Konfiguration enorm vereinfachen.
https://www.openhab.org/addons/bindings ... erstation/
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 13
- Registriert: 4. Mär 2021 11:36
Re: Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
Erstmal danke für die Hinweise
@ J-N-K
Ob das einfacher geht mit der JSONPath Transformation weiß ich nicht. Dazu sind meine Programmierkenntnisse zu limitiert.
Wie/wo müsste das mit der Unit-Einheit umgesetzt werden ? (Item ist Number:Temperature)
@sihui
Die WS3500 bekomme ich mit dem FineOffsetWeatherStation-Binding nicht zum laufen.
Ich hatte das zuvor ohne Erfolg ausprobiert und hab mich deshalb für das HTTP-Binding entschieden
@ J-N-K
Ob das einfacher geht mit der JSONPath Transformation weiß ich nicht. Dazu sind meine Programmierkenntnisse zu limitiert.
Wie/wo müsste das mit der Unit-Einheit umgesetzt werden ? (Item ist Number:Temperature)
@sihui
Die WS3500 bekomme ich mit dem FineOffsetWeatherStation-Binding nicht zum laufen.
Ich hatte das zuvor ohne Erfolg ausprobiert und hab mich deshalb für das HTTP-Binding entschieden
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
Und mit dem IPObserver Binding?Dieter Zimmermann hat geschrieben: ↑11. Dez 2022 14:54 @sihui
Die WS3500 bekomme ich mit dem FineOffsetWeatherStation-Binding nicht zum laufen.
Ich hatte das zuvor ohne Erfolg ausprobiert und hab mich deshalb für das HTTP-Binding entschieden
https://www.openhab.org/addons/bindings/ipobserver/
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 13
- Registriert: 4. Mär 2021 11:36
Re: Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
Mit dem IPObserver-Binding bekomme ich zwar alle Channels angezeigt aber die Items werden nicht mit Daten gefüllt.
Möglicherweise benötigt es zum Abrufen der Daten von weatherunderground einen kostenpflichtigen Account/API Key ?
Ich bin da jedenfalls nicht weitergekommen und hab deshalb letztendlich den Weg über Ecowitt mit dem HTTP-Binding gewählt was funktioniert.
Möglicherweise benötigt es zum Abrufen der Daten von weatherunderground einen kostenpflichtigen Account/API Key ?
Ich bin da jedenfalls nicht weitergekommen und hab deshalb letztendlich den Weg über Ecowitt mit dem HTTP-Binding gewählt was funktioniert.
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
Das ist die Hauptsache

openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 13
- Registriert: 4. Mär 2021 11:36
-
- Beiträge: 64
- Registriert: 17. Nov 2020 22:38
Re: Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
Hi.
Zufällig Linux am laufen?
Dann wäre das eventuell was für Dich: https://loxwiki.atlassian.net/wiki/spac ... ic+version
Das Tool fungiert als Broker, fragt die Wetterstation ab, füttert influxdb, stellt die Daten per MQTT zur Verfügung und vieles mehr. Looft komplett lokal, ohne irgendwelche Accounts. Kann, wenn Du willst, Ecowitt, OWM, WU oder what ever füttern.
Edit:
Hast ja ne Syno, ganz übersehen.
Zufällig Linux am laufen?
Dann wäre das eventuell was für Dich: https://loxwiki.atlassian.net/wiki/spac ... ic+version
Das Tool fungiert als Broker, fragt die Wetterstation ab, füttert influxdb, stellt die Daten per MQTT zur Verfügung und vieles mehr. Looft komplett lokal, ohne irgendwelche Accounts. Kann, wenn Du willst, Ecowitt, OWM, WU oder what ever füttern.
Edit:
Hast ja ne Syno, ganz übersehen.

openHAB 4.2.0 auf Debian 12 als VM unter Proxmox
-
- Beiträge: 13
- Registriert: 4. Mär 2021 11:36
Re: Wetterstation WS3500 (Sainlogic) mit Daten von Ecowitt in OH3 mit HTTP-Binding einbinden
Danke für den Tip, werde ich mir mal anschauen.