NEWS
Wetterstation WS980WiFi von ELV (Neuer Adapter)
-
Super, freut mich.
Jetzt habe ich auch endlich im DEV Zweig geschafft weitere Parameter aus dem HEX String auszulesen. Pff... muss mal einer drauf kommen dass hier Europäische Werte (Celsius) angeliefert werden und nicht wie auf dem Listener in US (Fahrenheit)...Mache jetzt mal Feierabend, mit dem Wissen sollte es jetzt morgen oder so schneller gehen.
-
Update...
Version 0.1.2 ist parat. Funktionsumfang ist nun:
- Listener
Bei Aktivierung kann die Wetterstation der der Custom Server Funktion ihre Daten im Format WeatherUndergrund anliefern. - Scheduler
Bei Aktivierung holt ioBroker sich von der Wetterstation regelmässig Daten ab
Kurz zur Konfiguration, ich würde empfehlen nur entweder oder zu verwenden.
Listener Konfiguration
- Bei IP ist am besten das 0.0.0.0 - Listen on all IP's zu wählen. Diese Konfig macht nur Sinn wenn Euer ioBroker mehrere IP's hat und ihr nur auf einer hören wollt (z.b. internes LAN vs. extern)
- Port: Default ist 45000, es geht quasi jeder Port über 1024 der noch nicht auf dem Host des ioBroker belegt ist. In der Wetterstation müsst ihr den gleichen Port eintragen
- Path: Ist die URL welche von der Wetterstation aufgerufen wird. Spielt technisch keine Rolle, ich prüfe darauf nur damit nicht irgendwas aufgerufen werden kann
Scheduler Konfiguration
- Weatherstation IP: Hier die IP Adresse Eurer Wetterstation eintragen. Hoffentlich könnt ihr der in Eurem Netzwerk eine fixe IP geben. GGf. kann ich hier später auch die Wetterstation dynamisch finden...
- Port: Der Port, diesmal auf der Wetterstation. Bei meiner ELV ist das 45000
- Interval: Hier in Sekunden wie oft die Wetterstation abgefragt werden soll. Bitte nicht '0' (muss ich noch abfangen) sonst kracht es. Ich habe mit 15 Sekunden angefangen, das scheint gut zu laufen
Das war's erstmal, die Werte sollen dann ankommen auf beiden Wegen. Auch das dokumentiere ich noch im git, per Scheduler gibt es ein oder zwei zusätzliche Werte.... Aber nichts dramatisches soweit ich das gesehen habe.
- Listener
-
@Fogg
bei Einstellung Listener bekomme ich folgende Fehlermeldung:2020-04-28 06:31:29.540 - info: sainlogic.0 (18842) starting. Version 0.1.2 in /opt/iobroker/node_modules/iobroker.sainlogic, node: v12.16.2 2020-04-28 06:31:29.588 - info: sainlogic.0 (18842) Listner active: true 2020-04-28 06:31:29.589 - info: sainlogic.0 (18842) Config IP: 0.0.0.0 2020-04-28 06:31:29.590 - info: sainlogic.0 (18842) Config port: 17551 2020-04-28 06:31:29.591 - info: sainlogic.0 (18842) Config path: /weatherstation/updateweatherstation.php 2020-04-28 06:31:29.592 - info: sainlogic.0 (18842) Scheduler active: false 2020-04-28 06:31:29.593 - info: sainlogic.0 (18842) WS IP: 10.0.0.35 2020-04-28 06:31:29.594 - info: sainlogic.0 (18842) WS Port: 45000 2020-04-28 06:31:29.595 - info: sainlogic.0 (18842) WS Frequency: 30 2020-04-28 06:31:29.596 - info: sainlogic.0 (18842) Starting Listener 2020-04-28 06:31:56.764 - info: robonect.0 (2157) Polling done 2020-04-28 06:32:00.067 - info: javascript.0 (10328) script.js.common.FB_Anwesenheiten: Ausloeser: ProgramInitialisierung 2020-04-28 06:32:24.662 - info: nut.0 (3620) Start NUT update 2020-04-28 06:32:24.701 - info: nut.0 (3620) All Nut values set 2020-04-28 06:32:29.597 - info: robonect.0 (2157) Polling done 2020-04-28 06:32:32.126 - info: sainlogic.0 (18842) Received path: /weatherstation/updateweatherstation.php 2020-04-28 06:32:32.127 - info: sainlogic.0 (18842) JSON Query string: {"ID":"ITRAGW1","PASSWORD":"LATZI","indoortempf":"71.2","tempf":"41.7","dewptf":"38.7","windchillf":"41.7","indoorhumidity":"37","humidity":"89","windspeedmph":"0.9","windgustmph":"1.1","winddir":"57","absbaromin":"28.175","baromin":"29.962","rainin":"0.000","dailyrainin":"0.000","weeklyrainin":"0.008","monthlyrainin":"0.287","solarradiation":"25.07","UV":"0","dateutc":"2020-04-28 04:32:29","softwaretype":"EasyWeatherV1.4.9","action":"updateraw","realtime":"1","rtfreq":"5"} 2020-04-28 06:32:32.137 - error: sainlogic.0 (18842) uncaught exception: Cannot read property 'dateutc' of null 2020-04-28 06:32:32.137 - error: sainlogic.0 (18842) TypeError: Cannot read property 'dateutc' of null at Sainlogic.parse_response (/opt/iobroker/node_modules/iobroker.sainlogic/main.js:210:37) at Server. (/opt/iobroker/node_modules/iobroker.sainlogic/main.js:86:26) at Server.emit (events.js:310:20) at parserOnIncoming (_http_server.js:784:12) at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17) 2020-04-28 06:32:32.139 - info: sainlogic.0 (18842) cleaned everything up... 2020-04-28 06:32:32.722 - info: sainlogic.0 (18842) terminating 2020-04-28 06:32:32.724 - info: sainlogic.0 (18842) Terminated (NO_ERROR): Without reason 2020-04-28 06:32:32.853 - info: sainlogic.0 (18842) terminating 2020-04-28 06:32:33.253 - error: host.Pi4-Server Caught by controller[0]: TypeError: Cannot read property 'dateutc' of null 2020-04-28 06:32:33.258 - error: host.Pi4-Server Caught by controller[0]: at Sainlogic.parse_response (/opt/iobroker/node_modules/iobroker.sainlogic/main.js:210:37) 2020-04-28 06:32:33.258 - error: host.Pi4-Server Caught by controller[0]: at Server. (/opt/iobroker/node_modules/iobroker.sainlogic/main.js:86:26) 2020-04-28 06:32:33.258 - error: host.Pi4-Server Caught by controller[0]: at Server.emit (events.js:310:20) 2020-04-28 06:32:33.259 - error: host.Pi4-Server Caught by controller[0]: at parserOnIncoming (_http_server.js:784:12) 2020-04-28 06:32:33.259 - error: host.Pi4-Server Caught by controller[0]: at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17) 2020-04-28 06:32:33.259 - info: host.Pi4-Server instance system.adapter.sainlogic.0 terminated with code 0 (NO_ERROR) 2020-04-28 06:32:33.259 - info: host.Pi4-Server Restart adapter system.adapter.sainlogic.0 because enabled 2020-04-28 06:32:44.151 - info: host.Pi4-Server "system.adapter.sainlogic.0" disabled 2020-04-28 06:32:53.335 - info: host.Pi4-Server "system.adapter.sainlogic.0" enabled
Bei Einstellung Scheduler läuft der Adapter, es werden aber keine Daten aktualisiert und in WSView sind die Einstellungen nicht konfigurierbar, solange der Adapter mit "sheduler" läuft
-
@Fogg
Hi,
vielen Dank für den Adapter, der Scheduler funktioniert bei mir leider nicht, aber der Listener, leider kann er da was nicht ab:host.iobroker 2020-04-28 09:47:09.980 info Restart adapter system.adapter.sainlogic.0 because enabled host.iobroker 2020-04-28 09:47:09.979 info instance system.adapter.sainlogic.0 terminated with code 0 (NO_ERROR) sainlogic.0 2020-04-28 09:47:09.461 info (6328) Terminated (NO_ERROR): Without reason sainlogic.0 2020-04-28 09:47:09.461 info (6328) terminating sainlogic.0 2020-04-28 09:47:09.412 info (6328) cleaned everything up... sainlogic.0 2020-04-28 09:47:09.412 error at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17) sainlogic.0 2020-04-28 09:47:09.412 error at parserOnIncoming (_http_server.js:784:12) sainlogic.0 2020-04-28 09:47:09.412 error at Server.emit (events.js:310:20) sainlogic.0 2020-04-28 09:47:09.412 error at Server.<anonymous> (/opt/iobroker/node_modules/iobroker.sainlogic/main.js:86:26) sainlogic.0 2020-04-28 09:47:09.412 error at Sainlogic.parse_response (/opt/iobroker/node_modules/iobroker.sainlogic/main.js:210:37) sainlogic.0 2020-04-28 09:47:09.412 error (6328) TypeError: Cannot read property 'dateutc' of null sainlogic.0 2020-04-28 09:47:09.411 error (6328) uncaught exception: Cannot read property 'dateutc' of null sainlogic.0 2020-04-28 09:47:09.409 info (6328) JSON Query string: {"ID":"Zuhause","PASSWORD":"kennstdunicht","indoortempf":"73.4","tempf":"59.9","dewptf":"45.5","windchillf":"59.9","indoorhumidity":"34","humidity":"59","windspeedmph":"5.4","win sainlogic.0 2020-04-28 09:47:09.409 info (6328) Received path: /weatherstation/updateweatherstation.php sainlogic.0 2020-04-28 09:47:02.518 info (6328) Starting Listener sainlogic.0 2020-04-28 09:47:02.517 info (6328) WS Frequency: 45 sainlogic.0 2020-04-28 09:47:02.517 info (6328) WS Port: 45000 sainlogic.0 2020-04-28 09:47:02.517 info (6328) WS IP: 192.168.0.123 sainlogic.0 2020-04-28 09:47:02.517 info (6328) Scheduler active: false sainlogic.0 2020-04-28 09:47:02.516 info (6328) Config path: /weatherstation/updateweatherstation.php sainlogic.0 2020-04-28 09:47:02.516 info (6328) Config port: 8188 sainlogic.0 2020-04-28 09:47:02.516 info (6328) Config IP: 192.168.178.41 sainlogic.0 2020-04-28 09:47:02.515 info (6328) Listner active: true sainlogic.0 2020-04-28 09:47:02.495 info (6328) starting. Version 0.1.2 in /opt/iobroker/node_modules/iobroker.sainlogic, node: v12.16.2, js-controller: 3.0.19 tr-064.0 2020-04-28 09:47:01.451 debug (25992) in updateAll sainlogic.0 2020-04-28 09:47:01.252 debug (6328) statesDB connected sainlogic.0 2020-04-28 09:47:01.251 debug (6328) States connected to redis: 0.0.0.0:9000 sainlogic.0 2020-04-28 09:47:01.231 debug (6328) States create System PubSub Client sainlogic.0 2020-04-28 09:47:01.228 debug (6328) States create User PubSub Client sainlogic.0 2020-04-28 09:47:01.215 debug (6328) Redis States: Use Redis connection: 0.0.0.0:9000 sainlogic.0 2020-04-28 09:47:01.213 debug (6328) objectDB connected sainlogic.0 2020-04-28 09:47:01.210 debug (6328) Objects connected to redis: 0.0.0.0:9001 sainlogic.0 2020-04-28 09:47:01.178 debug (6328) Objects client initialize lua scripts sainlogic.0 2020-04-28 09:47:01.177 debug (6328) Objects create User PubSub Client sainlogic.0 2020-04-28 09:47:01.177 debug (6328) Objects create System PubSub Client sainlogic.0 2020-04-28 09:47:01.175 debug (6328) Objects client ready ... initialize now sainlogic.0 2020-04-28 09:47:01.144 debug (6328) Redis Objects: Use Redis connection: 0.0.0.0:9001 host.iobroker 2020-04-28 09:47:00.588 info instance system.adapter.sainlogic.0 started with pid 6328 host.iobroker 2020-04-28 09:46:58.077 info instance system.adapter.sainlogic.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) sainlogic.0 2020-04-28 09:46:57.594 debug (6298) system.adapter.admin.0: logging true tr-064.0 2020-04-28 09:46:57.593 debug (25992) system.adapter.admin.0: logging true
-
@ilovegym super, danke. Das mit dem Datum ist mir schon klar, korrigiere ich nachher.
-
@Latzi der scheduler läuft erst nach dem ersten intervall los. Sprich wenn du 25 Sekunden eingestellt hast kommen erste Daten nach 25 Sekunden.
-
@Fogg sagte in Wetterstation WS980WiFi von ELV (Neuer Adapter):
Sprich wenn du 25 Sekunden eingestellt hast kommen erste Daten nach 25 Sekunden.
Das ist mir klar, ich hab 5 Minuten gewartet (60 Sekunden eingestellt) und in log schrieb er auch die Version EasyWeatherV1.4.9 und weitere Dinge raus, Werte kamen aber keine neuen in die Datenpunkte.
Benötigst du das log vom scheduler? Hilft es, wenn ich auf debug beim Adapter umstelle? -
@Latzi ja, Log wäre gut. Gern auf Debug. Hier muss ich noch etwas Hand anlegen und die Log Meldungen ordentlich auf die Level verteilen....
-
@Fogg
bitte sehr, hier der Log mit Einstellung "scheduler":2020-04-28 11:59:23.147 - info: host.Pi4-Server "system.adapter.sainlogic.0" enabled 2020-04-28 11:59:23.200 - info: host.Pi4-Server instance system.adapter.sainlogic.0 started with pid 20639 2020-04-28 11:59:23.948 - debug: sainlogic.0 (20639) Redis Objects: Use Redis connection: 127.0.0.1:9001 2020-04-28 11:59:24.000 - debug: sainlogic.0 (20639) Objects client ready ... initialize now 2020-04-28 11:59:24.009 - debug: sainlogic.0 (20639) Objects create System PubSub Client 2020-04-28 11:59:24.011 - debug: sainlogic.0 (20639) Objects create User PubSub Client 2020-04-28 11:59:24.012 - debug: sainlogic.0 (20639) Objects client initialize lua scripts 2020-04-28 11:59:24.070 - debug: sainlogic.0 (20639) Objects connected to redis: 127.0.0.1:9001 2020-04-28 11:59:24.075 - debug: sainlogic.0 (20639) objectDB connected 2020-04-28 11:59:24.078 - debug: sainlogic.0 (20639) Redis States: Use Redis connection: 127.0.0.1:9000 2020-04-28 11:59:24.089 - debug: sainlogic.0 (20639) States create User PubSub Client 2020-04-28 11:59:24.092 - debug: sainlogic.0 (20639) States create System PubSub Client 2020-04-28 11:59:24.110 - debug: sainlogic.0 (20639) States connected to redis: 127.0.0.1:9000 2020-04-28 11:59:24.111 - debug: sainlogic.0 (20639) statesDB connected 2020-04-28 11:59:25.773 - info: sainlogic.0 (20639) starting. Version 0.1.2 in /opt/iobroker/node_modules/iobroker.sainlogic, node: v12.16.2 2020-04-28 11:59:25.810 - info: sainlogic.0 (20639) Listner active: false 2020-04-28 11:59:25.812 - info: sainlogic.0 (20639) Config IP: 0.0.0.0 2020-04-28 11:59:25.813 - info: sainlogic.0 (20639) Config port: 17551 2020-04-28 11:59:25.813 - info: sainlogic.0 (20639) Config path: /weatherstation/updateweatherstation.php 2020-04-28 11:59:25.814 - info: sainlogic.0 (20639) Scheduler active: true 2020-04-28 11:59:25.814 - info: sainlogic.0 (20639) WS IP: 10.0.0.35 2020-04-28 11:59:25.815 - info: sainlogic.0 (20639) WS Port: 45000 2020-04-28 11:59:25.815 - info: sainlogic.0 (20639) WS Frequency: 60 2020-04-28 11:59:25.816 - info: sainlogic.0 (20639) Starting Scheduler 2020-04-28 12:00:25.895 - info: sainlogic.0 (20639) FW Scheduler connected to weather station 2020-04-28 12:00:25.899 - debug: sainlogic.0 (20639) FW Scheduler Received (length): 22 2020-04-28 12:00:25.900 - debug: sainlogic.0 (20639) FW Scheduler Received data string: ffff501511456173795765617468657256312e342e39 2020-04-28 12:00:25.900 - info: sainlogic.0 (20639) FW Scheduler received raw: EasyWeatherV1.4.9 2020-04-28 12:00:25.903 - info: sainlogic.0 (20639) FW Scheduler Connection closed 2020-04-28 12:00:25.906 - info: sainlogic.0 (20639) Data Scheduler connected to weather station 2020-04-28 12:01:25.902 - info: sainlogic.0 (20639) FW Scheduler connected to weather station 2020-04-28 12:01:25.905 - debug: sainlogic.0 (20639) FW Scheduler Received (length): 22 2020-04-28 12:01:25.906 - debug: sainlogic.0 (20639) FW Scheduler Received data string: ffff501511456173795765617468657256312e342e39 2020-04-28 12:01:25.907 - info: sainlogic.0 (20639) FW Scheduler received raw: EasyWeatherV1.4.9 2020-04-28 12:01:25.910 - info: sainlogic.0 (20639) FW Scheduler Connection closed 2020-04-28 12:01:25.914 - info: sainlogic.0 (20639) Data Scheduler connected to weather station 2020-04-28 12:02:25.862 - info: sainlogic.0 (20639) FW Scheduler connected to weather station 2020-04-28 12:02:25.865 - debug: sainlogic.0 (20639) FW Scheduler Received (length): 22 2020-04-28 12:02:25.865 - debug: sainlogic.0 (20639) FW Scheduler Received data string: ffff501511456173795765617468657256312e342e39 2020-04-28 12:02:25.866 - info: sainlogic.0 (20639) FW Scheduler received raw: EasyWeatherV1.4.9 2020-04-28 12:02:25.868 - info: sainlogic.0 (20639) FW Scheduler Connection closed 2020-04-28 12:02:25.870 - info: sainlogic.0 (20639) Data Scheduler connected to weather station
So wie es aussieht funktioniert die Kommunikation (es wird ein 22 Zeichen langer String empfangen) doch es wird nichts in die Datenpunkte geschrieben.
-
@Latzi Das ist leider nur die Hälfte der Info. Der 22-zeichige beinhaltet die Softwareversion. Es müsste noch ein zweiter String mit 82 Zeichen kommen
Dazu gibt es quasi zwei Jobs, den FW (Firmware) und Data (Data). Der zweite läuft wohl an und kriegt die Verbindung, aber kriegt keine Antwort. Hast Du ein Linux-System zur Hand? Dann könnte ich Dir eine Kommandozeile schicken zum testen ob/was Deine Wetterstation zurück liefert.Kannst du noch den System-teil des Logs schicken? Ggf. schmiert das Skript ab und die Fehlermeldung fehlt dann.
-
@Fogg
Ja, ich hab ein Ubuntu-Sytem oder den Raspi-iobroker bei der Hand (in etwa einer Stunde).
Welcher System-Log meinst du?(das war alles aus dem log)?? -
@Latzi Du scheinst auf sainlogic gefilter zu haben.
Der Befehl wäre der hier:
socat open:weather.hexin,ignoreeof!!create:weather.hexout TCP:<ip_der_wetterstation>:45000,readbytes=82,connect-timeout=3Du braucht die angehängte Datei dafür.
weather.hexinAnschliessend erzeigt das Ding ein weather.hexout. Das könntest mir schicken.
-
@Fogg sagte in Wetterstation WS980WiFi von ELV (Neuer Adapter):
Der Befehl wäre der hier:
socat open:weather.hexin,ignoreeof!!create:weather.hexout TCP:<ip_der_wetterstation>:45000,readbytes=82,connect-timeout=3Da stimmt was nicht, wenn ich
sudo socat open:weather.hexin,ignoreeofcd /opt/testcreate:weather.hexout TCP:10.0.0.35:45000,readbytes=82,connect-timeout=3
ausführe, erhalte ich
2020/04/28 20:48:57 socat[2045] E exactly 2 addresses required (there are 3); use option "-h" for help
Was mach ich da falsch? Ich hab das file in /opt/test kopiert, ist das Verzeichnis beim Aufruf oben zu berücksichtigen (ist das /opt/testcreate oben?)
-
Die Ausrufezeichen fehlen nach ignoreeof Dafür steht das 'cd /opt/test'.
Versuche mach den kompletten Parameter ab open bis ende mit Quote (") zu setzen. Oder die Ausrufezeichen zu 'quoten'. Also mit backslash-vornedran. -
Bugfix für den Listener ist online, war das dateutc Ding.
-
@Fogg sagte in Wetterstation WS980WiFi von ELV (Neuer Adapter):
Versuche mach den kompletten Parameter ab open bis ende mit Quote (") zu setzen
Mit
sudo socat 'open:weather.hexin,ignoreeof!!create:weather.hexout' TCP:10.0.0.35:45000,readbytes=82,connect-timeout=3
läuft´s endlos, file wird keiner erzeugt. Ist das
ignoreeof
wirklich richtig, nichtignoreof
? -
@Fogg said in Wetterstation WS980WiFi von ELV (Neuer Adapter):
Bugfix für den Listener ist online, war das dateutc Ding.
Funzt noch nicht grrr..
-
jetzt aber - sollte der listener wieder gehen.
-
@Latzi Das ist schon merkwürdig... würde heissen es kommen keine Daten von Deiner WS. Was für eine hast Du? Ist es eine WS980 oder eine andere?
-
@Fogg
Nein, ist eine Eurochron EFWS2900. Warum funktioniert dann die FW-Abfrage?