NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@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
-
@nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
im Adapter ist 8086 eingetragen
...und in der wetterstation.conf ?
-
@Nashra
und in der wetterstation.conf?
Edith: da war einer schneller -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
im Adapter ist 8086 eingetragen
...und in der wetterstation.conf ?
Verdammt, da steht nix von Port. Habe ich überlesen, Asche über mein Haupt
Jetzt zeigt er es richtig an, verdammt
Hatte die .conf komplett neu gemacht und naja man wird alt.
Trotzdem Danke, an die .conf hätte ich jetzt nie gedacht -
pi@Smartazamba:~/Wetterstation $ influx_query "-1d" "now()" "Aussentemperatur" "min" -bash: influx_query: command not found
Welche beiden Zeilen soll ich mit conf und sh ausführen?
Edit: Hab mein Problem gefunden.
In meine conf hat der Eintrag gefehlt:#Protokoll (HTTP oder HTTPS) / default: HTTP INFLUX_WEB=HTTP
-
@viper4iob @ilovegym @Latzi
zum Thema mit der lahmen Influx-V2 Abfrage siehe hier:
https://forum.iobroker.net/post/958290Es erscheint Licht am Ende des Tunnels