NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@boronsbruder said in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg
Ich dachte eher, dass er umgestellt hat von 'javavscript.0.' auf '0_userdata.' und dort noch die alten Daten sindJa - wäre möglich gewesen, danke! Der Statistik-Ordner ist aber nur unter 'javavscript.0.' zu finden...
-
OK - ich könnte die Fehlerquelle gefunden haben (?): 0_userdata.0.Wetterstation.Aussentemperatur wird bei mir nicht in TempData sondern in die andere Instanz abgespeichert.
Ich nehme an, dass dann der ganze flux-query in den Zeilen 171-2 im Statistik-Skript auf die Nase fällt und deshalb auch die Werte für Regen und Wind nicht gelesen/verarbeitet werden?
Ich muss zugeben, dass ich das mit dem Abspeichern in verschiedene Instanzen nicht ganz verstanden habe. Es leuchtet ein, dass man nicht alle Datenpunkte auf ewig speichern will - aber welche in die dauerhafte Bucket müssen/sollen habe ich anscheinend noch nicht ganz durchschaut. Werde wohl noch mehr lesen müssen...
Ich werde natürlich auch noch selber suchen, aber vielleicht ist das ja für jemanden hier ganz einfach: bekomme ich jetzt die Werte der letzten Wochen für 0_userdata.0.Wetterstation.Aussentemperatur irgendwie ganz einfach in die shorttermBucket? Oder soll ich einfach ab sofort umstellen?
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg
Ich dachte eher, dass er umgestellt hat von 'javavscript.0.' auf '0_userdata.' und dort noch die alten Daten sindZum Teil ja, aber die Eingangsfrage war Temp geht, nur Wind und Regen nicht. Bei falschem Verzeichnis müssten dann aber alle drei nicht gehen
...auch wenn sie da offenbar gar nicht liegen sollen.@sebhoff sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Der Statistik-Ordner ist aber nur unter 'javavscript.0.' zu finden...
So hast du es im Statistik-Skript aber eingetragen. Dass meinte @Boronsbruder auch mit seiner Frage "ob das Absicht ist".
-
@sebhoff sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich nehme an, dass dann der ganze flux-query in den Zeilen 171-2 im Statistik-Skript auf die Nase fällt und deshalb auch die Werte für Regen und Wind nicht gelesen/verarbeitet werden?
Jepp, da dass eine einzige Abfrage für alle drei Werte ist.
Du musst die Daten alle in ein einziges Bucket loggen. Da die Datenflut aber immens ist (Standardmäßig so alle 30 Sekunden ein Datensatz), sollte man sich überlegen was man wie lange aufheben möchte.
Ich brauche bspw. keine Aussentemperatur vom 18.04.2023 (oder älter) um 14:23:58 Uhr.
Deshalb sollte man in ein Bucket loggen und dem eine feste Retention von bspw. 30 Tagen verpassen. Damit fliegt alles was älter als 30 Tage ist aus dem Bucket raus. Was ich länger aufheben möchte "shiftet" man nun mittels eines Influx-Tasks in ein anderes Bucket (zB. Retention "never") und kann dabei auch noch die Datenflut eingrenzen (zB. die Aussentemp auf ein 15 Minuten-Raster aggregieren). So werden aus ~43k Datensätzen alleine für die Temperatur täglich mal schlanke 96 (!) und ich habe trotzdem noch einen guten Temperaturverlauf bspw. von vor einem Jahr.Die Daten kannst du per Abfrage eingrenzen und als CSV exportieren, dann als Annotated CSV in ein anderes Bucket wieder importieren. Hatte ich so erst vor kurzem @Negalein hier im Thread ausfühtlicher erklärt.
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Die Daten kannst du per Abfrage eingrenzen und als CSV exportieren, dann als Annotated CSV in ein anderes Bucket wieder importieren. Hatte ich so erst vor kurzem @Negalein hier im Thread ausfühtlicher erklärt.
OK - danke für die Erklärungen. Das wird mich wohl wieder Stunden (wenn nicht Tage) kosten... Anscheinend gibt es den simplen "Export CSV" Button seit 2.7.0 nicht mehr, wenn man nicht mit https arbeitet. Und ein mal kurz installiertes CLI produziert bei jedem Versuch, einen Query laufen zu lassen, den Fehler
Error: failed to execute query: 404 Not Found: unable to decode response content type "text/html"
-
@sebhoff frage:
muß ich für die Wetterstation und die Statistik, eine neue influx instanz anlegen, da ja die default nur in die iobroker influx schreibt oder wie läuft das genau ab, denn ich habe mir in der influxdb ein neues bucket erstellt so daß nicht sämtliche daten in das bucket iobroker geschrieben werden aber so richtig blicke ich da noch nicht durch, sorry dafür. Alles andere läuft bereits danke @SBorg
-
@sebhoff said in [Linux Shell-Skript] WLAN-Wetterstation:
Das wird mich wohl wieder Stunden (wenn nicht Tage) kosten...
OK - habe wohl eine einfache Möglichkeit gefunden. Ich stoppe das logging in das longtermBucket und starte sofort mit dem logging in das shorttermBucket. Dann mache ich via "Data Explorer" eine Abfrage, die alle Einträge aus dem longtermBucket als Resultat hat, erstelle einen Task, der diesen Flux Query theoretisch regelmäßig ausführen könnte und schreibe die Resultate in das shorttermBucket. Diesen Task lasse ich einmal manuell laufen und lösche ihn anschließend wieder - et voilà, alles ist drüben. Oder habe ich da was falsch verstanden?
Dann werde ich nun wieder mal bis morgen früh warten und schauen, ob es nun endlich funktioniert. Anschließend kann ich mir dann Gedanken machen, wie ich ausgedünnte Daten in einem longtermBucket dauerhaft speichere.
(PS: Ist es eigentlich die, der oder das Bucket? ) -
Mir ist ein Thema aufgefallen. Ich weiß nicht ob ein Bug ist oder am User vor dem Monitor liegt.
Ich habe das Statistik Scrript aktiviert und nutze die monatlichen Daten um sie mir in VIS anzuzeigen.
Jetzt habe mir zusätzlich in Grafana ein Dashboard gebaut und mir dort die monatlichen Regenmengen anzuzeigen.Allerdings weichen die Zahlen voneinander ab:
Quelle: 0_userdata.0.wetter.wetterstation.statistik.Data
Mai: 55,86 mm
Juni: 31,01 mm
Juli: 85,58 mmfür den aktuellen Monat erhalte ich hier:
August: 33,72 mm (0_userdata.0.wetter.wetterstation.statistik.aktueller_Monat.Regenmenge_Monat) + 11,988 mm (0_userdata.0.wetter.wetterstation.Regen_Tag)
Quelle: 0_userdata.0.wetter.wetterstation.Regen_Total (in Grafana aus einer InfluxDB)
Mai: 68,1 mm
Juni: 36,8 mm
Juli: 98,6 mmfür den aktuellen Monat erhalte ich hier:
August: 45,4 mm
Warum passen die historischen Daten nicht? Gibt es hier einen Bug oder mache ich einen Denkfehler.
Gruß
Michael -
@sebhoff said in [Linux Shell-Skript] WLAN-Wetterstation:
Dann werde ich nun wieder mal bis morgen früh warten und schauen, ob es nun endlich funktioniert.
Na endlich!
-
Entschuldigung wenn ich da so reingrätsche. Ich hab gesehen wie Ihr zu uns (AWEKAS) die Daten überträgt. Ihr verwendet das WU Protokoll. Da gibt es einen viel besseren Weg mit unserer API. Ich hab leider keine Email gefunden, es wäre (wenn Interesse besteht) super wenn sich wer bei uns diesbezüglich per Mail meldet.
PS: Wir planen einen IObroker AdapterLg Othmar
-
@awekas sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Da gibt es einen viel besseren Weg mit unserer API.
Hallo Othmar!
Cool, das wird @SBorg (der Entwickler des Scripts hier) sicher interessieren.
LG aus OÖ
-
@sebhoff sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Anscheinend gibt es den simplen "Export CSV" Button seit 2.7.0 nicht mehr, wenn man nicht mit https arbeitet.
Habe ich eben auch gelesen. Nutzt du FF? Angeblich soll es mit Chrome noch funktionieren. Ich könnt das zwar mittels Edge selbst probieren, nutze aber noch Influx 2.6.1
...oder dann doch zwangsweise auf HTTPS umstellen (und 100 Pro geht dann wieder etwas anderes nicht...)@sebhoff sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Diesen Task lasse ich einmal manuell laufen und lösche ihn anschließend wieder - et voilà, alles ist drüben. Oder habe ich da was falsch verstanden?
Nö, das funktioniert so schon. Ich habe es nur überflogen, aber in Flux kann man auch direkt ex- und importieren. Bis das aber korrekt funktioniert ist die Lösung über Tasks sicherlich einfacher und schneller, zumal es eh nur einmalig ist.
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Habe ich eben auch gelesen. Nutzt du FF? Angeblich soll es mit Chrome noch funktionieren. Ich könnt das zwar mittels Edge selbst probieren, nutze aber noch Influx 2.6.1
Safari auf nem Mac... Und Chrome funktioniert da leider auch nicht. Aber nun läuft es ja!
-
@babl sagte in [Linux Shell-Skript] WLAN-Wetterstation:
muß ich für die Wetterstation und die Statistik, eine neue influx instanz anlegen
Kann man, muss man aber nicht. Jede Instanz kostet CPU und RAM, bringt aber so keinerlei signifikanten Vorteil. In einem "Monster-Bucket" (=alles mehr oder minder in einem Bucket) kann man
- die Werte auch wieder einfach separieren
- mittels Influx-Tasks alles sortieren und wegspeichern wie man es möchte (dann auch nachträglich in ein anderes Bucket)
-
@sebhoff sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Aber nun läuft es ja!
Habe ich beim überfliegen schon gelesen, bin aber noch mitten im Beantworten der einzelnen Fragen.
-
@mctom Hallo Michael, ich weiß nicht wer, wann was zusammenaddiert oder ausliest, aber wenn ich die Statistikwerte mit Awekas, Ecowitt und Co. vergleiche, komme ich auf annähernd die selben Werte. Ganz stimmen wird das nie, weil es da ggf. zu Rundungsfehlern kommt.
Zum Beispiel wird der tägliche Niederschlag (wenn es denn geregnet hat) immer von Inch in mm (oder Liter, ist identisch) umgerechnet. Das ist schon mal nicht 1:1. Der Wert wird nun in der InfluxDB gespeichert und dann für den entsprechenden Monat immer aufaddiert (und damit auch die Rundungsfehler).Wenn ich dann die 33.72 + 11.988 rechne = 45,708 vs. 45.4 kommt das hin.
"Regen_Total" ist direkt ein Wert aus der Station. Der kam mit irgendeinem Firmwareupgrade und addiert stur jegliche Regenmenge seit dem letzten Reset auf. Der kann also für die Monatswerte nicht dienlich sein, außer man rechnet von dem wieder mühsam runter. Dann aber wozu, "Regen_Monat" ist ebenfalls ein Wert direkt aus der Station.
Wie es da zu einer derartig großen Abweichung bei dir kommt kann ich dir so auch nicht erklären, aber die Statistikwerte sind annähernd richtig. Solange aber die Station mit ihrer Messtoleranz eh um etliche Prozent daneben liegt (kurzer Regen der die Wippe nicht auslöst wird ja überhaupt nicht gemessen ), brauche ich mir bei etwa 1-2 Litern pro Monat auch keine großartigen Gedanken zu machen.
-
@awekas sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Entschuldigung wenn ich da so reingrätsche. Ich hab gesehen wie Ihr zu uns (AWEKAS) die Daten überträgt. Ihr verwendet das WU Protokoll. Da gibt es einen viel besseren Weg mit unserer API. Ich hab leider keine Email gefunden, es wäre (wenn Interesse besteht) super wenn sich wer bei uns diesbezüglich per Mail meldet.
PS: Wir planen einen IObroker AdapterLg Othmar
Hallo Othmar,
nun ja, ich hatte mich Anfang des Jahres genau diesbzgl. bei euch gemeldet (steht hier sogar im Thread ) und mein Vorhaben geschildert. Antwort bzw. Reaktion gab es allerdings keine (ich hatte da Kontakt mit einem/dem Foren-Admin soweit ich mich recht erinnere, zumindest nicht mit dir). -
@SBorg
Seit der Firmwareversion 3.0.4 des GW2000 wird der Zeitstempel nicht mehr aktualisiertGrund ist, dass die Daten der Wetterstation ein %3A anstatt des : im Timestamp sendet.
PASSKEY=GEHEIM&stationtype=GW2000A_V2.2.5&runtime=70128&dateutc=2023-07-31+03:33:32&tempinf=75.20&humidityin=49&baromrelin=30.035&baromabsin=28.411&tempf=49.46&humidity=99&winddir=332&windspeedmph=0.00&windgustmph=0.00&maxdailygust=0.00&solarradiation=0.00&uv=0&rainratein=0.000&eventrainin=0.169&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.189&monthlyrainin=5.185&yearlyrainin=17.067&totalrainin=17.067&temp1f=53.78&humidity1=99&soilmoisture1=29&soilmoisture2=37&soilmoisture3=51&soilmoisture4=27&wh65batt=0&wh25batt=0&batt1=0&soilbatt1=1.5&soilbatt2=1.5&soilbatt3=1.5&soilbatt4=1.5&freq=868M&model=GW2000A&interval=30 PASSKEY=GEHEIM&stationtype=GW2000A_V3.0.4&runtime=9&dateutc=2023-07-31+03%3A34%3A04&baromrelin=30.029&baromabsin=28.405&freq=868M&model=GW2000A&interval=30
Das Skript feuert immer wieder date Fehler:
Aug 11 13:17:21 ZEROSERVER wetterstation.sh[3583977]: date: ungültiges Datum „2023-08-11 11%3A17%3A20 UTC“
Ich weiß nicht, ob das nochmals seitens ECOWITT geändert wird oder ob das so gewollt ist? In der 3.0.5 ist der "BUG" auch noch drin...
Was ist es für ein Aufwand ein urldecode einzubauen?
-
-
@awekas Mach ich