NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg
Ja das funktioniert ohne "&ack=true". Danke.Was mir noch aufgefallen ist. Beim DP60 erscheinen direkt in Ecowitt andere Werte wie in ioBroker. Kann es sein das, dass das Protokoll beim "Other Server" falsche Werte liefert? Ecowitt habe ich ja eingestellt. Wie stellt sich das Problem dar:
Bei Ecowitt habe ich einen Alert definiert, wo ich auch informiert werde bei einem Gewitter. Im Protokoll steht aber im Debug immer ein uraltes Datum.
Ist das vllt schon bekannt? Ich nutze einen DP1500 mit V1.7.5. In WS View + Ecowitt Website steht 08/15/2022. Der Timestamp beim Debug sagt aber nur 20.05.2022.
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Bei windy.com ist es billiger und da bekommste viele Parameter
das wäre doch was. Gratis noch dazu.
Mit 500 Requests/Tag kommt jeder locker in der Trial aus. -
@negalein
Aaaaber:
Es werden nicht alle Werte im Trial übermittelt, sondern nur zufällige und die werden "leicht" geändert! -
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Es werden nicht alle Werte im Trial übermittelt, sondern nur zufällige und die werden "leicht" geändert!
das ist ja kacke
-
@sborg nein, es läuft die Influx V1. Das es an der Kommunikation mit InfluxDB liegt kann ich mir nicht vorstellen, kann ich das irgendwie testen? Mal ganz blöde Frage, ich zeichne seit Januar 2021 auf und nutze auch ebenso lange das Skript. Wertet das Skript auch rückwirkend aus? Könnte ich theoretisch die Datenpunkte des Skripts löschen und bekomme dann z.B. nach Neustart und erstem Lauf die Daten von bspw. 2021 wieder?
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@negalein
Aaaaber:
Es werden nicht alle Werte im Trial übermittelt, sondern nur zufällige und die werden "leicht" geändert!@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Es werden nicht alle Werte im Trial übermittelt, sondern nur zufällige und die werden "leicht" geändert!
das ist ja kacke
Schade und dann leider dito
Ich habe gerade keine Zeit (Projekt Balkonkraftwerk ), aber mittels des API-Key vom senden passiert wohl auch nichts? -
@schittl Ich weiß nicht wie viele hier einen DP60 nutzen, habe aber noch keine "Beschwerde"/Issue vernommen. Testen kann ich leider nichts.
Was sagt denn ein Raw-Datenstring aus (Service stoppen + im Verzeichnis ein
./wetterstation.sh --data
) [ggf. Userdaten unkenntlich machen]? -
@banza sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Mal ganz blöde Frage, ich zeichne seit Januar 2021 auf und nutze auch ebenso lange das Skript. Wertet das Skript auch rückwirkend aus? Könnte ich theoretisch die Datenpunkte des Skripts löschen und bekomme dann z.B. nach Neustart und erstem Lauf die Daten von bspw. 2021 wieder?
Fangen wir erst mal hinten an. Gibt keine blöde Fragen, ist aber eine "blöde" Idee
Das wird nur zur Laufzeit ermittelt: einmal gelöscht = alles weg...Wenn du in den Objekten nachschaust, hast du dann Daten per Influx in den entsprechenden Datenpunkten?
Irgendwas muss sich ja April/Mai geändert haben wenn es vorher lief. Bei mir läuft es noch + sonst hat auch keiner bisher "gemeckert", muss ergo ein lokales Problem in deiner Umgebung sein.
Du kannst auch mal schauen was Influx so bietet. Zeile ~200 - 205 ändern (ist nur der '*/' von #205 --> #200)/* Debug-Consolenausgaben */ console.log('Daten ab ' + timeConverter(start)); console.log('Daten bis ' + timeConverter(end)); console.log('Erster Messwert: ' + new Date(result.result[0][0].ts).toISOString() + ' ***' + result.result[0][0].value); console.log('Letzter Messwert: ' + new Date(result.result[0][temps.length-1].ts).toISOString() + ' ***' + result.result[0][temps.length-1].value); console.log('Anzahl Datensätze: T_' + temps.length + '|W_' + wind.length + '|R_' + regen.length);
Dann schreibt er zur Laufzeit (01:03 Uhr default) bisserl was ins ioB-Log.
-
Funktioniert dann auch soweit (URL-Encoding bereits gefixt ) :
Nebel/Tau und Reif wohl aktuell eher nicht...
-
@SBorg Ich les ja hier relativ viel mit, bin aber nicht ganz sicher, ob ich nicht doch was überlesen habe. Ich hab aktuell die Version 2.18.0 drauf und läuft super. Lediglich in den Datenpunkten habe ich Probleme mit den Umlauten z.B. "lange sch�n". Im Quelltext sieht das sauber aus. Kann/muss ich das irgendwo anpassen?
Dann versuche ich mich auch mit der REST API. Was könnte ich da zur Zeit in deinem Script sehen/testen? (Ich habs bestimmt überlesen, sorry) . -
@rene55 Erstaunlich, da aber noch keiner "gemeckert" hat, scheint es nur ein lokales Problem zu sein. Wenn du aber einen Post hoch schaust, siehst du das gleiche Problem. Dies hat aber dort mehr etwas mit dem Aufruf zu tun.
Ich bin eigentlich gegen ein rumdoktoren, sondern mehr für eine Lösung/Erkennung des Fehlers.
Q&D: du könntest das "ö" durch einen URL-Encode ersetzen, dann müsste es auch bei dir funktionieren:%C3%B6
bzgl. Rest-API: der fehlt aktuell noch das gleichzeitige schreiben mehrerer States. Deswegen noch ohne Funktion im Skript, aber bei Nutzung des Updaters werden darüber, falls nötig, automatisch neue Datenpunkte im ioB erstellt (man braucht also nicht mehr den Umweg per wetterstation.js ersetzen + ausführen ).
-
@sborg Genau, rumpfuschen will ich hier ja auch nicht, daher ist encodieren nur eine kurzfristige Lösung bis zum nächsten Update. Ich meine aber, dass in den vorigen Versionen das richtig gewesen ist. EDIT: Hab gerade nochmal die Version 2.15.0 getestet. Hier kommt ein sauberes 'Skript läuft...'
REST-API ach so, hier ist also der Updater in Aktion. Hab ich (zu meinem Leidwesen) noch nie benutzt - wo du dir doch dazu so große Mühe gegeben hast.
(PS: Welches Balkonkraftwerk bzw. Wechselrichter baust du auf?) -
@sborg in der Influx sind die Daten richtig vorhanden, mit Grafana den Zugriff getestet, da passt alles
hier der Auszug aus dem Log von heute Nacht:
was ich noch gesehen habe, die Auswertung aktueller Monat passt auch überhaupt nicht, und bei Vorjahresmonat bekomme ich auch nichts:
Ich habe vor ein paar Tagen erst auf die neueste Version des Statistik-Scripts gewechselt, vielleicht passt's ja beim nächsten Monatswechsel wieder. Die Auswertung aktueller Monat sollte aber tagesaktuell sein?
-
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
EDIT: Hab gerade nochmal die Version 2.15.0 getestet. Hier kommt ein sauberes 'Skript läuft...'
"Witzig"
Daran habe ich von 2.15.0 bis 2.18.0 nix mehr geändert. Ich habe jetzt mal versuchsweise überall ein Encoding vorgenommen. Dürfte eigentlich keine Verschlimmbesserung sein. Ändert sonst nichts, sollte dann aber immer funktionieren. Test l%C3%A4uft...
Habe lange nach bezahlbarem und lieferbarem Material gesucht. Nach 2 (!) Tagen Lieferzeit stehen seit Freitag 2x 385Wp und ein Hoymiles HM-1500 (der war lieferbar und mit 349,- € vergleichsweise günstig) da. Jetzt muss ich mich noch um die Aufständerung für die Garage kümmern und auf diverse Elektronikteile warten (Vorsicherungen, DC-Breaker, Blitzschutz), Stecker, Kappe, Buchsen, MC4, Schutzmatten, Profilschienen mit Hammerkopfschrauben/Nutensteinen/Verbinder...
-
@banza sagte in [Linux Shell-Skript] WLAN-Wetterstation:
vielleicht passt's ja beim nächsten Monatswechsel wieder.
Glaube ich leider eher nicht.
Influx:Mir sieht das fast so aus als wären deine Daten nicht im passenden Format. Deswegen auch "{ack:true}" als Wert. Auch bei deinem aktuellen Monat tut sich lt. Zeitstempel schon länger nichts mehr, 31 Frosttage wäre dann wohl Nord- oder Südpol
...wobei 31 Tage am 21. des Monats auch nicht funktioniert...Deine "Datas" sollten eigentlich so aussehen:
Einzelner Monat im Detail ( wichtig: type und role ) :
und die Daten ( wichtig sind die [] zu Beginn und Ende ) :
Da einige Werte auf vorherigen Werten aufbauen bzw. übernommen werden, kommt es da natürlich zu weiteren Fehlern wenn die "Basis" nicht stimmt.
-
@sborg danke, ein Fehler ist dann schon eingegrenzt, bei mir ist ab 2022.03
{ "common": { "name": "Monatsstatistik für März 2022", "type": "string", "role": "json" }, "native": { "name": "Monatsstatistik für März 2022", "type": "string", "role": "json"
Jetzt ist die Frage, wie kann ich das für die nächsten Monate wieder richtig machen
edit: habe noch was gefunden, in einem alten Statistik-Skript (1.0.0) gibt es diese Zeile:
createState(PRE_DP+monatsdatenpunkt,'',{ name: "Monatsstatistik für "+monatsname[datum.getMonth()]+' '+datum.getFullYear(), **type: "object", role: "json"** }, () => { setState(PRE_DP+monatsdatenpunkt, json, true); });
in 1.2.0 heißt sie dann so:
createState(PRE_DP+monatsdatenpunkt,'',{ name: "Monatsstatistik für "+monatsname[datum.getMonth()]+' '+datum.getFullYear(), **type: "string", role: "json"** }, () => { setState(PRE_DP+monatsdatenpunkt, JSON.stringify(jsonSummary), true); });
-
@sborg Mach dir mal keine Gedanken um die Umlaute - solange nur ich das Phänomen habe. [Und Danke für die ZusatzInfo. Ich war nur Neugierig nach dem Wechselrichter, da gibt es bestimmt was zur Kopplung in den ioB.]
-
@banza nicht böse sein, aber kannst du die dinger in packen?
z.b.{ "common": { "name": "Monatsstatistik für März 2022", "type": "string", "role": "json" }, "native": { "name": "Monatsstatistik für März 2022", "type": "string", "role": "json"
ist leserlicher...
-
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Mach dir mal keine Gedanken um die Umlaute - solange nur ich das Phänomen habe.
Habe ich aber
Das Encoding ist prinzipiell eh besser, dann läuft es überall. Test war erfolgreich, kommt dann ins 18er Release.
Für den Hoymiles gibt es Ahoy - ein Projekt aus dem MC-Forum. Da wird mittels eines ESPs und einem 2.4GHz-Modul der WR direkt ausgelesen + per MQTT an den ioB geschickt, Man kann sogar die ersten Einstellungen im WR vornehmen. Für ~5,- € kein Cloudzwang oä. -- nehme ich
-
@banza "Richtig" ist wie auf meinen Pics und das wird auch so vom Skript angelegt, In diesem Format werden aber auch die alten Daten gelesen.
Ich vermute mal, dass ich weiß was da im April schief lief. Nicht falsch verstehen, dass ist kein Vorwurf oder dergleichen, nur der Versuch zu erklären was passiert ist. Wenn es ein simpler Anwenderfehler war, kann jedem passieren und alles gut. Aber es könnte ja auch ein Fehler im Skript oder sonst was sein. Also bitte nicht persönlich nehmen
Kann es sein, dass du im April einfach "nur" die Version des Skriptes ausgetauscht hast ohne hier im Thread die Informationen zur Veröffentlichung diesbzgl. gelesen zu haben? Das würde nämlich dann deine(n) Fehler erklären.
Der Unterschied ist relativ simpel. Vorher wurde in einem "falschen" Format gespeichert und der JSC war dahingehend tolerant. Ist/wäre er heute auch noch, nur wie lange halt noch...? Deswegen habe ich (Stichwort Anpassung JSC 3.x im Versionstext) das Format so angepasst wie es richtig ist. Das Stand in der Ankündigung zu der neuen Version, auch wie man seine paar Monatsdaten von 2020 bis 04.2022 dafür anzupassen hat.
Wenn du also nur das Skript getauscht hast ohne die Anpassungen an den alten Datensätzen vorzunehmen, würde das alles erklärenDie korrekte Form (und so von der 1.2.0 erzeugt) ist :
und eben [] zu Beginn/Ende der Daten.
Ich habe es zwar nicht getestet, aber vermutlich steigt er wg. des falschen Formates bei dir am Monatsersten schon aus, bevor er die Daten des aktuellen Monates resettet. Zumindest wäre das seitens der Programmierreihen-/Ablauffolge so.