NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@xxjooo sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich möchte Deine Zeit nicht übermäßig beanspruchen
Das ist absolut kein Problem oder Thema, ich komme halt nur nicht immer gleich zu irgendwas, es kann halt etwas dauern und ab und an dauert es auch mal paar Tage bis ich hier wieder Online bin.
Deswegen fragen, nur die Antwort/Lösung dauert halt uU. mal etwas@xxjooo sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Gibt influxDB keinen Rückwert, wenn eine angeforderte Operation abgeschlossen ist? Das mit dem Timing habe ich mir schon so gedacht. Aber der Rückwert des Aufrufes "sendto" ist "undefined".
Kann ich dir so nicht beantworten, dass kommt auf den Influx-Adapter an. Wie hast du denn den Rückgabewert ermittelt? Per CallBack? Wenn da nichts kommt, ist da leider auch nix...
sendTo('influxdb.0', 'query', 'DROP measurement "0_userdata.0.Wetterstation.Aussenfeuchtigkeit"', function (result) { console.log("Influx meldet " + result); });
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
sendTo('influxdb.0', 'query', 'DROP measurement "0_userdata.0.Wetterstation.Aussenfeuchtigkeit"', function (result) { console.log("Influx meldet " + result); });
ergibt
javascript.0 2021-11-04 16:30:45.526 info script.js.Datenpunkte_erstellen.influxdb_korrigieren_test: Influx meldet [object Object]
funktioniert so also nicht.
-
@xxjooo Es kommt nur mehr zurück als erwartet
sendTo('influxdb.0', 'query', 'DROP measurement "0_userdata.0.Wetterstation.Aussenfeuchtigkeit"', function (result) { console.log("Influx meldet " + JSON.stringify(result)); });
-
Ich habe jetzt mal das Grafana-Dashboard in Betrieb genommen, echt coole Sache. Danke dafür.
Ein kleiner Hinweis: Ich glaube beim Windgeschwindigkeitsgraphen sind die y-Beschriftungen vertauscht.
Wind müsste eher links und Böen rechts sein, denke ich.Und ich weiß, keine Fragen zu Grafana selbst, aber ich weiß ein paar Datenpunkte nicht zuzuordnen, die da benutzt werden:
Bei "Nächster Regen in:" wird der DP "0_userdata.0.VIS.Wetter.Regenvorschau" verwendet. Wo kommt der her, aus einem Adapter oder was selbst gebautes?Und dann rechts die grünen Rechtecke, da sind folgende DPs hinterlegt:
alias.0.Wetterstation.openSenseMap
alias.0.Wetterstation.Windy
alias.0.Wetterstation.Kommunikationsfehler
alias.0.Wetterstation.FW_UpgradeSind das nur Aliase auf die originalen DPs?
Wenn ich allerdings die originalen DPs nehme, die ich im Wetterstations-Ordner finden kann, dann funktioniert es nicht, weil die true und false liefern und Grafana erwartet für den Text und die Farbe Werte von 0 und 1, und mit true und false funktioniert es nicht. -
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wind müsste eher links und Böen rechts sein, denke ich.
Denkst du richtig. Danke, ist mir gar nicht aufgefallen.
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
keine Fragen zu Grafana selbst
Das gilt/steht für GitHub. Ich mag dort einfach keine zig Issues dann zu Grafana haben. "Hier" ist es egal, solange es mit dem Thema Wetterstation zu tun hat und kein "wie installiere ich Grafana" ist
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Bei "Nächster Regen in:" wird der DP "0_userdata.0.VIS.Wetter.Regenvorschau" verwendet. Wo kommt der her, aus einem Adapter oder was selbst gebautes?
Das kommt aus dem Wunderground-Adapter mit einem JS von Pix, man braucht das Rad ja nicht zweimal erfinden:
/* Wunderground Regen Abfrage des Weatherunderground Adapters im Bereich Vorhersage, wann der nächste Regen erwartet wird. Findet in den forecastHourly-Datenpunkt den ersten Regen-Eintrag Ausgabe in Text ("kein Regen", "X Stunden (X% [Wahrscheinlichkeit])") http://forum.iobroker.net/viewtopic.php?f=21&t=3447#p31858 01.08.2016 erstellt von Pix unter Nutzung des obigen Skriptes 28.06.2017 Korrekturen 12.07.2017 Fehler abfangen und Typ Variable auf String geändert 06.03.2019 Code optimiert berücksichtigt Niederschlag in der aktuellen Stunde (Stunde 0) 11.06.2019 auf neue Datenpunkte angepasst für weatherground-Adapter (getestet V3.0.11) 04.08.2019 geändert für Wunderground Adapter 3.1.1 08.03.2021 Codeoptimierungen @SBorg */ const vorstd = 36; // Vorschau in Stunden (weatherundergroudn bietet neuerdings bis 36h Vorschau), kann hier auch kleiner sein const idRegen = "0_userdata.0.VIS.Wetter.Regenvorschau"; // Ziel-Datenpunkt const wunder_inst = "weatherunderground.0."; // Weatherground-Adapter Instanz const logging = false; createState(idRegen, "kein Regen", { name: "Regenvorschau", type: "string", role: "text" }); function berechneZeit() { if (logging) log("Berechne Dauer in Stunden bis zum nächsten Regen"); let data=0, pop=0; for (let i=0; i<vorstd; i++) { data = getState(wunder_inst + "forecastHourly." + i + "h.precipitation").val; if (data > 0) { pop = getState(wunder_inst + "forecastHourly." + i + "h.precipitationChance").val; if (logging) log("Regeneintrag gefunden bei " + i + "h " + data + "mm"); if (i == 0) { // wenn jetzt Regen if (logging) log("In dieser Stunde werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)"); setState(idRegen, "jetzt (" + pop + "%)", true); } else { if (logging) log("In " + i + " Stunden werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)"); if (i==1) { setState(idRegen, "1 Stunde (" + pop + "%)", true); } else { setState(idRegen, i + " Stunden (" + pop + "%)", true); } } i=vorstd-1; // beim ersten Auftreten der Regenwahrscheinlichkeit über 0 abbrechen } if ((i == vorstd-1) && (pop == 0)) { setState(idRegen, "Kein Regen erwartet (" + pop + "%)", true); if (logging) log("Kein Regen erwartet (" + pop + "%)"); } } } // bei jeglicher Aktualisierung von Weatherunderground Berechnung starten on({ id: /^weatherunderground\.[0-9]+\.forecast.*\.[0-9]+h\.precipitation$/, // forecastHourly, forecastDaily, forecast change: "any" }, berechneZeit); // bei Skriptstart berechneZeit();
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Sind das nur Aliase auf die originalen DPs?
Ja und Nein. Wären es nur reine Aliase könnte ich ja auch gleich die Originalen nehmen, schließlich werden die Bezeichnungen sich nicht ändern wie bspw. bei einem Device welches ausgetauscht werden muss
Man kann damit aber auch schön konvertieren
-
@sborg
Hallo
Ich habe gerade versucht alles zu installieren ich bekomme auch Daten. Aber das Script läuft nicht.Bis hierhin bin ich gekommen:
"Damit es beim booten automatisch geladen wird: sudo systemctl enable wetterstation.service"
Da bekomme ich diese Meldung:
pi@raspberrypi:~ $ sudo systemctl daemon-reload pi@raspberrypi:~ $ sudo systemctl enable wetterstation.service Failed to enable unit: File wetterstation.service: Invalid argument pi@raspberrypi:~ $
Kann mir jemand sagen, was ich falsch mache?
Status: sudo systemctl status wetterstation
i@raspberrypi:~ $ sudo systemctl status wetterstation * wetterstation.service Loaded: error (Reason: Unit wetterstation.service failed to load properly: In Active: inactive (dead) Nov 06 16:00:31 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic Nov 06 16:00:31 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic Nov 06 16:09:06 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic Nov 06 16:26:14 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic Nov 06 16:27:11 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic Nov 06 16:30:24 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic Nov 06 16:34:36 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic Nov 06 16:40:44 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic Nov 06 16:42:26 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic Nov 06 16:42:26 raspberrypi systemd[1]: /etc/systemd/system/wetterstation.servic lines 1-14/14 (END)
-
https://github.com/SBorg2014/WLAN-Wetterstation/wiki/Installation---Teil-2
Das hast du aber getan, oder?
Sofern möglich sollte diese Variante benutzt werden, da sie wesentlich Anwender freundlicher ist. Wir legen zuerst im Terminalfenster die nötige Datei an:
sudo nano /etc/systemd/system/wetterstation.service
Diese bekommt folgenden Inhalt:
[Unit] Description=Service für ioBroker Wetterstation [Service] ExecStart=/home/iobroker/wetterstation.sh [Install] WantedBy=multi-user.target
Die Beschreibung ist frei wählbar, der Service muss ggf. entsprechend Eurem Pfades angepasst werden, je nach dem wo Ihr das Skript liegen habt. Speichern und mittels sudo chmod +x /etc/systemd/system/wetterstation.service ausführbar machen.
-
Ja wenn ich "sudo chmod +x /etc/systemd/system/wetterstation.service" eingebe passiert allerdings nichts.
Also keine Meldung o.Ä. -
@martin-0 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Also keine Meldung o.Ä.
Keine Meldung bedeutet: Alles klar, Kommando konnte ausgeführt werden.
-
@martin-0
Der chmod Befehl ändert nur die Dateirechte, sodass die Datei ausführbar ist. Mehr passiert da nicht.
Wie lautet denn der Pfad, wo sich die Datei wetterstation.sh befindet.
Der gleiche Pfad muss im Service bei ExecStart verwendet werden.
Standard ist unter /home/iobroker/ -
@viper4iob
Starten funktioniert schon nicht:pi@raspberrypi:~ $ sudo systemctl start wetterstation
Failed to start wetterstation.service: Unit wetterstation.service failed to load properly: Invalid argument.
See system logs and 'systemctl status wetterstation.service' for details.Der Pfad ist /home/iobroker
-
Zeig doch mal konkret deine Datei.
-
-
Bitte keine Screenshots und den Raspberry NICHT MIT DESKTOP BETREIBEN!
-
OK wie mache ich das denn richtig?
-
Per ssh in einem Terminal auf den Pi gehen. puTTY oder die Windows Powershell nimmt man dafür z. B.
Den Pi betreibt man im sog. RunLevel 3. -
@martin-0 said in [Linux Shell-Skript] WLAN-Wetterstation:
Das sieht mir nach einem Formatierungsproblem aus. Da sind mir zu viele Leerzeilen drin.
Direkt nach den Überschriften sollten die Argumente kommen, da ist aber überall eine Leerzeile, evtl. hat der systemd ein Problem damit. -
Oder die Datei ist mit einem Windows-Editor vermurkst worden und hat keine Linux-Zeilenumbrüche.
-
@viper4iob
Ich habe jetzt alle Leerzeichen gelöscht.
Keine Veränderung -
@thomas-braun
Den habe ich garnicht benutzt.