NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Gelegentlich (wehe da kommt ein gegenteiliger Kommentar ) weiß ich echt nicht so was ich treibe...
Ich hatte sogar schon alles vorbereitet, waren nur 4 Zeilen Quelltext und feddisch...
Naja, sub tauschen, dann sollte der Rest auch funktionieren (Wochen- u. Monatswerte werden wir erst dann sehen wenn Woche/Monat rum ist).bzgl. UV: ist kein Problem. Ob ich das im Skript mache, oder Grafana/VIS (Binding) ist eigentlich egal, aber gerade bei den Bindings sieht man uU nicht immer gleich alles.
Auf der Agenda hätte ich noch
- die Sonnenstrahlung (bspw. kWh oder MWh; ggf. interessant wer eine Solaranlage plant, so hat er reelle Werte vor Ort).
- Jahreswerte automatisch am 31.12. um 0:00 Uhr resetten und in einen DP Vorjahreswert schreiben (aktuell bis jetzt kumulierte Regenmenge + Sonnenscheindauer). Dann braucht man es nicht per Hand machen und kann ggf. gegen das Vorjahr vergleichen
-
@Nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Einzigst was mich ein kleines bischen stört bei einem Neustart des Scripts das es 3 Std. dauert
bis was angezeigt wird bei Trend/aktuellDas sollte eigentlich nicht so sein, dafür schreibe ich die Daten in tempData und lese sie beim starten des Skriptes ein.
Aktuell nutzt es jetzt nichts, denn da steht jetzt 11 10 9 .... 1 drin, aber schau mal in 2-3 h ob sich die Liste "von hinten" mit Luftdruckwerten befüllt. Nutzt du cron oder systemd? -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@Nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Einzigst was mich ein kleines bischen stört bei einem Neustart des Scripts das es 3 Std. dauert
bis was angezeigt wird bei Trend/aktuellDas sollte eigentlich nicht so sein, dafür schreibe ich die Daten in tempData und lese sie beim starten des Skriptes ein.
Aktuell nutzt es jetzt nichts, denn da steht jetzt 11 10 9 .... 1 drin, aber schau mal in 2-3 h ob sich die Liste "von hinten" mit Luftdruckwerten befüllt. Nutzt du cron oder systemd?ok mache ich, nutze systemd
-
@SBorg Auch ich habe den Kommunikationsfehler-Datenpunkt mit true gefüllt, obwohl Werte ankommen. Wenn ich per Debug das Skript starte, dann steht der Kommunikationsfehler auf false...
EDIT: Dazu muss ich sagen, dass im Debug-Modus nicht immer sofort eine "connection" zustande kommt. Es gibt häufig ein paar Timeouts bevor es klappt. Habe den Linux-Client in einem anderen VLAN / Subnetz als die Wetterstation. d.h. Broadcast-Pakete etc. kommen nicht durch... Der definierte Port schon... Kann es damit was zu tun haben?@crunchip: Ist der Grafana-Export auf dem aktuellsten Stand? Leider werden bei mir nur sporadisch Werte angezeigt. (z.B. Innentemp wird angezeigt, Außentemp nicht... ) Habe die in Github vorgeschlagenen Standards der Pfade komplett beibehalten...
Vielleicht hast du noch einen Tipp
EDIT: Es liegt daran, dass die meisten Datenpunkte in Grafana nicht auf "last", sondern auf "mean" stehen. Ist das so gewollt und funktioniert das bei dir? Wenn ich es manuell auf last ändere, dann funktioniert es... Kannst du deinen Export nochmal anpassen? -
@iobroker_Alex sagte in [Linux Shell-Skript] WLAN-Wetterstation:
nicht auf "last", sondern auf "mean" stehen. Ist das so gewollt
im Grunde ist es so gewollt, je nach Datenpunkt unterschiedlich.
@iobroker_Alex sagte in [Linux Shell-Skript] WLAN-Wetterstation:
auf dem aktuellsten Stand?
nicht 100%, kann aber gerne aktualisieren
-
Kommt denn bei dir bei mean bei der Außentemperatur auch ein Wert? Muss ich noch was einstellen, wenn ich mean nutzen will?
-
@iobroker_Alex sollte etwas kommen
Visualization
Value >Show >CurrentEdit: Hab oben das Dashboard mal aktualisiert
-
@crunchip Diese Option ist in deinem Export ja schon vorhanden und auch gesetzt. Ändert aber nichts an meinem Problem. Anbei mal zwei Screenshots:
Mit mean kommt kein Wert zustande...
-
@iobroker_Alex ich weiss nicht seit wann du die Daten loggst und wie zwischenzeitlich ein Datenpunkt vom Wert geändert/geschrieben wurde.
mean ist ein (Mittel/Durchschnittswert), du könntest z.b. auch auf Distinct ändern, damit hättest du den direkten aktuellen Wert, was aber im Graphen etwas "scheisse" aussieht.
Letztendlich kenne ich mich mit der Materie auch noch nicht so gut aus und bin selbst am lernen/üben.
Info findest du unter anderem Hier -
Da hat sich ein Fehler in der Datei eingeschlichen , schau mal rein :
-
@Glasfaser habs grad gesehen und eigentlich nichts dran geändert, selbst wenn ich die Textdatei neu rein ziehe, kommt der gleiche Fehler.
-
und was passiert , wenn du es über Notepad erstellst !?
-
-
-
Bei mir ist wieder der Updatewurm drin.
Hab die conf editiert, alle drei Dateien ins entsprechende Verzeichnis kopiert und die DP angelegt.
Debug funktioniert:pi@Servazamba:~/Wetterstation $ ./wetterstation.sh --debug Listening on [0.0.0.0] (family 2, port 9999) Connection from ESP-4F2AD3.fritz.box 33653 received! [ { "id": "Wetterstation.0.Innentemperatur", "val": 24.61 }, { "id": "Wetterstation.0.Aussentemperatur", "val": 18.61 }, { "id": "Wetterstation.0.Taupunkt", "val": 1.22 }, { "id": "Wetterstation.0.Chillfaktor", "val": 18.61 }, { "id": "Wetterstation.0.Innenfeuchtigkeit", "val": 36 }, { "id": "Wetterstation.0.Aussenfeuchtigkeit", "val": 31 }, { "id": "Wetterstation.0.Wind", "val": 7.88 }, { "id": "Wetterstation.0.Wind_max", "val": 9.33 }, { "id": "Wetterstation.0.Windrichtung", "val": 332 }, { "id": "Wetterstation.0.Windrichtung_Text", "val": "NNW\n" }, { "id": "Wetterstation.0.Druck_absolut", "val": 1020.93 }, { "id": "Wetterstation.0.Druck_relativ", "val": 1027.63 }, { "id": "Wetterstation.0.Regenrate", "val": 0 }, { "id": "Wetterstation.0.Regen_Tag", "val": 0 }, { "id": "Wetterstation.0.Regen_Woche", "val": 0.5 }, { "id": "Wetterstation.0.Regen_Monat", "val": 0.7 }, { "id": "Wetterstation.0.Regen_Jahr", "val": 0 }, { "id": "Wetterstation.0.Sonnenstrahlung", "val": 150.96 }, { "id": "Wetterstation.0.UV_Index", "val": 1 }, { "id": "Wetterstation.0.Regenstatus", "val": "--" }, { "id": "Wetterstation.0.Zeitstempel", "val": "15.04.2020 18:24:55" } ] Messwerteblock: 76.3 65.5 34.2 65.5 36 31 4.9 5.8 332 30.148 30.346 0.000 0.000 0.020 0.031 0 150.96 1 2020-04-15%2016:24:55 EasyWeatherV1.4.9 Temperatur Innen : 24.61 °C Temperatur Aussen : 18.61 °C Taupunkt : 1.22 °C Chill-Faktor : 18.61 °C Luftfeuchte Innen : 36 % Luftfeuchte Aussen : 31 % Windgeschwindkeit : 7.88 km/h max. Windgeschwindkeit : 9.33 km/h Windrichtung : 332 ° Windrichtung : NNW Luftdruck absolut : 1020.93 hPa Luftdruck relativ : 1027.63 hPa Regenrate : 0 mm/h Regenstatus : -- Regen Tag : 0 mm Regen Woche : .5 mm Regen Monat : .7 mm Regen Jahr : 0 mm Sonnenstrahlung : 150.96 W/m² UV-Index : 1 Zeitstempel : 15.04.2020 18:24:55 Firmware : EasyWeatherV1.4.9 Datenstring für ioBroker: Wetterstation.0.Innentemperatur=24.61 &Wetterstation.0.Aussentemperatur=18.61 &Wetterstation.0.Taupunkt=1.22 &Wetterstation.0.Chillfaktor=18.61 &Wetterstation.0.Innenfeuchtigkeit=36 &Wetterstation.0.Aussenfeuchtigkeit=31 &Wetterstation.0.Wind=7.88 &Wetterstation.0.Wind_max=9.33 &Wetterstation.0.Windrichtung=332 &Wetterstation.0.Windrichtung_Text=NNW &Wetterstation.0.Druck_absolut=1020.93 &Wetterstation.0.Druck_relativ=1027.63 &Wetterstation.0.Regenrate=0 &Wetterstation.0.Regen_Tag=0 &Wetterstation.0.Regen_Woche=.5 &Wetterstation.0.Regen_Monat=.7 &Wetterstation.0.Regen_Jahr=0 &Wetterstation.0.Sonnenstrahlung=150.96 &Wetterstation.0.UV_Index=1&Wetterstation.0.Regenstatus=--&Wetterstation.0.Zeitstempel=15.04.2020 18:24:55 DATA von Wetterstation: GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=76.3&tempf=65.5&dewptf=34.2&windchillf=65.5&indoorhumidity=36&humidity=31&windspeedmph=4.9&windgustmph=5.8&winddir=332&absbaromin=30.148&baromin=30.346&rainin=0.000&dailyrainin=0.000&weeklyrainin=0.020&monthlyrainin=0.031&yearlyrainin=0&solarradiation=150.96&UV=1&dateutc=2020-04-15%2016:24:55&softwaretype=EasyWeatherV1.4.9&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0 Debug VAR: Installationsverzeichnis: /home/pi/Wetterstation IPP: 192.168.178.20:8087 WS_PORT: 9999 WS_POLL: 16 PRE_DP: Wetterstation.0 Script-Version: V1.2.0 Config-Version: V1.2.0 Sub-Version: V1.2.0
Habe das script und auch den Server neu gestartet und der Status sagt Folgendes:
pi@Servazamba:~ $ sudo systemctl status wetterstation ● wetterstation.service - Service für ioBroker Wetterstation Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-04-15 18:54:00 CEST; 3min 28s ago Main PID: 12677 (wetterstation.s) Tasks: 5 (limit: 4915) Memory: 3.1M CGroup: /system.slice/wetterstation.service ├─12677 /bin/bash /home/pi/Wetterstation/wetterstation.sh ├─14025 /bin/bash /home/pi/Wetterstation/wetterstation.sh ├─14026 timeout 38 nc -lvw 1 -p 9999 ├─14027 sed -n 1 p └─14028 nc -lvw 1 -p 9999 Apr 15 18:55:07 Servazamba wetterstation.sh[12677]: Connection from ESP-4F2AD3.fritz.box 28890 received! Apr 15 18:55:08 Servazamba wetterstation.sh[12677]: Listening on [0.0.0.0] (family 2, port 9999) Apr 15 18:55:33 Servazamba wetterstation.sh[12677]: Connection from ESP-4F2AD3.fritz.box 48113 received! Apr 15 18:55:35 Servazamba wetterstation.sh[12677]: Listening on [0.0.0.0] (family 2, port 9999) Apr 15 18:55:54 Servazamba wetterstation.sh[12677]: Connection from ESP-4F2AD3.fritz.box 31309 received! Apr 15 18:55:55 Servazamba wetterstation.sh[12677]: Listening on [0.0.0.0] (family 2, port 9999) Apr 15 18:56:26 Servazamba wetterstation.sh[12677]: Connection from ESP-4F2AD3.fritz.box 45655 received! Apr 15 18:56:27 Servazamba wetterstation.sh[12677]: Listening on [0.0.0.0] (family 2, port 9999) Apr 15 18:56:58 Servazamba wetterstation.sh[12677]: Connection from ESP-4F2AD3.fritz.box 3830 received! Apr 15 18:56:59 Servazamba wetterstation.sh[12677]: Listening on [0.0.0.0] (family 2, port 9999)
Leider kommen im Broker keine Daten an.
EDIT:
Ferflixtundzugenäht, ich muss wohl immer erstmal einen Forenbeitrag schreiben bis es läuft.
Habe nichts gemacht außer mal die Objekte Ansicht zu verlassen und wieder zurück zu kehren.
Jetzt gehts. -
@iobroker_Alex Dann funktioniert es eigentlich genau so wie es sollte: Zwei aufeinander folgende Datenpakete nicht empfangen = Zähler um eins erhöhen. Zähler größer oder gleich 5 = Kommunikationsfehler --> true
Müsstest du die Timeouts in den Griff kriegen oder den "Kommunikationsfehler" einfach ignorieren. Wichtig ist er nicht, sollten bspw. die Batterien leer sein, siehst du es auch so wenn keinerlei Daten zB auf dem Display mehr ankommen@crunchip
Ich empfehle eher mit HTML-Codes zu arbeiten, funktioniert besser (Export) als direkt mit Unicode:
Sind allerdings hier nicht "deine", ich nutze einen etwas breiteren Doppelpfeil.@Rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Habe nichts gemacht außer mal die Objekte Ansicht zu verlassen und wieder zurück zu kehren.
Das habe ich seit irgendeinem Update auch öfters (bei allen Objekten) und bin schon darauf reingefallen. Früher aktualisierten sich die Objekte immer, jetzt bei mir nur noch wenn der Tab im Browser auch der aktive ist
Und @ALL: ihr wolltet es ja so haben
Neue Version auf GitHub (kpl. alles tauschen)...- UV-Belastung zusätzlich als Text
-
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
ihr wolltet es ja so haben
jetzt, wo ich grad vorhin erst aktualisiert hab aber hab ja UV schon gemappt
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
eher mit HTML-Codes zu arbeiten
ja, hab vorhin schon mal gesucht, aber nicht die passenden gefunden, wollte (Pfeil und Bogen) Pfeile, aber noch nicht für alle Richtungen gefunden
-
Guten Morgen, alles getauscht, läuft.
Aber bei mir kommt nach dem Start bei Wetter Trend "noch---Minuten"
und ca. 3-4 Minuten später steht dann wieder "dauert noch 165 Minuten"
Skript läuft nicht über Cron sondern wird gestartet mit systemctl start wetterstationIm Temp...
-
@Nashra hatte das Problem auch,
selbe mit dem Sonnenschein, funktionierte mit diesem nichtSteuern kann man das Skript dann folgendermaßen: Start: sudo systemctl start wetterstation Stop: sudo systemctl stop wetterstation Neustart (zB. bei Änderungen): sudo systemctl restart wetterstation Status: sudo systemctl status wetterstation
erst als ich vorhin den Rechner neu gestartet habe, zählten die Sonnenstunden
-
Die "Sonnenstunden-Tag" (die anderen auch, nur wäre das erst am Sonntag bzw. Monatsende aufgefallen) haben noch einen Fehler. Die werden falsch resettet und nicht korrekt gespeichert. Solange man das Skript nicht vor der ersten Messung des neuen Tages neu startet fällt es auch nicht auf.
Gefixte Version auf GitHub (sub tauschen + restart genügt)
@Nashra Da will mir nix so Recht dazu einfallen. Pauschal läuft es, und die Sonnenstunden funktionieren 1:1 nach dem selben Prinzip, und die sehen lt. deinem Screeny gut aus. Die Wetterdaten befüllt er auch, sonst wäre der letzte Wert bei dir nicht "1018".
100% ist das System so aber auch nicht. Der String mit Messwerten ist schon recht lang, Simple-API nicht sonderlich schnell und wenn man in den paar Sekunden die er alle 15 Minuten die Daten wegschreibt das Skript neu startet, sind die Daten uU tatsächlich mal weg. So viel "Glück" kannst du aber gar nicht haben, dass das bei dir dauernd der Fall wäre...
Ev. stimmt deine Systemzeit nicht (wie mir gerade beim tippen einfällt), denn die Daten dürfen nur max. 1h alt sein. Gib im Terminal mal eindate +%s
ein, kopiere die ausgegebene Zahl (bei putty genügt mit der rechten Maustaste markieren) und gib sie bei unixtime.de ein. Stimmt die?