NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Dann fängt das Grafana Dashboard mit dem neuen DP 0_userdata an und alles von javascript.0 verschwindet aus dem Dashboard?
Wenn du es nicht vorher patchst, ja.
Ich habe die V1 und V2 parallel am laufen und logge in beides. Dann habe ich mir die passenden DPs einzeln aus der V1 exportiert. In der exportierten CSV habe ich dann mittelssed
(geht auch unter Windows mittels zB. notepad++) alle "javascript.0" durch "0_userdata.0" ersetzt und die CSV in das passende Bucket (hier eine Retention von "never" da ich diese Daten behalten will) importiert. Danach das loggen der entsprechenden DPs in die V1 deaktiviert und die Datenreihe in der V1 gedroppt. So komme ich nicht durcheinander was schon umgestellt ist und was nicht.Was nicht aufgehoben werden muss (zB. Windrichtung etc. muss ja in die Influx, sonst kann man es so nicht in Grafana anzeigen, außer man nutzt dort SimpleAPI) landet nun im Bucket "temporäre Daten", welcher eine Retention von 7 Tagen hat (=alles darin wird also immer 7 Tage nach Erstellung gelöscht).
Mittlerweile ist so meine InfluxDB schon um ~1GB geschrumpft, da nun kein "Müll" mehr anfällt.
...und es wird noch viel weniger werden -
Ich habe InfluxDB 2 am Laufen. Wetterstation läuft mit Version 2.x. Influx disabled.
Einge DPs der Wetterstation logge ich mit InfluxDB 2.Was ist der Unterschied wenn ich in der Wetterstation 3 und InfluxDB2 enabled benutze zu logging der einzelnen DPs?
-
@tritor Aktiv schreibe ich weder in der <V3 noch in der aktuellen V3 etwas in die InfluxDB 1/2 hinein.
Was und wofür du also in InfluxDB etwas loggst ist völlig dir überlassen.Die Influx-Funktionalität im Wetterskript macht nichts weiter als "interessante" (wie ich es für mich empfinde) Datenpunkte zur Verfügung zu stellen, wie min/max heute, der letzten 24 Stunden etc. Dafür muss natürlich dann auch bspw. die Außentemperatur geloggt werden, denn von der Station bekomme ich nur den aktuellen Wert. Da die meisten aber eh Influx schon für anderes benutzen, lag es nahe die zu nutzen. Wäre ja Blödsinn wenn ich jetzt noch eine eigene Datenbank anlegen würde. So kann ich dann recht einfach die Temperatur vor einem Jahr abfragen (solange man natürlich mindestens schon 1 Jahr loggt ). Und genau das ist es auch schon: eine Abfrage der InfluxDB. Mehr nicht. Ich nehme nur dem User, wenn er es denn möchte. die Arbeit ab, sich ein Blockly, JS, NodeRED... selbst zu bauen, um an die Werte zu kommen.
Deswegen funktioniert auch alles mit, oder eben auch ohne, InfluxDB. Es findet dann eben nur keine Abfrage statt und die Werte fehlen. Das war es aber auch schon. Ich logge nichts und schreibe (zumindest aktuell) nichts in die InfluxDB....aber einen Unterschied im Logging gibt es nicht. Wenn man, welche auch immer, Werte haben möchte, muss man sie in InfluxDB loggen. Ob ich die dann im Skript abfrage, oder man sie bspw. in Grafana nutzt ist absolut unerheblich bzw. identisch. Du loggst also ggf. maximal mitunter für das Skript.
Ich hoffe das war einigermaßen verständlich und nicht zu verquer ausgedrückt
-
bei mir wird mit V3 nichts in ioB geschrieben!Edit: jetzt gehts
Hab dies vergessen. War noch auf javascript.0
Dachte das erledigt der Updater.#wo sollen die Datenobjekte abgelegt werden PRE_DP=0_userdata.0.Wetterstation
-
noch was!
Wenn ich in Grafana
Flux
verwende, bekomm ich eine Verbindung.
(Nachteil, ich muss alle Panels neu konfigurieren)Wenn ich
InfluxQL
verwende, bekomm ich keine Verbindung. -
@sborg Hatte damals die Influx V2 frisch aufgesetzt.
Hab noch eine Frage. Was ist der Unterschied zwischen 0_userdata.0.Wetterstation.Wind_max und 0_userdata.0.Wetterstation.Windboeen_max?
Die Windböen bleiben bei mir 0 auch.
-
wird es auf Git ein V3 Dashboard auf Basis von Flux geben?
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Dachte das erledigt der Updater.
Man sollte nie ungefragt User-Einstellungen ändern. Ich kann ja schlecht wissen ob der User nicht bei "javascript..." bleiben möchte. Ich habe mich halt nur beim "Tabula rasa" dazu entschlossen es jetzt per default unter "0_userdata" anzusiedeln, denn da gehört es eigentlich auch hin. Es hat im Grunde (bis auf das DP-Anlegenskript [Statistik mal außen vor]) nichts mit Javascript zu tun. Vor 4 Jahren (solange machen wir nun schon "rum" ) gab es aber noch kein 0_userdata und JS erlaubte nur mit Tricks anlegen von DPs außerhalb von "javascript..."
Ob man es also aktuell weiter unter "javascript..." laufen lässt, oder es auf "0_userdata..." umstellt macht keinerlei Unterschied.
-
@rushmed Dann ist es auch normal, denn dir fehlen einfach die Messwerte. Wo noch nichts ist, kann man schlecht etwas lesen
Wo der genaue Unterschied ist kann ich dir nicht erklären, denn das kommt so aus der Station. Ich würde darauf tippen, dass die Böe ein Momentanwert ist, also um x% größer sein muss als der letzte. Wind ist dann eher ein zeitliches Ereignis und wird dann wohl median, average, ??? berechnet, also bspw. alter Wert + aktueller Wert geteilt durch 2.
Ich glaube nämlich nicht daran, dass der Wettermast kontinuierlich mist (Batterielebensdauer). Der wird nur alle x Sekunden einen Momentanwert des Propellers erfassen. -
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wenn ich InfluxQL verwende, bekomm ich keine Verbindung.
Kann ich nix zu sagen, nutze ich nicht mehr. Sonst wäre der Umstieg auf InfluxDB V2 auch für die "Füße" gewesen. Der einzige verbleibende Vorteil ist aktuell Flux.
wird es auf Git ein V3 Dashboard auf Basis von Flux geben?
Nicht zeitnah, da dass nur ein "bisschen" Aufwand bedeutet. Alle Panels ändern auf Flux, alle Overrides anpassen...
Ein ganzer Morgen Arbeit,
damit dann das dabei rauskommt:
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Der einzige verbleibende Vorteil ist aktuell Flux.
habe ich auch vor.
wenn ich dann das lese und sehe, wird mir schlecht.
Ein ganzer Morgen Arbeit,
-
@negalein Hauptproblem ist halt Flux, da ist unter Grafana nix mehr mit "Klicky-klicky"
Ich habe jetzt so an die 90% vom Dashboard auf Flux umgestellt. Das kann man aber nicht veröffentlichen, da dort meine komplette Struktur verankert ist. Ist da nur ein Detail anders als bei mir, läuft es nicht.
Eigentlich genügt mir schon die Arbeit am Skript, jetzt ein vielfaches am Zeitaufwand für die V3 wieder in Grafana zu investieren finde ich nicht prickelnd. Ich habe tausend andere (private) Sachen zu erledigen.Allerdings wird ein Großteil der Nutzer nicht so damit zu Recht kommen wie sie es ev. wünschen. Man muss jetzt alles mittels "Overrides" realisieren. Problem hier wieder, dass ist dann wieder nur auf (m)eine Datenobjektstruktur limitiert, also bspw. 0_userdata.0.Wetterstation.xyz. Lautet der Ordner anders, ist die Instanz eine andere oder wird weiter "javascript..." benutzt geht es nicht mehr. In den Overrides kann man leider nicht mit Variablen arbeiten...
Also habe ich mich jetzt noch etwas in Grafana-Programmierung eingelesen und auch dafür eine Lösung gefunden. Es wird ein universelles Dashboard geben das man einfach importiert und ein paar Angaben machen muss. Somit kann man auch jederzeit ohne große mühen den Bucket umbenennen, eine andere Instanz nutzen, von "javascript..." nach "0_userdata..." umziehen...
Das ist aber "nicht mal so eben" zu realisieren.
Die spezifischen Sachen von mir wie bspw. "Temperatur in 3 h" sind dabei aber außen vor. Da muss man ev. doch aktiv werden, weiß ich aber noch nicht genau. -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Das ist aber "nicht mal so eben" zu realisieren.
das versteh ich.
Bin schon etwas weiter gekommen.
Hier ist schön erklärt, wie InfluxQL vs. Flux aufgebaut ist.
https://www.influxdata.com/blog/tldr-influxdb-tech-tips-converting-influxql-queries-flux-queries/Und mit Hilfe von hier und minimale nachbearbeitung bekoomt man den Flux-Querie aus dem InfluxQL-Query.
https://influxql2flux.twentyfive.dev/?q=U0VMRUNUIGxhc3QoInZhbHVlIikgRlJPTSAidXNlcmRhdGEuMC5XZXR0ZXJzdGF0aW9uLkF1c3NlbnRlbXBlcmF0dXIiIFdIRVJFICR0aW1lRmlsdGVyIEdST1VQIEJZIHRpbWUoJF9faW50ZXJ2YWwpIGZpbGwocHJldmlvdXMpSchaut schonmal gut aus.
-
Gibt es eigentlich eine Info ob InfluxQL weiter exisitieren wird?
-
@negalein Am einfachsten klickt man sich die Abfrage in der Web-GUI von Influx zusammen. Nach Klick auf den "Script Editor" sieht man dann auch die Abfrage in Flux. Der Part ist noch easy. Kompliziert wird es dann nur wenn man gruppiert oder etwas mehr will als eine reine Abfrage
Das kann man sich dann 1:1 in Grafana kopieren:
-
@rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Gibt es eigentlich eine Info ob InfluxQL weiter exisitieren wird?
Gelesen habe ich diesbzgl. noch nichts. Müsste ich raten, würde ich darauf setzen, dass es innerhalb der V2.x als Übergangslösung weiter unterstützt wird. Mit einer InfluxDB V3 dann aber ev. eingestellt werden könnte.
-
beim Change auf V3 und dem Umzug der DPs von javascript.0.Wetterstation.xxx auf 0_userdata.0.Wtterstation.xxx muß ich die InfluxDaten der DPs aus javascript in die neuen DPs aus 0_userdata manuell kopieren. Gehe ich da richtig in der Annahme?
-
@sborg
ich denke im Statistik-Skript V2.0.0 hat sich ein fehlendes_
eingeschlichen, da beim "Vortag.Windboee_max" keine Werte kommen (und vermutlich auch beim Monatswechsel wird´s so sein). Der DP wird mit 0 belegt.
Im "from bucket ..."-Statement steht bei Wind_maxr.measurement == "' + WET_DP + '.Wind_max"
, sollte jedoch r._
measurement == "' + WET_DP + '.Wind_max" lauten (ist zumindest bei Aussentemperatur und Regen_Tag so).
Bitte kannst du das gelegentlich mal prüfen.Vielen Dank!
-
@tritor sagte in [Linux Shell-Skript] WLAN-Wetterstation:
beim Change auf V3 und dem Umzug der DPs von javascript.0.Wetterstation.xxx auf 0_userdata.0.Wtterstation.xxx muß ich die InfluxDaten der DPs aus javascript in die neuen DPs aus 0_userdata manuell kopieren. Gehe ich da richtig in der Annahme?
Am einfachsten exportiert (egal ob aus Influx V1 oder V2) man sich die entsprechende(n) Datenreihe(n) zB. mittels "Killer-Befehl" aus der V1 :
echo '#datatype measurement,dateTime:RFC3339,boolean,string,double,double' > export.csv && influx -database [Datenbankname] -username [username] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur","javascript.0.Wetterstation.Regen_Tag","javascript.0.Wetterstation.Wind_max"' -format csv -precision='rfc3339' >> export.csv
Nun ersetzt man "javascript." durch "0_userdata." :
sed -i "s/^javascript\./0_userdata\./g" ./export.csv
Dann sollten die Einträge in der export.csv in etwa so aussehen:
0_userdata.0.Fuellstand,2023-02-15T05:02:37.015Z,true,system.adapter.influxdb.0,0,54
Nun droppt man die alten Datenserien (sofern man sie schon in V2 hat) und importiert die neue csv:
influx write -b [Bucketname] -f ./export.csv
-
@latzi sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Statistik-Skript V2.0.0 hat sich ein fehlendes
_
eingeschlichen...Wohl eher davon geschlichen
...und noch einer, der aber schon seit langer Zeit drin ist.Jepp, jepp, checked, fixed, danke --> V2.0.1
Neue Version des JavaScriptes Wetterstation-Statistik auf GitHub V2.0.1
- ~Bugfix Influx-Abfrage "Wind" (@Latzi)
- ~Bugfix fester Datenpunkt auf "javascript.0..." bei Trockenperiode
Wie immer zu finden im GitHub
Update ist erforderlich, da es sich um einen Fehler handelt der die Funktion einschränkt.