Hallo!
Ich habe mir eine Wetterstation zugelegt, die MQTT kann. Es handelt sich um Sainlogic WS3500.
Die Empfehlung habe ich im Internet gefunden und bin dieser gefolgt. Hier ist der Link: Wetterstation MQTT (https://www.5besten.de/product/wetterstation-mit-mqtt/t2/?gad_source=1)
Leider kann ich keine Einstellungen zu MQTT finden. Bevor ich das Gerät zurückschicke, wollte ich mal hier im Forum nachfragen, ob mir jemand sagen kann, wie man dem Gerät MQTT entlocken kann.
Ich habe es mit folgenden Einstellungen versucht:
2024_12_23_17_57_14_Weather_Services_und_6_weitere_Seiten_Persönlich_Microsoft_Edge.png
Liebe Grüße, Eure Jona
Vermutlich nur über Umwege
https://github.com/bachya/ecowitt2mqtt (https://github.com/bachya/ecowitt2mqtt)
Vielleicht geht es mit GW1000 statt MQTT - siehe https://forum.fhem.de/index.php?msg=1315799
Nachtrag: Per Signalduino kann mal die ecowitt-Bresser-.... kompatiblen Sensoren auch empfangen.
Danke, für die schnelle Antwort.
Dann werde ich das Gerät wahrscheinlich zurückschicken.
Inzwischen habe ich alle meine Geräte auf WLAN umgestellt. Vorher hatte ich verschiedene Protokolle, mit jeweils einer Bridge. Diese haben sich als unzuverlässig herausgestellt und wurden abgeschafft.
Beste Erfahrungen habe ich mit MQTT. Allerding habe ich jetzt 30 Geräte im Netz und der Router kommt an seine Grenzen.
Liebe Gruße, Jona
Na ja, wenn du die Basis mit GW1000 abfragen kannst, ist das auch nicht viel anders, wie wenn die per MQTT pusht.
Just my 2ct.
Zitat von: HansIm am 24 Dezember 2024, 10:28:41Dann werde ich das Gerät wahrscheinlich zurückschicken.
Würde ich mir noch einmal überlegen, aber nicht meine Entscheidung.
Das Projekt hat meine Neugier für meine WS980Wifi geweckt.
Das Modul dafür läuft zwar super, aber probieren wollte ich es trotzdem.
Da ich von Python, PIP und Co. allerdings überhaut keine Ahnung habe, hat es etwas länger gedauert.
Auch fehlt noch der autostart über systemctl etc., da seit Bookworm da wohl nur noch eine virtuelle Umgebung läuft.
Hier mal mein config als JSON für ecowitt2mqtt.conf:
{ "battery_override": {
"battery_key1": "boolean"
},
"boolean_battery_true_value": 1,
"default_battery_strategy": "numeric",
"diagnostics": false,
"disable_calculated_data": false,
"endpoint": "/data/report",
"hass_discovery": false,
"hass_discovery_prefix": "homeassistant",
"hass_entity_id_prefix": "ws980wifi",
"input_data_format": "ecowitt",
"input_unit_system": "imperial",
"mqtt_broker": "192.168.2.198",
"mqtt_port": 1883,
"mqtt_password": "",
"mqtt_retain": false,
"mqtt_tls": false,
"mqtt_topic": "wifi980",
"mqtt_username": "fhem",
"output_unit_system": "metric",
"port": 8080,
"raw_data": false,
"verbose": false,
}
Start dann nach Aktivieren der virtuellen Umgebung mit:
ecowitt2mqtt --config /home/pi/ecowitt2mqtt.conf
In FHEM dann noch ein device definiert:
define WS980Test MQTT2_DEVICE
attr WS980Test autocreate 1
attr WS980Test mqttSubscribe wifi980
attr WS980Test readingList wifi980:.* { json2nameValue($EVENT, '', $JSONMAP) }
# CFGFN
# FUUID 676b9d67-f33f-8873-3cca-6b39529d6c7ed241
# IODev MQTT2_Server
# LASTInputDev MQTT2_Server
# MQTT2_Server_CONN MQTT2_Server_192.168.2.53_40571
# MQTT2_Server_MSGCNT 64
# MQTT2_Server_TIME 2024-12-25 07:46:14
# MSGCNT 64
# NAME WS980Test
# NR 782791
# STATE ???
# TYPE MQTT2_DEVICE
# eventCount 64
# OLDREADINGS:
# READINGS:
# 2024-12-25 06:51:35 IODev MQTT2_Server
# 2024-12-25 07:46:14 baromabs 1032.5437603263742
# 2024-12-25 07:46:14 baromrel 1032.5437603263742
# 2024-12-25 07:46:14 beaufortscale 0
# 2024-12-25 07:46:14 dailyrain 0.9906
# 2024-12-25 07:46:14 dewpoint 4.998625732873647
# 2024-12-25 07:46:14 eventrain 3.81
# 2024-12-25 07:46:14 feelslike 5.888888888888889
# 2024-12-25 07:46:14 frostpoint 4.277322107963527
# 2024-12-25 07:46:14 frostrisk No risk
# 2024-12-25 07:46:14 heatindex 4.9877777777777785
# 2024-12-25 07:46:14 humidex 5
# 2024-12-25 07:46:14 humidex_perception Comfortable
# 2024-12-25 07:46:14 humidity 94.0
# 2024-12-25 07:46:14 humidityabs 6.773192697358642
# 2024-12-25 07:46:14 humidityabsin 9.341149233131551
# 2024-12-25 07:46:14 humidityin 51.0
# 2024-12-25 07:46:14 monthlyrain 81.0006
# 2024-12-25 07:46:14 rainrate 0.0
# 2024-12-25 07:46:14 solarradiation 0.0
# 2024-12-25 07:46:14 solarradiation_perceived 0.0
# 2024-12-25 07:46:14 temp 5.888888888888889
# 2024-12-25 07:46:14 tempin 20.999999999999996
# 2024-12-25 07:46:14 thermalperception Dry
# 2024-12-25 07:46:14 totalrain 4100.8046
# 2024-12-25 07:46:14 uv 0.0
# 2024-12-25 07:46:14 weeklyrain 18.2118
# 2024-12-25 07:46:14 wh65batt OFF
# 2024-12-25 07:46:14 winddir 126.0
# 2024-12-25 07:46:14 winddir_name SE
# 2024-12-25 07:46:14 windgust 1.7702784
# 2024-12-25 07:46:14 windspeed 0.3218688
# 2024-12-25 07:46:14 yearlyrain 1122.0958
#
setstate WS980Test 2024-12-25 06:51:35 IODev MQTT2_Server
setstate WS980Test 2024-12-25 07:46:14 baromabs 1032.5437603263742
setstate WS980Test 2024-12-25 07:46:14 baromrel 1032.5437603263742
setstate WS980Test 2024-12-25 07:46:14 beaufortscale 0
setstate WS980Test 2024-12-25 07:46:14 dailyrain 0.9906
setstate WS980Test 2024-12-25 07:46:14 dewpoint 4.998625732873647
setstate WS980Test 2024-12-25 07:46:14 eventrain 3.81
setstate WS980Test 2024-12-25 07:46:14 feelslike 5.888888888888889
setstate WS980Test 2024-12-25 07:46:14 frostpoint 4.277322107963527
setstate WS980Test 2024-12-25 07:46:14 frostrisk No risk
setstate WS980Test 2024-12-25 07:46:14 heatindex 4.9877777777777785
setstate WS980Test 2024-12-25 07:46:14 humidex 5
setstate WS980Test 2024-12-25 07:46:14 humidex_perception Comfortable
setstate WS980Test 2024-12-25 07:46:14 humidity 94.0
setstate WS980Test 2024-12-25 07:46:14 humidityabs 6.773192697358642
setstate WS980Test 2024-12-25 07:46:14 humidityabsin 9.341149233131551
setstate WS980Test 2024-12-25 07:46:14 humidityin 51.0
setstate WS980Test 2024-12-25 07:46:14 monthlyrain 81.0006
setstate WS980Test 2024-12-25 07:46:14 rainrate 0.0
setstate WS980Test 2024-12-25 07:46:14 solarradiation 0.0
setstate WS980Test 2024-12-25 07:46:14 solarradiation_perceived 0.0
setstate WS980Test 2024-12-25 07:46:14 temp 5.888888888888889
setstate WS980Test 2024-12-25 07:46:14 tempin 20.999999999999996
setstate WS980Test 2024-12-25 07:46:14 thermalperception Dry
setstate WS980Test 2024-12-25 07:46:14 totalrain 4100.8046
setstate WS980Test 2024-12-25 07:46:14 uv 0.0
setstate WS980Test 2024-12-25 07:46:14 weeklyrain 18.2118
setstate WS980Test 2024-12-25 07:46:14 wh65batt OFF
setstate WS980Test 2024-12-25 07:46:14 winddir 126.0
setstate WS980Test 2024-12-25 07:46:14 winddir_name SE
setstate WS980Test 2024-12-25 07:46:14 windgust 1.7702784
setstate WS980Test 2024-12-25 07:46:14 windspeed 0.3218688
setstate WS980Test 2024-12-25 07:46:14 yearlyrain 1122.0958
Läuft also vom Grundsatz her.
Schöne Feiertage noch.
Norbert
Edit:
Das Modul liefert mehr Werte als über MQTT von der Sation quasi an ecowitt übertragen werden.
Leider kann man den Umfang der Übertragung aber auch nicht anpassen.
Zitat von: HansIm am 23 Dezember 2024, 19:27:29Ich habe es mit folgenden Einstellungen versucht
Versuche mal, ob es für das Ding ein firmware-Update gibt (unter "Device Setting" zu finden).
Habe das eben bei meinem GW2000 gemacht, und dann kann man neben den auf deinem screenshot angezeigten Optionen noch "MQTT" wählen.
ABER: Das Format ist gewöhnungsbedürftig, in dem die Daten dann kommen, und ob es vollständig ist, habe ich noch nicht geprüft...
Da müsste es ein Update auf EasyWeatherPro 5.1.7 geben.
Zitat von: Beta-User am 25 Dezember 2024, 11:09:04ABER: Das Format ist gewöhnungsbedürftig, in dem die Daten dann kommen, und ob es vollständig ist, habe ich noch nicht geprüft...
Also:
Es sind weniger Daten, die via MQTT kommen, die sind "übel" verpackt (siehe Code), und die Einheiten sind "internationalisiert" (Temperaturen in Fahrenheit, wasweißich...). Kurz: Ich werde bei GW1000_TCP bleiben, das lohnt (jedenfalls so) nicht via MQTT...
Falls es jemand ausprobieren will (als ClientID ist im Webinterface der Station "gw2000" eingestellt, der Topic setzt sich aus dem prefix+MAC zusammen):
defmod gw2000 MQTT2_DEVICE gw2000
attr gw2000 readingList ecowitt/A0A3B37AEE4F:.* {my %ret;; my @arr = split m{&}x, $EVENT;; for (@arr) {my ($k,$v) = split m{=}x, $_;; $ret{$k}=$v};; return \%ret }
ecowitt2mqtt liefert ein JSON zurück.
Allerdings ohne ClientID.
Daher funzt im MQTT2-Server das autocreate nicht.
Kann bei der WS980wifi auch nicht eingestellt werden.
Der Code oben ist nicht für ecowitt2mqtt, sondern für das "eigentliche Anliegen" des TE, also das "native" Aktivieren der MQTT-Option direkt im Gateway. Bei meinem GW war dafür ein update erforderlich, und vermutlich klappt das auch mit der Station des TE, sobald da eine aktuelle firmware drauf läuft.
Dann kann man direkt da drauf auch die ganzen Einstellungen machen, einschließlich ClientID.
Allerdings sind die Daten halt mehr oder weniger "unbrauchbar" und ungewohnt verpackt (nicht JSON).
Zitat von: Nobbynews am 25 Dezember 2024, 13:41:09ecowitt2mqtt liefert ein JSON zurück.
Allerdings ohne ClientID.
Daher funzt im MQTT2-Server das autocreate nicht.
Kann bei der WS980wifi auch nicht eingestellt werden.
Vermutlich verwendet dieser Dienst auch nur die API, die auch das FHEM-Modul anzapft. Wenn dann intern mosquitto_pub verwendet wird, gibt es eine ClientID (ohne wäre wider die MQTT-Spec), aber halt eine zufällig generierte, die dann kein autocreate in FHEM nach sich zieht.
Da ich aber keinen Vorteil darin erkennen kann, einen externen Dienst die API anzapfen zu lassen, um die Daten dann per MQTT zu versenden, statt das direkt in FHEM zu machen, habe ich diesen Weg nicht ausgetestet. MQTT "per se" ist ja kein Mehrwert, v.a., wenn damit keinerlei "sinnvolle" MQTT-Funktionalität genutzt wird.
So jedenfalls meine Einschätzung auch zur aktuellen Implementierung direkt auf dem GW. Da hat jemand einfach "irgendwas" gemacht, um einen "Haken" an das "Ob" machen zu können...
Zitat von: Beta-User am 25 Dezember 2024, 14:34:44gibt es eine ClientID (ohne wäre wider die MQTT-Spec), aber halt eine zufällig generierte, die dann kein autocreate in FHEM nach sich zieht.
Jedenfalls interpretiere ich den Monitor von MQTT2-Server so.
Siehe screenshot.
Zitat von: Nobbynews am 26 Dezember 2024, 05:32:07Jedenfalls interpretiere ich den Monitor von MQTT2-Server so.
Hmm, sieht in der Tat komisch aus. Rudi hat irgendwann mal was eingebaut, um "leere" ClientIds zu umschiffen, siehe https://forum.fhem.de/index.php?msg=1171073, aber als "sauber" würde ich einen Dienst nicht bezeichnen, der das nicht (sinnvoll) konfigurierbar macht und CID als "leer" sendet.
Mir auch egal, so eine Konstruktion macht für mich eh' keinen Sinn, und im Moment könnten wir auch nur raten, was der TE davon hält...
Zitat von: Nobbynews am 25 Dezember 2024, 07:55:20Das Modul dafür läuft zwar super, aber probieren wollte ich es trotzdem.
Welches Modul ist das? GW1000_TCP, Signalduino oder noch was anderes?
Zitat von: Beta-User am 26 Dezember 2024, 08:35:25Welches Modul ist das? GW1000_TCP, Signalduino oder noch was anderes?
WS980
Zitat von: Nobbynews am 26 Dezember 2024, 08:40:11WS980
Thx.
Wenn man mal genauer schaut, gibt es eine ziemliche Vielzahl von Modulen zur Abfrage diverser Wetterstationen, war mir bisher gar nicht so aufgefallen.
WS980 fragt jedenfalls auch via Port 45000 ab, dürfte also auch dieselbe API sein...