NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Auf meiner Dietpi VM funktioniert killall einwandfrei, allerding ohne den parameter -9 wie ich meine.
Also >killall wetterstation.shpkill dagegen funktioniert nicht.
Starten tue ich das Script nach Ende des Bootvorgangs wie hier beschrieben:
https://forum.iobroker.net/post/402255Ich wollte auch nochmal im Ibroker ein Blockly basteln, welches den Zeitstempel auf Änderungen prüft und dann ggf. über exec die wetterstation.sh neu startet und mir darüber ggf. auch ne Telegram Nachricht sendet.
https://forum.iobroker.net/topic/2892/ssh-befehle-als-skript-in-iobroker-ausführen/5
-
@Glasfaser Eigentlich sollte es wetterstation.sh heißen. Da sich Linux aber nicht sehr für die Endungen interessiert, läuft es trotzdem auch wenn die Endung nur "s" ist. Wahrscheinlich hast du in der crontab beim starten einfach das "h" vergessen.
Dann müssen aber auch die Aufrufe mit wetterstation.s und nicht wetterstation.sh erfolgen
Dann der nächste Fallstrick: "kill" funktioniert nur mit den PIDs (=Nummer bei Ausgabe durch ps), nicht mit den Prozessnamen
killall wetterstation.sh sollte aber immer funktionieren. "-9" funktioniert allerdings nicht (steht oben irgendwo falsch, sorry), dass müsste -s 9 lauten, ist aber eh die Standardeinstellung, kann man also weglassen.
...und um es noch verwirrender zu machen: pkill funktioniert nicht mit dem Asterisk wenn man im Verzeichnis mit dem Shell-Skript steht. Wenn also bspw. die wetterstation.sh in /home/iobroker liegt und ihr steht im Verzeichnis /home/iobroker, funktioniert ein "pkill -9 wetterstation.*" nicht!Alle noch ggf. vorhandenen restlichen Klarheiten beseitigt?
...und nein, ist echt kein Aprilscherz -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
..und nein, ist echt kein Aprilscherz
Nein .. ist wirklich kein Aprilscherz !!!
Das war mein Fehler mit " pkill -9 wetterstation .* gehen auch nicht ." ich stand im Verzeichniss , habe ich vergessen zu wechseln beim Testen ......
Ich habe es auf der Synology neu aufgesetzt und natürlich keine Rechtschreibfehler im Cronetab wie das "h" vergessen .
Deshalb habe ich es mir auf der Raspberry angeschaut und dort das gleiche .
Der Prozess kommt immer mit " wetterstation.s "
.
.
@lemuba
mit crontab -e funktioniert der Eintrag bei mir ( starten und auch pkill )@reboot /home/iobroker/wetterstation.sh & 2 0 * * * pkill -9 wetterstation.* && /home/iobroker/wetterstation.sh &
-
@Glasfaser sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Nein .. ist wirklich kein Aprilscherz !!!
Ich meinte auch nicht dich, sondern meine Antwort
@Glasfaser sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Der Prozess kommt immer mit " wetterstation.s "
Nicht immer, kommt auf deinen "ps" an (bzw. die Parameter). Standardmäßig schneidet der nach 15 Zeichen die Ausgabe (ist eine Tabelle) ab, deswegen fehlt dein "h". Ich hätte jetzt nach der Ausgabe von
ps -aux | grep wetter
gefragt, denn da schneidet er nix ab und deswegen steht da auch korrekt wetterstation.sh.Warum aber es 1x mittels crontab funktioniert und mal nicht, ehrlich gesagt keine Ahnung, aber DietPi & Co. sind halt abgespeckte Linux-Varianten. Da kenne ich mich nicht wirklich damit aus
-
ist ja nur witzig das der Prozess nicht gekillt wir mit pkill -9 wetterstation.sh sondern nur mit pkill -9 wetterstation.* .
Aber Egal ... es funktioniert alles auf der Synology VMM mit DietPi ,
so spare ich mir eine Raspberry .Danke @SBorg für die Aufklärung
-
Habe dann eben mal die V1.0.1 alpha released. Läuft seit 1 Woche absolut stabil. Warum alpha? Nun, sie macht nix kaputt, aber mangels Regen konnte ich die neue Funktion auch nicht testen. Die wäre dann aber binär: tut, oder tut halt eben nicht
Neuerung: Regenstatus
Die Stufen sind (noch) fest hinterlegt, wenn ihr die konfigurierbar wollt sagt Bescheid- =0 l/m² in einer Stunde = --
- <1 l/m² in einer Stunde = leichter Regen
- <4 l/m² in einer Stunde = mäßiger Regen
- <10 l/m² in einer Stunde = starker Regen
- >=10 l/m² in einer Stunde = Starkregen
Da es einen neuen Datenpunkt gibt, alle Dateien ersetzen, conf konfigurieren + js ersetzen und einmalig ausführen
-
@Glasfaser sagte in [Linux Shell-Skript] WLAN-Wetterstation:
ist ja nur witzig das der Prozess nicht gekillt wir mit pkill -9 wetterstation.sh sondern nur mit pkill -9 wetterstation.* .
Kann ich mir eigentlich nur so erklären, dass der pkill bei DietPi geringfügig (man erinnere sich nur an nc) anders arbeitet und bei wetterstation.sh nur den einen Prozess erwischt (den von netcat, nur wird der alle xx Sekunden neu gestartet). Bei "*" macht er halt alles platt, was ja durch die Angabe des Asterisk eigentlich auch gewollt ist.
-
Wollte nur mal eben umziehen .... aber das daraus soetwas wird habe ich mir nicht gedacht .
Aber Ende des Liedes .... es funktioniert .
Und danke nochmal für deine Unterstützung
-
@Glasfaser sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wollte nur mal eben umziehen ....
"nur, schnell, kurz..." sind Begriffe die ich im Bereich der EDV/IT schon lange nicht mehr benutze
"Schatz, nur schnell noch was checken..." 2h später: "Kommst du jetzt endlich..."
...und immer gerne
-
Ich habe mal ein kleines Blockly für Telegram geschrieben (bin da auch noch Anfänger...)
Aber auf alle Fälle meldet mir Telegram erstmal die Daten die ich haben möchteExportiertes Telegramscript:
Das kommt dann bei raus:
Außentemperatur: 6.5°C
Innentemperatur : 21.27°C
Aktuelle Regenrate: 0mm
Regen Heute: 0.9mm
Wind: 1.77km/h
Wind aus WNW / 294 GradVorhersage heute: Bedeckt. Tiefsttemperatur 4C. Wind aus W mit 10 bis 15 km/h.
Vorhersage für morgen: Morgens leichter Regen., windig. Tiefsttemperatur 3C. Wind aus W mit 30 bis 50 km/h. Regenrisiko 60 %. Windböen mit einer Stärke von stellenweise über 65 km/h.
Zeitstempel: 01.04.2020 19:22:00
-
@SBorg said in [Linux Shell-Skript] WLAN-Wetterstation:
Da es einen neuen Datenpunkt gibt, alle Dateien ersetzen, conf konfigurieren + js ersetzen und einmalig ausführen
Toll! War schon am überlegen, wie ich das vielleicht mit Blockly umsetze und nun ist es da
Frage... Wenn ich die + JS einmalig neu ausführe, muss ich dann sicherlich auch wieder für alle Datenpunkte die Influxdb Settings neu einhacken...?
-
@SBorg said in [Linux Shell-Skript] WLAN-Wetterstation:
Habe dann eben mal die V1.0.1 alpha released.
Gibt es die zum Download? Auf Github finde ich nichts...? Soll morgen bei uns regnen
Edit: SORRY! Gefunden...
-
Ich habe nun mal die V1.01 installiert.
Beim Start von influxdb bekomme ich einen Partial Error...? Kann man irgendwie identifizieren welcher Wert da zickt?
-
@lemuba sagte in [Linux Shell-Skript] WLAN-Wetterstation:
"value" on measurement "javascript.0.Wetterstation._Kommunikationsfehler" is type boolean, already exi
Nimm den Datenpunkt mal bei Influx raus !
-
Oh Mann, habe den String nicht erkannt:
javascript.0.Wetterstation._Kommunikationsfehler
Nur warum zickt der? Hatte in Influxdb für diesen Datenpunkt boolean eingestellt und sollte doch eigenlich passen....
Edit: Wieder aktiviert - nun läufts Ohne Warnung...
-
@lemuba sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Edit: Wieder aktiviert - nun läufts Ohne Warnung...
Deshalb ..
already exit
er hat sich verschluckt
-
@lemuba sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Frage... Wenn ich die + JS einmalig neu ausführe, muss ich dann sicherlich auch wieder für alle Datenpunkte die Influxdb Settings neu einhacken...?
Wahrscheinlich zu spät, aber nein. Einfach das vorhandene Javascript ersetzen (oder ein neues anlegen), starten und kurz warten, Javascript beenden und das war es auch schon. Das JS legt nur die Datenpunkte an. Bei existierenden passiert einfach nichts, fehlende (=neue) werden aber angelegt.
Man kann natürlich den/die Datenpunkt/e auch per Hand anlegen. Gerade wenn man aber mit der Wetterstation startet, wäre mir persönlich das zu viel Tipparbeit. Da es auch fehleranfällig ist, gerade für Neulinge bzgl. ioBroker, liefere ich halt das JS mit. -
@SBorg said in [Linux Shell-Skript] WLAN-Wetterstation:
Habe dann eben mal die V1.0.1 alpha released. Läuft seit 1 Woche absolut stabil. Warum alpha? Nun, sie macht nix kaputt, aber mangels Regen konnte ich die neue Funktion auch nicht testen. Die wäre dann aber binär: tut, oder tut halt eben nicht
Neuerung: Regenstatus
Die Stufen sind (noch) fest hinterlegt, wenn ihr die konfigurierbar wollt sagt Bescheid- =0 l/m² in einer Stunde = --
- <1 l/m² in einer Stunde = leichter Regen
- <4 l/m² in einer Stunde = mäßiger Regen
- <10 l/m² in einer Stunde = starker Regen
- >=10 l/m² in einer Stunde = Starkregen
Da es einen neuen Datenpunkt gibt, alle Dateien ersetzen, conf konfigurieren + js ersetzen und einmalig ausführen
Hätte da vorhin schon was beim Regenstatus kommen sollen? Kam nichts....
Hatte aber auch nur leicht gepieselt.... -
@lemuba sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hätte da vorhin schon was beim Regenstatus kommen sollen? Kam nichts....
Hatte aber auch nur leicht gepieselt....Ja, hätte, so lange die Regenrate größer als 0mm ist. Allerdings kleiner Denkfehler meinerseits, die Bedingung für "leichten Regen" trifft nie zu (oder genauer: trifft zu, wird aber überschrieben)...
Ich hatte "0mm gleich kein Regen", "<1mm gleich leichter Regen" usw.
Durch das runden (Linux kann in der bash nur Ganzzahlen) wird allerdings zB. 0.5-0.9mm zu 1, kleiner 0.5mm zu 0. Die Bedingung "<1" wird also nie wahr werden (wobei natürlich 0 schon kleiner als 1 ist), aber nach dieser Anweisung folgt noch eine Abfrage ob die Regenmenge = 0 ist (was jetzt durch das runden zutrifft), somit Anzeige "--"V1.0.1 alpha 1 steht als Fix auf GitHub bereit. Es genügt die wetterstation.sub zu tauschen und Skript stoppen + starten.
-
Bekommst Du vielleicht auch nochmal die Luftdrucktendenz als zusätzlichen Datenpunkt brechnet? Beispiel:
https://homematic-forum.de/forum/viewtopic.php?f=76&t=44245&start=380#p455490