Wetterstation mit MQTT - WS3500

Begonnen von HansIm, 23 Dezember 2024, 19:27:29

Vorheriges Thema - Nächstes Thema

HansIm

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

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:
Du darfst diesen Dateianhang nicht ansehen.

Liebe Grüße, Eure Jona
- raspberry pi
- MySensors Gateway mit Arduino Pro Mini, NRF24L01+ und USB/Serial Light Adapter an USB
- Sensoren nach MySensors mit Arduino, NRF24L01+ und DS18B20, Dimmer usw.
- Arduino UNO, NRF24L01+  mit LED Display 96x16
- FHEM

Nobbynews


Beta-User

#2
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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

HansIm

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
- raspberry pi
- MySensors Gateway mit Arduino Pro Mini, NRF24L01+ und USB/Serial Light Adapter an USB
- Sensoren nach MySensors mit Arduino, NRF24L01+ und DS18B20, Dimmer usw.
- Arduino UNO, NRF24L01+  mit LED Display 96x16
- FHEM

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Nobbynews

#5
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.

Beta-User

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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Nobbynews

Da müsste es ein Update auf EasyWeatherPro 5.1.7 geben.

Beta-User

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 }
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Nobbynews

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.

Beta-User

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... 
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Nobbynews

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.

Beta-User

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?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Nobbynews

Zitat von: Beta-User am 26 Dezember 2024, 08:35:25Welches Modul ist das? GW1000_TCP, Signalduino oder noch was anderes?
WS980

Beta-User

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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors