NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Das ist ein (eigentlich mittlerweile unnötiges) JavaScript. Man könnte das auch einfach in Influx V2 aggregieren. Das ist nichts weiter wie der Min-/Max-Temperaturwert eines Tages der letzten 365 Tage.
Einfach aggregieren, ich weiß noch nicht mal wo ich da jetzt ansetzen müßte
-
Die beiden Datenpunkte liegen hier
javascript.0.Wetterstation.Info.Temp_Aussen_24h_min und javascript.0.Wetterstation.Info.Temp_Aussen_24h_max oder 0.userdata.....
Dann müssen die beiden Abfragen A und B geändert werden
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r._measurement == "javascript.0.Wetterstation.Info.Temp_Aussen_24h_min" and r._field == "value") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "Tiefstwert 24h")
-
@chris76e
An die hatte ich gar nicht gedacht, war jetzt so mit dem Skript beschäftigt.
Habe die Quellen ausgetauscht und läuft. -
Kleiner funfact am Rande: D. Trump hat tatsächlich Recht
Die globale Erderwärmung ist "nur eine Erfindung der Chinesen"...Hier der Beweis :
[Ironie /OFF]
-
ist mir heute erst aufgefallen, habe am 3/4 Mai auf Influxdb 2 gewechselt, habe die Datenpunkte unter javascript.0 behalten. Jetzt werden in den DP´s von
javascript.0.Wetterstation.Info.Temp_Aussen_24h_max und min
nichts mehr geschrieben, sondern in den DP´s
javascript.0.Wetterstation.Info.Temp_Aussen_Heute_max und min
Hast du da was geändert?
-
@chris76e sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hast du da was geändert?
Für den Wechsel V2.v --> V3.x ja, denn die Influx-Abfrage basiert ja nun auf Flux. An der Funktion, nein.
Die beiden (oder vier) DPs sind unterschiedlich was den Zeitraum angeht.- Heute: Mitternacht bis "jetzt" / aktuell 12:30 Uhr, wäre also alles von Heute 0:00 Uhr bis 12:30 Uhr
- 24h : "jetzt" minus 24 Stunden /aktuell 12:30 Uhr, wäre also alles von Gestern 12:30 Uhr bis Heute 12:30 Uhr
Je nach Temperaturverlauf können die Daten auch identisch sein.
Funktioniert aber beides (hier 24h_min):
* Edit * ev. mal das Script restarten.
-
hmm,
warum wird denn bei mir keine Daten in den DP´s von:
javascript.0.Wetterstation.Info.Temp_Aussen_365t_max
geschrieben???
Habe diese Script gestartet und gestoppt damit die DP´s angelegt werden
//Wetterstation Datenpunkte anlegen V3.0.0 let DP = "javascript.0.Wetterstation."; let WH31 = 0; // Anzahl der WH31/WH25 Sensoren (max. 1 Stück) let WS90 = 0; // Anzahl der WS90 Sensoren (max. 1 Stück) let DP10 = 0; // Anzahl der DP10/WN35 Sensoren (max. 8 Stück) let DP35 = 0; // Anzahl der DP35/WN34 Sensoren (max. 8 Stück) let DP40 = 0; // Anzahl der DP40/WH32 Sensoren (max. 1 Stück) let DP50 = 0; // Anzahl der DP50/WH31 Sensoren (max. 8 Stück) let DP60 = 0; // Anzahl der DP60/WH57 Sensoren (max. 1 Stück) let DP70 = 0; // Anzahl der DP70/WH55 Sensoren (max. 4 Stück) let DP100 = 0; // Anzahl der DP100/WH51 Sensoren (max. 8 Stück) let DP200 = 0; // Anzahl der DP200/WH43 Sensoren (max. 4 Stück) let DP250 = 0; // Anzahl der DP250/WH45 Sensoren (max. 1 Stück) let DP300 = 0; // Anzahl der DP300/WS68 Sensoren (max. 1 Stück) let BR7009999 = 0; // Anzahl der Thermo-Hygro-7Ch-Sensoren (max. 4 Stück) let FT0300 = 0; // Anzahl der FT0300 Sensoren (max. 1 Stück) //Ende der User-Einstellungen -------------------
und diese Version von der Wetterstatistik
/* Wetterstation-Statistiken holt die Messdaten aus einer InfluxDB V2 und erstellt eine Monats-, Vorjahresmonat- und Rekordwerte-Statistik Wichtig: funktioniert nur mit der Default-Datenstruktur des WLAN-Wetterstation-Skriptes! Auch keine Aliase unter Influx nutzen! (c)2020-2023 by SBorg v2.0.2 - 02.03.2023 ~Bugfix fehlender Vorjahresmonat (Fix Issue #58) V2.0.1 - 22.02.2023 ~Bugfix Influx-Abfrage "Wind" (@Latzi) ~Bugfix fester Datenpunkt auf "javascript.0..." bei Trockenperiode V2.0.0 - 15.02.2023 ~Umstellung auf Influx V2 +Fix "{ack=true}" bei Wüstentage, Tropennächte und Regentage in VorJahres-Anzeige ~Windboe nach Windboee umbenannt V1.3.2 - 03.02.2023 ~Verbesserung des JSON-handlings "VorJahr" (@Boronsbruder) V1.3.1 - 01.02.2023 ~Bugfix keine Daten für Vorjahresmonatswerte (Fix Issue #54) V1.3.0 - 09.09.2022 +Regentage (Issue #40) V1.2.0 - 04.08.2022 +Wüstentage und Tropennächte V1.1.3 - 01.08.2022 +Rekordwerte auch bei Einstellung "LAST_RAIN=DATUM [+UNIX]" in der wetterstation.conf V1.1.2 - 19.06.2022 ~mögliche "Null"-Werte bei "Regenmenge Vortag" und "Windböe" gefixt (Fix Issue #35) V1.1.1 - 02.05.2022 ~Rework JSON-Management V1.1.0 - 02.04.2022 ~Bugfixing fehlender Vortag am 01. des Monats (Fix Issue #32) ~Korrektur Reset der Monatswerte V1.0.1 - 18.12.2021 ~Bugfixing "error: TypeError: Cannot read property '0' of null" ~Wechsel zu axios V1.0.0 - 02.10.2021 ~Bugfixing Werte VorJahresMonat +Kompatibilität mit JSC 3.3.x hergestellt (Änderung JSON -> Array) ~Rekordwerte werden nun korrekt am Tag des Ereignisses gespeichert V0.2.2 - 01.02.2021 ~Bugfixing Regenmenge Jahr + Monat V0.2.1 - 21.01.2021 ~Bugfixing Rekordwerte Spitzenhöchst-/-tiefstwert V0.2.0 - 15.01.2021 ~Bugfixing Benennung DPs / Korrektur Regenmenge V0.1.9 - 09.01.2021 +Regenmenge eines kpl. Monats im Jahr und Rekord V0.1.8 - 08.01.2021 +max. Windböe für Gestern und Jahres-/Rekordwerte V0.1.7 - 03.01.2021 ~Fix für fehlerhafte/fehlende Speicherung Jahreswerte + Trockenperiode V0.1.6 - 30.12.2020 +Summe "Sommertage", "heiße Tage", "Frosttage", "Eistage" und "sehr kalte Tage" für das gesamte Jahr V0.1.5 - 29.12.2020 +Summe "kalte Tage" und "warme Tage" für das gesamte Jahr V0.1.4 - 26.12.2020 +max. Regenmenge pro Tag für Jahres-/Rekordwerte V0.1.3 - 11.11.2020 +Rekordwerte V0.1.2 - 14.10.2020 ~Fix "NaN" bei Regenmenge Monat V0.1.1 - 12.10.2020 +AutoReset Jahresstatistik V0.1.0 - 08.10.2020 +DP für Statusmeldungen / Reset Jahresstatistik / AutoDelete "Data" +ScriptVersion / Update vorhanden / UpdateCheck abschaltbar +Jahresstatistik Min-/Max-/Durchschnittstemperatur/Trockenperiode V0.0.7 - 19.09.2020 +Min.-/Max.-/Durchschnittstemperatur vom Vortag V0.0.6 - 18.09.2020 +Regenmenge Monat V0.0.5 - 17.09.2020 +Gradtage Vorjahr V0.0.4 - 16.09.2020 +Eistage (Max. unter 0°C) / sehr kalte Tage (Min. unter -10°C) ~Frosttage (Korrektur: Tiefstwert unter 0°C) V0.0.3 - 15.09.2020 +Frosttage (Min. unter 0°C) / kalte Tage (Max. unter 10°C) V0.0.2 - 12.09.2020 +warme Tage über 20°C / Sommertage über 25°C / heiße Tage über 30°C V0.0.1 - 11.09.2020 erste Beta + Temp-Min/Temp-Max/Temp-Durchschnitt/max. Windböe/max. Regenmenge pro Tag ToDo: --- known issues: keine */ // *** User-Einstellungen ********************************************************************************************************************************** const WET_DP='javascript.0.Wetterstation'; // wo liegen die Datenpunkte mit den Daten der Wetterstation [default: 0_userdata.0.Wetterstation] const INFLUXDB_INSTANZ='0'; // unter welcher Instanz läuft die InfluxDB [default: 0] const INFLUXDB_BUCKET='iobroker'; // Name des zu benutzenden Buckets const PRE_DP='0_userdata.0.Statistik.Wetter'; // wo sollen die Statistikwerte abgelegt werden. Nur unter "0_userdata" oder "javascript" möglich! let REKORDWERTE_AUSGABEFORMAT="[WERT] im [MONAT] [JAHR]"; /* Wie soll die Ausgabe der Rekordwerte formatiert werden (Template-Vorlage)? [WERT] = Messwert (zB. '22.42' bei Temperatur, '12' bei Tagen) [TAG] = Tag (0-31) [MONAT] = Monatsname (Januar, Februar,..., Dezember) [MONAT_ZAHL]= Monat als Zahl (01-12) [MONAT_KURZ]= Monatsname kurz (Jan, Feb,..., Dez) [JAHR] = Jahreszahl vierstellig (2020) Die 'Units' wie bspw. "°C" oder "Tage" werden direkt aus dem Datenpunkt ergänzt. [default: [WERT] im [MONAT] [JAHR] ] erzeugt als Beispiel im DP die Ausgabe: "22.42 °C im Juni 2020" */ const ZEITPLAN = "3 1 * * *"; // wann soll die Statistik erstellt werden (Minuten Stunde * * *) [default 1:03 Uhr] // *** ENDE User-Einstellungen
Sollte doch eigentlich richtig sein?
-
Hallo
Ich brauche mal kurz Hilfe.
Ich habe keine min und max Temperaturwerte des Tages.Dafür brauche ich ja Influx.
Kann mir jemand sagen, was ich da config eintragen muss?
#InfluxDB-Konfiguration / ohne InfluxDB alles leer lassen #Protokoll (HTTP oder HTTPS) / default: HTTP INFLUX_WEB=HTTP #IP und Port der API [xxx.xxx.xxx.xxx:xxxxx] INFLUX_API=192.168.10.13:8086 #Bucket, Token und Organisation der InfluxDB INFLUX_BUCKET= INFLUX_TOKEN= INFLUX_ORG=
Ich habe schon überall gesucht, aber finde nix.
Gruß
-
Bucket ist der Name der Datenbank, wie im Adapter eingetragen, den Token ebenso wie im Adapter eingetragen und Org deine Organization, wie in Influx eingetragen.
Wenn dein Influx Adapter funktioniert, dann solltest du all das haben.. ??
Wichtig, Influx V2 muss es sein. -
@ilovegym
Ach so ich habe Influx 1.x
Muss ich dann 2.0 erstmal installieren und 1.x deinstallieren?
Ich habe bei Bucket jetzt iobroker eingegeben jetzt habe ich Werte in den Datenpunkten.Sollte man denn auf 2.0 wechseln?
Ich habe neulich den IObroker neu aufgegesetzt und beim Rücksichern der Influx Daten gab es Probleme so dass ich nicht rücksichern konnte, da er dauernd gesagt hat, dass es die Datenbank schon gibt. -
-
Ok. Brauche ich denn zwingend 2.0? Ich habe ein 32 bit System. (Pi 4)
Seltsam ist nur, dass die Tagestemperaturwerte im Moment zwar angezeigt werden, nur bei min und max steht das gleiche, das sich auch mit steigender bzw sinkender Temperatur ändert. -
ist bei mir auch so, nutze influxdb2 und neuste scripte.
-
OK, dann liegt es wohl nicht an Influx.
Gibt es da schon eine Lösung?
Bei Influx zeigt er alle Änderungen nur bleibt der höchste bzw. niedrigste Wert nicht stehen. -
@g-hawk Ich komme zu den gleichen Schlussfolgerungen. Die Datenpunkte sind korrekt angelegt, und in der InfluxDB können diese korrekt abgefragt werden. InfluxDB ist V2 Script das aktuellste.
Das Problem dürfte in wetterstation.sub in der Funktion minmaxheute() liegen.
Wird anstelle von FLUXSTART=$(date +%Y-%m-%d --date="-1 day")"T${ZULU}:00:00Z"
mit FLUXSTART="-1d" gearbeitet werden die Werte sauber abgestellt. Was jetzt genau an der Berechnung oder am Parameter für influx falsch ist, muss ich noch genauer untersuchen. -
@gelbwichtel
muss mich revidieren. Schlussfolgerung und Test war nicht korrekt. Hatte vor Aufruf meines Test auf minmaxheute das setup nicht durchlaufen. Werte werden gesetzt, wenn das Skript "richtig" gestartet wird. Ich muss mir mal meine cronjobs genauer ansehen. -
@gelbwichtel
Ich kann nicht ganz folgen. Soll ich irgendwas ändern oder was testen?
Oder muss ich Influx 2.0 installieren und damit verbunden ein 64 bit System installieren? -
@chris76e Du verwechselst da zwei Sachen. Statistik-JS-Skript macht alles was mit Statistik zu tun hat. WLAN-Shell-Skript alles mit dem Thema Wetterstation.
Die 24h / Heute Min-Max-Werte liegen alle unter ...Wetterstation..., kommen also rein vom WLAN-Skript. Das macht an der Stelle nichts weiter als eine InfluxDB-Abfrage.Du solltest einfach mal versuchen ob es nach einem Restart ev. wieder funktioniert:
systemctl restart wetterstation
-
@sborg
Hallo
Habe ich getestet. Es stehen in min und max immer die gleichen Werte etwas zeitversetzt zu der aktuellen Außentemperatur. -
@g-hawk Solange du ein 32Bit System nutzt kannst du auch nur Influx 1.8 nutzen. Erst mittels 64Bit lässt sich ein InfluxDB 2.7 nutzen. Wenn du so erst mal weiter machen willst, kannst du die letzte V2.x.x (unter releases zu finden) nutzen.
Von der Funktion ist die mit der aktuellen V3.0.0 noch identisch. Über kurz oder lang (eher kurz) wirst du aber um 64Bit nicht herumkommen, da schon einiges unter 32 Bit nicht mehr supported wird.@g-hawk sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Habe ich getestet. Es stehen in min und max immer die gleichen Werte etwas zeitversetzt zu der aktuellen Außentemperatur.
So wie ich das sehe hast du doch aktuell keine korrekte Influx-Installation? Wenn du noch eine 1er hast kann die mit der aktuellen V3 des WLAN-Skriptes nicht funktionieren, da die mittels Flux die Influx abfragt was die 1.8 nicht kann. Da kommt irgendwas an Daten, nur nichts vernünftiges