NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Heute sagt das Script 19,3 mm und die Station 19,1 mm.
-
@rene55 Meinst du jetzt direkt bei den Datenpunkten oder in der VIS?
-
@SBorg schon direkt in den Datenpunkten. Die VIS ist dann eine spätere Baustelle.
-
@sonystar und @a200
Ich mache es mal direkt in einem Post, da dass Bild für alle Probleme passt:
@a200 Der Rekordwert funktioniert, zumindest fast. Mein neuer Tiefstwert wurde korrekt eingetragen, nur der Zusatz "für 2020" ist falsch. Der sollte, unabhängig vom falschen Jahr, an der Stelle nicht auftauchen und müsste "im Januar 2021" lauten. Muss ich mal schauen...
@sonystar Ich weiß nicht wie das Display rechnet, zumindest hat es nur eine Nachkommastelle. Je nachdem wie die runden (auf, ab, korrekt, gar nicht, einfach eine Stelle abschneiden) kommt es hier immer zu Differenzen. An der Stelle addiere ich einfach Zahlen mit zwei Nachkommastellen, kein Hexenwerk und kann man eigentlich nicht viel falsch machen (siehe zB. dein erstes Pic: 19mm von der Station, die Einzelwerte von mir aufaddiert aber schon 19.1mm).
...und wie man gerade sieht, zickt auch stellenweise Javascript herum. Ich habe jetzt zwar nicht die Nullen gezählt, aber ich rechne oder bekomme bestimmt keine Angabe in femto, atto oder pico Litern. Muss ich also auch zwangsweise auf 2 Stellen kürzen...
Fazit: du wirst nie eine 100% Übereinstimmung von Station, WLAN-Skript und Statistik (die sowieso nicht wg. anderer Vorraussetzungen) erreichen können, außer alle hätten die gleichen Grundvoraussetzungen.Aber ganz allgemein: ich kann auch nicht all zu viel von einer Hobbystation im Preissegment <500,- € erwarten, zumal schon bei der Temperatur stellenweise eine Differenz von +/- 1°C, oder an anderer Stelle eine Drift von 5% . Ein "echter" Sensor kostet ein mehrfaches dessen. Da brauche ich mir offen gestanden auch keinerlei Gedanken mehr um Rundungsdifferenzen zu machen. Ich werde auch bestimmt nicht aus 5.4 + 4.6 etwas anderes als 10.0 machen, bloß weil China aus Kostengründen durch abschneiden (ist halt einfacher als eine Datenbank in der Elektronik zu führen) irgendwas daraus macht
...was aber nicht heißen soll offensichtliche Programmfehler nicht zu fixen -
Hallo, ich habe nach wie vor keine Daten bei der Sonnenscheindauer in Grafana und zusätzlich den Fehler not Executed". Im IOBroker habe ich mittlerweile Daten bei der Sonnenscheindauer.
Ich habe auch keine Daten Daten bei Temp. min. max. und seit neuestem auch keine Daten beim Niederschlag.
Ich habe das Update auf 2.1.0 gemacht und das Dashboard neu installiert. Leider keine Änderung.
Hast Du da eine Idee?
Danke!! -
@rene55 said in [Linux Shell-Skript] WLAN-Wetterstation:
@SBorg schon direkt in den Datenpunkten. Die VIS ist dann eine spätere Baustelle.
Zwei Dinge:
- welche Station hast du genau?
- stoppe bitte mal (
sudo systemctl stop wetterstation
) und poste dann bitte die Ausgabe von./wetterstation.sh --debug
ausgeführt im Installationsverzeichnis
-
@keksn said in [Linux Shell-Skript] WLAN-Wetterstation:
Hallo, ich habe nach wie vor keine Daten bei der Sonnenscheindauer in Grafana und zusätzlich den Fehler not Executed". Im IOBroker habe ich mittlerweile Daten bei der Sonnenscheindauer.
Ich habe auch keine Daten Daten bei Temp. min. max. und seit neuestem auch keine Daten beim Niederschlag.Temp min/max funktioniert nur wenn auch das Statistik-Addon läuft/benutzt wird, da die Station diese Werte nicht liefert.
Allgemeines Influx-/Grafana-Problem bei fehlenden Werten (gerade wenn man ganz "frisch/neu" anfängt: wenn man mittels des Javascripts die Objekte (oder DPs) angelegt hat, werden diese Initial mit Werten (meist "0") befüllt. Erst nach dem Anlegen kann ich jetzt aber auch das Influx-Logging aktivieren. Problem dabei, falls man "log changes only" aktiviert (was man aus Performance-/Platzgründen aber machen sollte), wird erst mit einer Änderung des Wertes (also ungleich "0" bei einem DP der mit "0" befüllt ist) das Logging gestartet. Vorher hat Influx nicht mal die Serie angelegt. Um auch spätere Lücken in Grafana zu vermeiden, sollte man immer ein Turnusmäßiges Schreiben erzwingen. Bspw. "3600" als Eintrag bei "log changes interval" erzwingt alle 3.600 Sekunden (= 1 Stunde ) unabhängig davon ob sich der Wert geändert hat, den aktuellen Wert in die Influx zu schreiben.
Weiterer Knackpunkt ist hier die Option "Automatic" (leider Default-Einstellung) bei speichern als. Oftmals wird dann eine Zahl (number) als Zeichenkette (string) missinterpretiert und die ganze Serie als String angelegt. Damit kommt Grafana später nicht mehr zu Recht. Hier hilft nur im Influx nachschauen ob die entsprechende Serie als "String" angelegt wurde. Falls ja, muss man dann zuerst im ioB auf "Zahl" umstellen und dann leider die gesamte Serie in Influx droppen. Nachträglich kann man eine Datenreihe in Influx nicht mehr von String --> Zahl konvertieren/ändern. -
@sborg
Ich habe eine Froggit WH3000 SE. Das Javascript läuft in einem Docker-Container. Dummerweise reagiert 'systemctl stop' (mit und ohne sudo) bei mir nicht. -
@rene55 said in [Linux Shell-Skript] WLAN-Wetterstation:
systemctl stop
du gibst aber noch den Namen des Services der gestoppt werden soll, oser?
-
@a200 Ja natürlich. Das script heißt auch 'wetterstation.sh' - und läuft und läuft und läuft. Oder gibt es da noch einen Trick (=Wissenslücke) für mich? Ich arbeite im Portainer und als Fehlermeldung bekomme ich:
bash: systemctl: command not found
. -
@rene55 said in [Linux Shell-Skript] WLAN-Wetterstation:
systemctl
mit sudo davor? die Fehlermeldung besagt dass systemctl nicht gefunden werden kann.
-
@a200 Leider geht's auch damit nicht:
bash-5.0# sudo systemctl stop wetterstation bash: sudo: command not found
. -
@rene55 said in [Linux Shell-Skript] WLAN-Wetterstation:
@a200 Leider geht's auch damit nicht:
bash-5.0# sudo systemctl stop wetterstation bash: sudo: command not found
.gib einfach
id
ein
-
bash-5.0# id uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)
-
@a200 welchen docker container benutzt du?
-
@a200 Also mein Docker läuft auf einem Atom mit knapp 3GB RAM und einer SSD. Nach Auskunft des Systems läuft hier die Docker Version 20.10.0 - irgendwann in 2019 aufgesetzt
docker version Client: Docker Engine - Community Version: 20.10.0 API version: 1.40 Go version: go1.13.15 Git commit: 7287ab3 Built: Tue Dec 8 18:59:53 2020 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 19.03.13 API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:01:06 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.3 GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b runc: Version: 1.0.0-rc92 GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff docker-init: Version: 0.18.0 GitCommit: fec3683
-
@rene55 ok, aber welchen container nutzt du?
docker container ls
-
@a200 Sorry, nicht korrekt gelesen. Also der Container ist aus einem Image erstellt worden nach diesem Dockerfile:
FROM alpine:3.12 RUN apk add --no-cache bc jq curl bash coreutils RUN apk add -U tzdata \ && cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime \ && apk del tzdata \ && rm -rf /var/cache/apk/* RUN mkdir /opt/weather/ WORKDIR /opt/weather #COPY ./source /opt/weather #RUN chmod +x wetterstation.sh #RUN chmod +x wetterstation.sub #RUN chmod +x wetterstation.conf ENTRYPOINT ["bash" , "wetterstation.sh"]
-
@rene55 Dann hat es wenig Sinn einen Service dafür zu erstellen. Du hast einen Minimalcontainer in dem wetterstation läuft. Wenn du den Service nicht brauchst, dann stoppe den Container. Dein Container gibt services/systemctl nicht her. Was möchstest du denn überhaupt machen?
-
@a200 Das ist wirklich eine minimalversion auf Alpine-Basis. Ich (wir = SBorg) suchen nach fehlenden Daten in den datenpunkten. Dazu sollte ich
bitte die Ausgabe von ./wetterstation.sh --debug
bereitstellen - und daran scheitere ich. Macht es Sinn, hier einen neuen Container zu bauen?