NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@viper4iob
Bei Neu-Aufruf dauert es schon ewig, bis die 2 Felder von 1.1.1970 auf die richtigen Daten umspringen.
Aber das gehört dann nicht hier in den Wetterstation-Thread -
@boronsbruder said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob
Bei Neu-Aufruf dauert es schon ewig, bis die 2 Felder von 1.1.1970 auf die richtigen Daten umspringen.
Aber das gehört dann nicht hier in den Wetterstation-ThreadDa stimme ich zu, der Kreis schließt sich, da ich dadurch aktuell auch nicht auf das neue Wetterstatistik-Skript gehen kann.
Mir ging es eigentlich nur mal darum, ob das ein allgemeines Problem mit dem Influx-Adapter ist, oder nur ich ein selbst verursachtes Problem habe. Da ich nicht der Einzige bin, scheint es ersteres zu sein. -
Mal ne Frage:
Kann es sein, dass Awekas mittlerweile den Upload der Luftdruck-Werte korrekt annimmt und ich das verpennt habe?Es gab ja das Problem, dass die nur den absoluten Luftdruck angenommen hatten und man musste dann dort einen Korrektur-Wert angeben, um auf den relativen Luftdruck zu kommen. Bei mir ist dieser 37,5.
Nun wurde mir am 01.03. von Awekas der Upload für den Luftdrucksensor deaktiviert, weil ein Wert von 1057 hPa übertragen wurde, der natürlich überhaupt nicht hinhaut.
Ich habe gerade die Historie gecheckt, an dem Tag lag der relative Luftdruck um die 1020 hPa am Nachmittag.
Der Korrektur-Wert wurde also statt auf den absoluten jetzt auf den relativen Luftdruck aufaddiert.
Das würde im Umkehrschluß bedeuten, dass jetzt der relative Luftdruck korrekt übertragen wird und man den Korrektur-Wert entfernen kann.UPDATE:
Ich habe den Korrektur-Wert entfernt, so dass er quasi 0 ist, dann von Awekas die Deaktivierung aufheben lassen und jetzt passt der Wert, auch ohne Korrektur. -
Moin @SBorg , nachdem ich vor 2 Tagen alles umgestellt habe auf die V3 ist mir heute
in der VIS aufgefallen das der Wert für min.Temperatur nicht stimmt bzw.
nicht richtig angezeigt wird.
Der Datenpunkt von 0_userdata.0.Wetterstation.Info.Temp_Aussen_Heute_min
Sieht so aus das die Daten von 0_userdata.0.Wetterstation.Info.Temp_Aussen_Heute_max
auch in 0_userdata.0.Wetterstation.Info.Temp_Aussen_Heute_min geschrieben werden.
In beiden sind die selben Uhrzeiten und die gleichen Werten vorhanden. -
@nashra
in diesen Fehler bin ich auch gerannt. Schau mal in der wetterstation.conf ober dort dieser Eintrag#Protokoll (HTTP oder HTTPS) / default: HTTP INFLUX_WEB=HTTP
vorhanden ist. Der hat bei mir gefehlt. Warum? - konnte ich nicht verifizieren. Dann kamen die Werte korrekt.
-
@quarkmax sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra
in diesen Fehler bin ich auch gerannt. Schau mal in der wetterstation.conf ober dort dieser Eintrag#Protokoll (HTTP oder HTTPS) / default: HTTP INFLUX_WEB=HTTP
vorhanden ist. Der hat bei mir gefehlt. Warum? - konnte ich nicht verifizieren. Dann kamen die Werte korrekt.
Eintrag ist vorhanden
-
@viper4iob Ich sende beides, also relativ und absolut. Da sie "normaler weise" den kpl. WU-String bekommen und ich für "unseren Teil" nicht wusste was sie nun genau wollen, dachte ich "kann ja nicht schaden beides zu schicken, wenn sie per offiziellem Weg eh beides bekommen..."
Bei mir steht noch ein Korrekturfaktor drin, allerdings nicht der den ich eingetragen hatte. Multipliziert mit acht komme ich aber auf den für meinen Wohnort korrekten ÜNN...
-
@nashra Sieht nach keiner korrekten Verbindung zur InfluxDB aus (aus der werden die Werte ermittelt). Initial wird immer der 1. Wert nach Mitternacht für den Tag benutzt damit bis zur 1. Abfrage des Tages (0:15 Uhr) wenigstens mal etwas drin steht. Somit ist der gelesene Wert für min/max/avg bis ~ 0:15 Uhr identisch (logo, mit einem Messwert kann man schlecht min/max/avg ermitteln [bzw. sind die halt identisch]). Dann erfolgt die Abfrage und es gibt Werte für min/max/avg.
Da die bei dir gleich sind/bleiben, kann er wohl nix aus der InfluxDB lesen.
Ich habe eben mal eine neue Version hochgeladen, mit der man nun die InfluxDB-Konnektivität prüfen kann.Einfach von GitHub die wetterstation.sh und -.sub ersetzen (restart des Service ist nicht erforderlich), dann im Installationsverzeichnis nacheinander ausführen (das mit dem
.
muss so ) :. ./wetterstation.conf
. ./wetterstation.sub
minmax24h DEBUG
Falls das dann nicht in etwa so aussieht
musst du alles bzgl. Influx noch mal checken, Bucket, Token, Instanz, Organisation etc.
-
@sborg Bei mir siehts dann so aus:
pi@Smartazamba:~/Wetterstation $ . ./wetterstation.conf pi@Smartazamba:~/Wetterstation $ . ./wetterstation.sub pi@Smartazamba:~/Wetterstation $ minmax24h DEBUG jq: error (at <stdin>:0): Cannot iterate over null (null) jq: error (at <stdin>:0): Cannot iterate over null (null)
Also funktioniert wohl meine Influxverbindung nicht?
Bucket, Token und Organisation hab ich geprüft. Die stimmen, wobei ich Bucket und Instanz in Klarschrift angegeben habe. Die Influx_API stimmt auch. Habe alles aus meinen InfluxDB Instanzeinstellungen kopiert.
-
@sborg
also bei mir kommt das raus
und das es Probleme mit dem auslesen der Daten gibt kann ich mir ehrlich gesagt nicht vorstellen,
da alle anderen Werte korrekt angezeigt werden. Nur bei diesen Beiden ist was faul.Für mich sieht es so aus als wenn die Daten schon falsch an die Datenbank geliefert werden.
Kann mich natürlich auch täuschen, du bist der ScriptWetterGottAchja, Bucket, Token usw. alles OK.
-
@rushmed Zumindest ist nun eindeutig, dass das so bei dir nicht funktionieren kann.
Was mir aber überhaupt nicht einleuchtet (der eigentliche Fehler schon): an der Stelle wird überhaupt kein "jq" (JSON-Parser) verwendet.Ich habe es eben noch mal getestet, nun ist mein Minwert auf 9.22°C gefallen, funktioniert also...
Wenn du die Shell noch offen hast, frag mal die Influx direkt ab (sonst nochmal die beiden Zeilen vorher mit conf/sh ausführen:
influx_query "-1d" "now()" "Aussentemperatur" "min"
-
@nashra Sagen wir es mal so, der Debug zeigt, dass er nichts auslesen kann. Auch wenn die Daten falsch kämen, müsste er sie zumindest auslesen können
Stimmt denn bspw. in Grafana deine aktuelle Außentemperatur, denn auf diesem einen Messwert fußt alles andere.
Wie sehen denn die RAW-Werte aus und wie loggst du (alles oder nur Änderung) ?Du kannst den Aufruf mit dem "influx_query" übrigens auch testen. Anstelle von "min" auch gerne "max" oder "mean", "-1d" heißt aktuelle Zeit minus 1 Tag. Man kann auch den Zeitraum bspw. durch "-7d" auf eine Woche erweitern.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra Sagen wir es mal so, der Debug zeigt, dass er nichts auslesen kann. Auch wenn die Daten falsch kämen, müsste er sie zumindest auslesen können
Stimmt denn bspw. in Grafana deine aktuelle Außentemperatur, denn auf diesem einen Messwert fußt alles andere.Ja der Messwert für die Außentemperatur stimmt. Habe einige Stationen in der Nähe, selbe Werte.
Wie sehen denn die RAW-Werte aus und wie loggst du (alles oder nur Änderung) ?
es wird alles geloggt.
Du kannst den Aufruf mit dem "influx_query" übrigens auch testen. Anstelle von "min" auch gerne "max" oder "mean", "-1d" heißt aktuelle Zeit minus 1 Tag. Man kann auch den Zeitraum bspw. durch "-7d" auf eine Woche erweitern.
Habe ich schon probiert, da passiert gar nichts d.h. keine Ausgabe.
-
coole Sache! Danke!
ich hab mal getestet, da ich hier auch n Bug vermutet habe, aber jetzt scheint alles zu stimmen, dies sind die Ausgaben:ilovegym@iobroker:/opt/iobroker$ minmax24h DEBUG Testing InfluxDB... min/max Aussentemperatur 24h: 9.38 9.72°C 14.11 13.72°C ilovegym@iobroker:/opt/iobroker$ influx_query "-7d" "now()" "Aussentemperatur" "min" -2.61 -2.5 ilovegym@iobroker:/opt/iobroker$
-
@nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
da passiert gar nichts d.h. keine Ausgabe.
Ich vermute fast, dass das ein ähnliches Problem wie mit dem JSON ist...
Frage mal die Influx direkt per CLI ab (conf + sub müssen dazu noch geladen sein, sonst halt wieder ". ./wetterstation..."), alles eine Zeile:
curl --request POST "${INFLUX_WEB}://${INFLUX_API}/api/v2/query?org=${INFLUX_ORG}" --header 'Content-Type: application/vnd.flux' --header 'Accept: application/csv' --header "Authorization: Token ${INFLUX_TOKEN}" --data 'from(bucket: "'${INFLUX_BUCKET}'") |> range(start: -1d, stop: now()) |> filter(fn: (r) => r._measurement == "'${PRE_DP}'.Aussentemperatur" and r._field == "value") |> min()'
-
jack@ioBroker:~$ curl --request POST "${INFLUX_WEB}://${INFLUX_API}/api/v2/query?org=${INFLUX_ORG}" --header 'Content-Type: application/vnd.flux' --header 'Accept: application/csv' --header "Authorization: Token ${INFLUX_TOKEN}" --data 'from(bucket: "'${INFLUX_BUCKET}'") |> range(start: -1d, stop: now()) |> filter(fn: (r) => r._measurement == "'${PRE_DP}'.Aussentemperatur" and r._field == "value") |> min()' curl: (7) Failed to connect to 192.168.1.121 port 80: Connection refused jack@ioBroker:~$
-
@nashra Erwischt
Port 80? Da läuft doch bestimmt nicht deine Influx drauf...?
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra Erwischt
Port 80? Da läuft doch bestimmt nicht deine Influx drauf...?
Nö, habe mich auch gerade gewundert, im Adapter ist 8086 eingetragen
-
ALso ich bin dafür, dass wir lieber bei der Influx v1 bleiben
-
@boronsbruder War nicht meine Idee