SBorg2014 / WLAN-Wetterstation

schafft eine Verbindung von einer WLAN-Wetterstation zum ioBroker
MIT License
97 stars 16 forks source link

Kommunikationsfehler bei WS2000a #71

Closed Omdello closed 2 months ago

Omdello commented 3 months ago

Bei dem ECOWITT Gateway GW2000a, Firmware V3.1.4, wird im Datenstring der Wert der Innentemperatur als tempinf übergeben:

PASSKEY=xxxxxx&stationtype=GW2000A_V3.1.4&runtime=1215&heap=117320&dateutc=2024-07-17+16:20:29&tempinf=74.12&humidityin=61&baromrelin=30.153&baromabsin=30.153&soilmoisture1=35&soilad1=172&soilmoisture2=43&soilad2=209&soilmoisture3=22&soilad3=131&soilmoisture4=34&soilad4=164&soilmoisture5=32&soilad5=163&soilmoisture6=44&soilad6=214&soilbatt1=1.5&soilbatt2=1.5&soilbatt3=1.6&soilbatt4=1.6&soilbatt5=1.6&soilbatt6=1.6&freq=868M&model=GW2000A&interval=60****``

Im Modul wetterstation.sub wird in der Funktion get_DATA aber auf den Ausdruck tempf geprüft:

2) DATA=$(timeout ${WARTE} nc -nlvw 1 -p ${WS_PORT} 2>/dev/null|tail -1) STRLEN=$(echo -n $DATA | wc -m) if [ "$STRLEN" -gt "150" ] && [[ "$DATA" =~ "PASSKEY=" ]] && [[ "$DATA" =~ "tempf=" ]]; then return 0; else return 1; fi ;;

Dadurch wird ein Kommunikationsfehler generiert.

SBorg2014 commented 3 months ago

Danke für die Info. Wäre ja auch langweilig wenn sie nicht dauernd etwas ändern würden...

Kannst du bitte mal die Zeile #322 (im Original) mit dieser ersetzen und prüfen? Mir fehlt leider die Hardware. if [ "$STRLEN" -gt "150" ] && [[ "$DATA" =~ "PASSKEY=" ]] && [[ "$DATA" =~ "tempf=" ]] || [[ "$DATA" =~ "tempinf=" ]]; then return 0; else return 1; fi

Omdello commented 3 months ago

Die Änderung funktioniert.

BTW: auch bei der Firmware V3.1.1 wurde schon tempinf ausgegeben.

SBorg2014 commented 3 months ago

Supi, danke. Kommt die Tage in die nächste Version.

stale[bot] commented 3 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.