NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
von welcher APP redest du? welchen port?
WS View
Ich habe FileZilla.
Ist das so richtig?
Dort unten dann die Daten reinschieben?
-
@andre105 na das ist ja in teil 1 erklärt.
-
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@andre105 na das ist ja in teil 1 erklärt.
Ja ,hab es ja nicht richtig kappiert.
Die Vorbereitung habe ich geschafft. -
@andre105 sorry, aber ich kann das nicht für dich eingeben... wenns dir um den port geht, ich hab 6969 genommen.
Customized Server: muss eingeschaltet sein (Enable) Protocol type same as: Wunderground auswählen Server IP/Hostname: IP-Adresse des Rechners ("Linux-Client") der die Daten verarbeiten soll (im Format xxx.xxx.xxx.xxx), dorthin werden die Daten gesendet. [Beispiel: 192.168.1.3] Path: /weatherstation/updateweatherstation.php? Station ID: Name der Wetterstation, (WS_ID) in der Datei wetterstation.conf [Beispiel: ZuHause] Station Key: Passwort der Wetterstation (derzeit nicht benutzt), Eingabe jedoch erforderlich Port: Die Portnummer ist innerhalb des zulässigen Bereichs beliebig wählbar, muss aber frei* sein. Wird später in der Datei wetterstation.conf benötigt (WS_PORT) [Beispiel: 1080] Upload interval: zeitliche Schrittweite der Datensendung, wird ebenso in der Datei wetterstation.conf benötigt (WS_POLL). Mindestwert sind 16 Sekunden. Einige Stationen senden im Mindestintervall von 30 Sekunden, obwohl lt. App der Mindestwert 16 Sekunden beträgt.
-
@andre105
nicht in das Verzeichnis iobroker
sondern, wenn dann in andre105 oder du legst einen neuen Benutzer (z.B wetter) mit homeVerzeichnis an und legst die 3 Dateien da rein.Zur WsView
192.168.116.250 ist die IP vom IobrokerGerät bzw. das auf dem das Skript nachher läuft
Port wäre nachher in der .conf 45454 -
@boronsbruder
Habe mal einen Ordner erstellt.
Soweit richtig?
-
@andre105 nope! liest du keine postings und schaust dir die bilder an?
da gehören keine ordner angelegt. -
@da_woody
Doch,aber wohl noch nicht genug:(
Steh etwas auf dem Schlauch.
Dann muss ich mir hier wohl noch mehr durchforsten. -
-
@da_woody
Sind die Verzeichnisse nicht richtig so? -
@andre105 kannst schon machen, nur musst das halt dann überall so eingeben.
ich habs halt direkt im home/woody. bekennend fauler hund.
IMHO besser, du lässt iobroker weg, direkt in deinem home ein wetter verzeichniss.
und vergiss die ws_updater.sh nicht mit zu kopieren! -
Guten Morgen und ein frohes neues Jahr wünsch ich euch
Nun zum Problem...
2022-01-01 01:03:00.073 - error: javascript.0 (611) script.js.Wetter.Statistik-Wetterstation: TypeError: Cannot read property 'Tiefstwert' of undefined 2022-01-01 01:03:00.074 - error: javascript.0 (611) at VorJahr (script.js.Wetter.Statistik-Wetterstation:355:67) 2022-01-01 01:03:00.074 - error: javascript.0 (611) at Object.main (script.js.Wetter.Statistik-Wetterstation:139:10)
Ergebnis:
-
Gutes Neues!
2022-01-01 01:03:00.081 - warn: javascript.0 (23412) You are assigning a string to the state "0_userdata.0.Statistik.Wetter.Data.2021.12" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions. 2022-01-01 01:03:00.084 - warn: javascript.0 (23412) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1967:33) 2022-01-01 01:03:00.085 - warn: javascript.0 (23412) at processImmediate (internal/timers.js:466:21) 2022-01-01 01:03:00.129 - warn: javascript.0 (23412) You are assigning a string to the state "0_userdata.0.Statistik.Wetter.Data.2021.12" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions. 2022-01-01 01:03:00.132 - warn: javascript.0 (23412) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1439:20) 2022-01-01 01:03:00.132 - warn: javascript.0 (23412) at Object. (script.js.common.Wetterstation_Statistik:346:169) 2022-01-01 01:03:00.133 - warn: javascript.0 (23412) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:342:38) 2022-01-01 01:03:00.133 - warn: javascript.0 (23412) at processImmediate (internal/timers.js:466:21) 2022-01-01 01:03:00.135 - info: javascript.0 (23412) Could not parse value for id 0_userdata.0.Statistik.Wetter.Data.2021.12 into object: Unexpected end of JSON input 2022-01-01 01:03:00.136 - info: javascript.0 (23412) Could not parse value for id 0_userdata.0.Statistik.Wetter.Data.2021.12 into object: Unexpected end of JSON input
spuckte das log heute aus. (nur zur Info )
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@andre105
Frohes neues noch:)home |- andre105 |- iobroker |- wetter
Und die Dateien in wetter zum Beispiel
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@andre105 kannst schon machen, nur musst das halt dann überall so eingeben.
ich habs halt direkt im home/woody. bekennend fauler hund.
IMHO besser, du lässt iobroker weg, direkt in deinem home ein wetter verzeichniss.
und vergiss die ws_updater.sh nicht mit zu kopieren!Wollte eben ein neues Verzeichnis im home machen,da kommt die Meldung das ich keine Berechtigung habe.
Mache es mit Filezilla.
Aber ich hatte doch schon mal ein Verzeichniss erstellen können,siehe oben.
Was kann das sein?
Oder sollte ich mal WinSCP probieren? -
@andre105
das macht keinen Unterschied ob mit Filezilla oder winSCPder Benutzer mit dem du dich verbindest hat keine Berechtigungen in home ein Verzeichnis anzulegen und das ist auch richtig so.
Benutze doch das wetter Verzeichnis aus deinem Screenshot also home/andre105/wetter
-
so sollte es doch gehen oder?
-
Erstmal euch allen ein frohes Neues
Ich muss gleich mal weg, werde also erst etwas später auf alles eingehen können
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@SBorg Ich wüsste nicht, wer da noch auf den gleichen, doch recht speziellen Datenpunkt schreiben sollte. Meine Test-Instanzen laufen derzeit nicht und es wär auch ein anderer ioB. Da muss ich wohl dranbleiben. Aber erstmal wünsche ich, auch allen Mitlesern, einen guten Rutsch ins nächste Jahr, mit viel Erfolg und bester Gesundheit.
LG RainerIch hab mal nachgeschaut, ich schreibe zu keiner Zeit einen Dummy-Wert von "-999". Da er sich nie ändert, kann es auch keine Fehlberechnung sein (es wird nichts limitiert oder begrenzt, müsste dann also bspw. auch mal -998 oder -1000 etc. sein). Er kommt auch gelegentlich vor "meinem" Datenpaket. Ich bin zwar ganz gut, so gut bin ich dann aber auch nicht. Mein Fluxkompensator ist noch in Arbeit
Du kannst aber mal den Datenpunkt verändern:
in der sub ganz oben ändernvon DP_DRUCK_TENDENZ=${PRE_DP}.Druck_Tendenz in DP_DRUCK_TENDENZ=${PRE_DP}.Druck_Tendenz_neu
Dann (bei default-Einstellungen) den DP
javascript.0.Wetterstation.Druck_Tendenz
klonen und alsDruck_Tendenz_neu
benennen.
Service neu startensystemctl restart wetterstation
Jetzt sollte die Drucktendenz nur noch im neuen DP landen (+ da es ihn bis dato nicht gab, greift da zu 100% auch kein anderes was auch immer darauf zu[außer es gäbe einen Selector]).
-
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
genügts da einfach auf 2 umzustellen, oder brauchts da noch mehr? hab das nicht ganz begriffen...
Im Prinzip ja; die "WS_ID" kann man einfach lassen, die wird dann nur nicht mehr benutzt.
Du musst natürlich noch die Station auf Ecowitt umstellen
...ist aber im Grunde gleich, nur Protokoll ändern und beim "Pfad" dann ein/
eintragen (wie Screeny in der WiKi). -
@nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Nun zum Problem...
(Wieder) geändertes Datenformat. Ich hoffe es kann jetzt endlich mal so bleiben...
Im Script ersetzen (am Anfang, so ~#55 ff):
let helper; if (typeof(formathelp)=="object") {helper=getState(id).val[0];} else{helper=JSON.parse(getState(id).val)} helper={ ...helper, ...obj2, ...obj3}
in
let helper; if (typeof(formathelp)=="object") {helper=getState(id).val[0];} else if (typeof(formathelp)=="string") {helper=getState(id).val helper=JSON.parse(helper.substring(1, (getState(id).val).length-1));} else {helper=JSON.parse(getState(id).val);} helper={ ...helper, ...obj2, ...obj3}
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
You are assigning a string to the state "0_userdata.0.Statistik.Wetter.Data.2021.12" which expects a object.
Nutzt du die aktuelle Version von GitHub? Der legt den Datenpunkt noch als "Object" an und meckert dann zu Recht, dass ein String hinein geschrieben werden soll.
Aktuelle Version (stimmt hier mit String):