NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Neue Beta-Version des Wetterstation WLAN-Skriptes auf GitHub V2.15.0
(Beta-Releases lassen sich nicht! über den ws_updater.sh installieren, nur die *.conf lässt sich mit dem ws_updater.beta ggf. patchen [s.u.])
- + neuer DP "Meldungen"; für Status- und Fehlermeldungen
- + Datenübertragung an Wunderground.com auch bei eigenem DNS-Server (Protokoll #9)(@git-ZeR0)
- + Windrichtung und -geschwindigkeit der letzten 10 Minuten (aktuell HP1000SE Pro)
Wie immer zu finden im GitHub
Update-Routine:
- wetterstation.sh, wetterstation.sub und ws_updater.beta (muss "ausführbar" sein
chmod +x ws_updater.beta
) ersetzen bzw. kopieren - wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgeführt werden (neue Datenpunkte Statusmeldung, Windgeschwindigkeit und -richtung der letzten 10 Minuten)
./ws_updater.beta --patch
im Installationsverzeichnis ausführen und ev. Hinweise beachten- nun mittels
[sudo] systemctl restart wetterstation
den Service neu starten
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
wetterstation.conf neu konfigurieren
oi, da wirds wieder einige probleme geben...
-
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
oi, da wirds wieder einige probleme geben...
und der nächste meldet sich, wenn er als User nur
systemctl restart wetterstation
ohnesudo
eingibt. -
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
oi, da wirds wieder einige probleme geben...
...dann darf man halt keine BETA testen
Release geht dann wieder per "ws_updater.sh"
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
und der nächste meldet sich, wenn er als User nur systemctl restart wetterstation ohne sudo eingibt.
Ohne "sudo" fragt eigentlich jede Distribution dann automatisch nach "sudo-Rechten", außer Exoten...
-
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
wie Dietpi
Wir reden auch von Distris, nicht von "Zuständen"...
...aber Spaß beiseite, bin auch im Alter lernfähig
Mir ist heute Nacht noch eine Idee gekommen, siehe *EDIT* Beta-Ankündigung. So sollte es besser sein und auch leichter eine Beta zu installieren. Schließlich braucht es auch Tester, da ich rund 90% der Hardware gar nicht habe.- Betas haben zukünftig rote Versionsnummern Vx.x.x
- Releases grüne Vx.x.x
Ich habe mein Vorlagen-Template dahingehend für die Neuerungen/Änderungen schon geändert
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
...dann darf man halt keine BETA testen
dann wär das leben doch fad...
abgesehn, daß du ja so deppen wie mich brauchst... -
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
abgesehn, daß du ja so deppen wie mich brauchst...
Ich weiß zwar wie du das meinst, aber so ganz unkommentiert mag ich den "deppen" nicht stehen lassen...
Eben mal mit der Rest-API im Updater angefangen:
Aber keine Angst, ist kein muss:
...aber ich muss halt auch mal irgendwann damit anfangen. So können dann im 1. Schritt aber bspw. neue Datenpunkte automatisch angelegt werden
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich weiß zwar wie du das meinst, aber so ganz unkommentiert mag ich den "deppen" nicht stehen lassen...
na wenigstens verstehst du meinen ösi humor...
ich werd mir das im laufe der woche beguxxen. formel1 ist heute wichtiger... -
ich habe mal den service gestoppt:
iobroker@ioBroker-prox:~$ systemctl status wetterstation ● wetterstation.service - Service für ioBroker Wetterstation Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mon 2022-07-11 10:32:03 CEST; 3min 15s ago Process: 401 ExecStart=/home/iobroker/wetterstation.sh (code=killed, signal=TERM) Main PID: 401 (code=killed, signal=TERM) iobroker@ioBroker-prox:~$ ps aux | grep wetterstation iobroker 8708 0.0 0.0 6084 880 pts/0 R+ 10:35 0:00 grep wetterstation
Dann hier das log vom simple adapter:
simple-api.0 2022-07-11 11:00:26.297 debug Add to Response: {"id":"javascript.0.Wetterstation.tempData.Wetterdaten","val":""} simple-api.0 2022-07-11 11:00:26.297 debug Add to Response: {"id":"javascript.0.Wetterstation.Wetter_aktuell","val":""} simple-api.0 2022-07-11 11:00:26.297 debug Add to Response: {"id":"javascript.0.Wetterstation.Druck_Tendenz","val":""} simple-api.0 2022-07-11 11:00:26.297 debug Add to Response: {"id":"javascript.0.Wetterstation.Wetter_Trend","val":"dauert noch Minuten"} simple-api.0 2022-07-11 11:00:26.292 debug POST-setBulk for id=javascript.0.Wetterstation.tempData.Wetterdaten, oid=temporär gespeicherte Wetterdaten, used=javascript.0.Wetterstation.tempData.Wetterdaten, value= simple-api.0 2022-07-11 11:00:26.292 debug POST-setBulk for id=javascript.0.Wetterstation.Wetter_aktuell, oid=aktuelles Wetter, used=javascript.0.Wetterstation.Wetter_aktuell, value= simple-api.0 2022-07-11 11:00:26.292 debug POST-setBulk for id=javascript.0.Wetterstation.Druck_Tendenz, oid=Luftdrucktendenz, used=javascript.0.Wetterstation.Druck_Tendenz, value= simple-api.0 2022-07-11 11:00:26.292 debug POST-setBulk for id=javascript.0.Wetterstation.Wetter_Trend, oid=Wettertrend, used=javascript.0.Wetterstation.Wetter_Trend, value=dauert noch Minuten simple-api.0 2022-07-11 11:00:26.292 debug 3: "javascript.0.Wetterstation.tempData.Wetterdaten" simple-api.0 2022-07-11 11:00:26.292 debug 2: "javascript.0.Wetterstation.Wetter_aktuell" simple-api.0 2022-07-11 11:00:26.292 debug 1: "javascript.0.Wetterstation.Druck_Tendenz" simple-api.0 2022-07-11 11:00:26.292 debug 0: "javascript.0.Wetterstation.Wetter_Trend" simple-api.0 2022-07-11 11:00:26.292 debug POST-setBulk: values = {"user":"","javascript.0.Wetterstation.Wetter_Trend":"dauert noch Minuten","javascript.0.Wetterstation.Druck_Tendenz":"","javascript.0.Wetterstation.Wetter_aktuell":"","javascript.0.Wetterstation.tempData.Wetterdaten":"","pass":""} simple-api.0 2022-07-11 11:00:26.292 debug POST-setBulk: body = javascript.0.Wetterstation.Wetter_Trend=dauert noch Minuten&javascript.0.Wetterstation.Druck_Tendenz=&javascript.0.Wetterstation.Wetter_aktuell=&javascript.0.Wetterstation.tempData.Wetterdaten=&user=&pass=
Da läuft noch irgendwo ein Code, irgendeine Ahnung, wie ich das identifiziere?
-
@tritor Jepp, und dass ist dein Fehler. Diese 2. Instanz bekommt keine Daten und schreibt dann natürlich auch "nix" in den Datenpunkt.
Den Container (ev. heißt das Skript ja auch nicht "wetterstation") kannst du prüfen, da hier nichts auf dem Port (Beispiel mit dem Default-Port 1080) des Displays/wetterstation.service laufen darf wenn du ihn gestoppt hast:netstat -tulpen|grep 1080
Da darf so etwas nicht kommen, sonst läuft es auf diesem Rechner:
(hier läuft das Skript; sieht man am "nc")Bei proxmox gehe ich davon aus, dass du zumindest wohl noch einen (oder mehrere) Linux-Container hast. Ev. läuft auf dem noch ein (vergessenes) wetterstation-Skript. Die musst du halt alle mittels ps + netstat prüfen wo es noch läuft.
Ansonsten könntest du auch auf einem Windows-Rechner zB. Wireshark nutzen und den gesamten Netzwerktraffic nach der IP+Port sniffen. Dann siehst du das IP a.b.c.d ebenfalls auf den Port zugreift. -
@sborg
Hallo,
ich erhalte in der Statusübersicht ständig parse errors:● wetterstation.service - Service für ioBroker Wetterstation Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-07-11 13:44:26 CEST; 7min ago Main PID: 10991 (wetterstation.s) Tasks: 5 (limit: 4915) Memory: 3.4M CGroup: /system.slice/wetterstation.service ├─10991 /bin/bash /home/iobroker/wetterstation.sh ├─14666 /bin/bash /home/iobroker/wetterstation.sh ├─14667 timeout 66 nc -nlvw 1 -p 1080 ├─14668 tail -1 └─14669 nc -nlvw 1 -p 1080 Jul 11 13:44:26 ioBroker-Pi4 systemd[1]: Started Service für ioBroker Wetterstation. Jul 11 13:44:27 ioBroker-Pi4 wetterstation.sh[10991]: Connection to 192.168.178.43 8087 port [tcp/*] succeeded! Jul 11 13:44:30 ioBroker-Pi4 wetterstation.sh[10991]: parse error: Invalid numeric literal at line 1, column 10 Jul 11 13:44:30 ioBroker-Pi4 wetterstation.sh[10991]: parse error: Invalid numeric literal at line 1, column 10
Worauf bezieht sich hier die Zeile 1 / Spalte 10 - auf den Dateninhalt von der Station, oder auf was Anderes?
Viele Grüße
-
Testrunde...
für die Rest-API, also nur für Leutz die sie eh schon haben oder jetzt damit mal anfangen wollen...
Aktuellews_updater.beta
herunterladen (https://github.com/SBorg2014/WLAN-Wetterstation/blob/master/ws_updater.beta) und "ausführbar" machen mittelschmod +x ./ws_updater.beta
Im Installationsverzeichnis (ist nur für den Test) eine neue Datei wetterstation.conf.temp (zB.nano wetterstation.conf.temp
mit folgendem Inhalt anlegen:RESTAPI_URL=https://192.168.1.3:8093 RESTAPI_USER=apiknecht RESTAPI_PW=geheim PRE_DP=0_userdata.0.Test_RestAPI
- URL dürfte klar sein (ioB + Port der Rest-API
- User und Passwort kann man auch den "admin" nehmen, ich empfehle allerdings eher sich einen neuen User mit entsprechenden Rechten im ioB dafür anzulegen. Zum Test kann man ausnahmsweise auch mal den "admin" nutzen
- PRE_DP könnt ihr so lassen, ist ein reiner Testdatenpunkt der nachher sowieso wieder gelöscht werden kann/muss
Test #1:
./ws_updater.beta --test
dann sollte hoffentlich im IoB unter "0_userdata.0." auftauchen:
Test #2:
do_it_again...
./ws_updater.beta --test
Dann hat alles funktioniert und kann in die zukünftigen Updater-Versionen
Kpl. Objectbaum und "wetterstation.conf.temp" können gelöscht werden.
-
@omnedon sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Worauf bezieht sich hier die Zeile 1 / Spalte 10
Zumindest auf das Skript, aber das ist leider nonsens von der bash (mit Zeile 1 / Spalte 10)....
Wenn du den Status jetzt noch mal prüfst, wirst du feststellen, dass es bei den beiden Fehlermeldungen geblieben ist (+ auch bleiben wird, außer es kommen neue, andere hinzu).
Du hast mit dem Start einen "ungünstigen" Augenblick erwischt. Das kann gelegentlich passieren, dann sind einfach (noch) nicht alle Daten vorhanden und er versucht mit 0-Werten zu rechnen. Daraus resultiert der Fehler. Mit dem nächsten Datenpaket ist dann alles wieder in Ordnung.
Mir ist leider dazu noch keine Lösung eingefallen dies abzufangen. Ist so ein bisschen wie ich steh unter einem Eimer mit Wasser und will wissen ob der voll ist. Also dreh ich den um. Jetzt weiß ich es... -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob Ich habe jetzt mal die beiden 10min-Werte eingebaut, in der Simulation funktioniert es auch.
Wenn ich es schaffe lade ich es noch heute zum testen auf GitHub hoch
...spätestens (hoffentlich) dann morgen...Vielen Dank für die schnelle Umsetzung.
Dann hätte ich doch noch mal eine Idee. Ich habe mir mal die 10 min Durchschnittswerte angeschaut.
Und gerade bei der Windrichtung bügelt das das extreme Schwanken der Fahne durch verwirbelte Luft oder vielleicht schlechtes Design ganz gut aus. In einem Graphen sieht es auf jeden Fall deutlich besser aus.
Die Frage wäre jetzt, ob man eine Option in die config einbauen könnte, dass zu den externen Diensten wie wetter.com oder OpensenseMap ... statt dem normalen Wert der 10 min Wert übertragen wird. Für die Windrichtung würde das Sinn machen, denke ich. Bei der Wind-Geschwindigkeit bin ich mir nicht so sicher. Eventuell macht es Sinn für beide Werte eine getrennte Option zu haben. Dann kann das jeder selbst entscheiden.
Ich sammle jetzt mal bis morgen die Daten, dann kann ich vielleicht mal Screenshots von Graphen aus iobroker im Vergleich zeigen. -
Wie so oft im Leben sitzt das Problem vor dem Computer!
Hab den Fehler gefunden - soweit alles gut.Nachdem ich den Service in meiner Proxmox7 VM gestoppt habe und im simple adapter immer noch alle 15 Minuten die "Leereinträge" der Wetterdaten und Drucktendenz kamen mußten die auf jeden Fall von einem anderen System kommen.
Ja ich hätte im Testsystem (hab ich vor kurzem wieder angeworfen und alle nicht relevanten Adapter gestoppt) auch das Wetterscript ändern sollen. Aus diesem kamen die Daten. Nachdem ich dort in Proxmox6 Testsystem Service und Files/Folders
der Wetterstation gelöscht, und dann wieder im Livesystem das Script aktiviert habe, kommen die Wetterdaten alle 15 Minuten nur 1x und alles geht soweit ich das im Log gesehen habe seinen gewohnten Gang.Also sollte so ein Fehler nochmals vorkommen, dann ist wahrscheinlich ein altes oder ein Testsystem noch aktiv.
-
@sborg
Hallo,
die Erklärung kling einleuchtend, aber der Fehler kommt regelmäßig:Jul 11 16:45:01 ioBroker-Pi4 wetterstation.sh[19672]: parse error: Invalid numeric literal at line 1, column 10 Jul 11 17:00:18 ioBroker-Pi4 wetterstation.sh[19672]: parse error: Invalid numeric literal at line 1, column 10 Jul 11 17:00:18 ioBroker-Pi4 wetterstation.sh[19672]: parse error: Invalid numeric literal at line 1, column 10 Jul 11 17:00:19 ioBroker-Pi4 wetterstation.sh[19672]: parse error: Invalid numeric literal at line 1, column 10 Jul 11 17:00:19 ioBroker-Pi4 wetterstation.sh[19672]: parse error: Invalid numeric literal at line 1, column 10 Jul 11 17:15:30 ioBroker-Pi4 wetterstation.sh[19672]: parse error: Invalid numeric literal at line 1, column 10 Jul 11 17:15:30 ioBroker-Pi4 wetterstation.sh[19672]: parse error: Invalid numeric literal at line 1, column 10 Jul 11 17:15:30 ioBroker-Pi4 wetterstation.sh[19672]: parse error: Invalid numeric literal at line 1, column 10 Jul 11 17:15:30 ioBroker-Pi4 wetterstation.sh[19672]: (23) Failed writing body Jul 11 17:15:30 ioBroker-Pi4 wetterstation.sh[19672]: parse error: Invalid numeric literal at line 1, column 10
-
@omnedon Ist genau im 15 Minuten-Raster, dürfte also Influx sein...
- Influx V2.x? Aktuell geht nur V1.x
- bei V1.x: User, Passwort, Datenbankname etc. stimmen für Influx alle? Entsprechende Datenpunkte werden geloggt?
-
@sborg
Danke für den Hinweis!
Ich werde prüfen. -
@sborg
Ja, das war Influx.
Danke nochmal!