Tempest

Zum Script habe ich noch ein paar Fragen und Anregungen.

  1. ops_st / Slope was ist das für ein Wert?

Ein paar Suffixe irritieren mehr als sie nützen:
2. ops_st / System Condition >>> Suffix (Volt) weg lassen.
3. device_status / sensor_status >>> Suffix ((Status)) weg lassen.
4. hub_status / Radio Status >>> Suffix (Radio Status) weg lassen.

Zum Bereich Regen habe ich noch nichts. Es hat auch noch nicht richtig geregnet. Die paar Tropfen haben wohl noch nicht gereicht.

Die Variable Slope steht für Steigung und ist das Ergebnis der Berechnung der linearen Regression über die Batterie Ladespannung.
Ich versuche herauszubekommen ob die Batterie lädt oder entlädt. Im Moment bin ich noch nicht zufrieden mit der Berechnung. Ich habe den Schalter $experimental eingeführt und erstmal auf false gesetzt und die Variablen $slope, $average und $median ausgeschaltet
Wenn ich mit dem Teil zufrieden bin kann man das ganze wieder aktivieren

Die Suffixes habe ich entsprechend entfernt. Das Skrip kopieren und einmal mit $profil_update = true; in der Konsole starten

https://www.symcon.de/forum/threads/42554-Tempest/page12

Mit dem neuen Tempest möchte ich natürlich auch eine neue Wetterstartseite haben. Nach RWN’s super Projekt habe ich nichts vergleichbares erreicht.
Ein Weg wäre eine Verbindung mit Wunderground Weather. Da wurden ja alle API Keys ungültig, von Usern die keine eigenen Daten beitragen.
In der Tempest App kann man Tempest mit WU verbinden.
Wie macht ihr das??

bei dem Variablenprofil für ‚Rain Start Event‘ sieht Unix Timestamp besser aus. Da sieht man gleich, wann es angefangen hat zu regnen.
Für ‚Time Epoch‘ und ‚timestamp‘ macht das bestimmt auch Sinn.

Für die Regenmenge addiere ich die ‚Precip Accumulated‘ Werte in eine Zähler-Variable. Ich vergleiche noch die Werte mit meinem alten FS10 Regenmesser. Mal sehen, wie das nach längerem Regen aussieht.

Eine Verbindung zu Wunderground habe ich jetzt. Erst bei WU einen Account erstellen. Dann bekommt man eine Stations ID und einen Key. Die trägt man in der Tempest App ein. Die sendet Daten an WU. Etwas später bekommt man bei WU unter seinem Account einen API Key.
WU ist etwas zickig bei der Eingabe. Meist englische Einheiten aber Deutsche Umlaute.

Da das native Wunderground Modul nur mit alter WU API funktioniert habe ich, um an den Wetterbericht zu kommen, das Modul WundergroundPWSsync installiert. Etwas oversized. Ich suche ja nur eine Vorhersage. Die aktuellen Daten habe ich ja.
Wenn man offline, ohne Tempest App, arbeitet wäre es ein Weg.

Wo holt ihr eure Wettervorhersage her? Könnte man die auch direkt von WeatherFlow bekommen? In deren Doku habe ich darüber noch nichts gefunden.

Neu Version Online : https://www.symcon.de/forum/threads/42554-Tempest?p=442072#post442072

13.12.2020
Vers. 1.5
Unix Zeiten werden jetzt nicht mehr in Sekunden angezeigt sondern entweder mit dem ~UnixTimestamp Profil versehen (Datum) oder als String im Format : Monate, Wochen, Tage, Stunden, Minuten, Sekunden (elapsed Time) dargestellt.
Da einige Variablen vorher als Integer definiert waren werden diese nunmehr automatisch gelöscht und mit dem korrekten Typ neu angelegt. Ich habe darüber nachgedacht einige Variablen Namen zu ändern. Da ich jedoch in den Schleifen die Variablen Namen automatisch aus der Nachricht generiere war mir der Aufwand im Vergleich zum Nutzen an dieser Stelle zu groß. Im Zuge der Änderungen habe ich die Umrechnungen einiger Variablen in der Funktion „check_variable“ zusammengefasst

Meine Erfahrungen zum Akku:

Wir haben nun schon tagelang keine Sonne und selbst die Tage sind eher dunkel.
Der Akku hat sich auf 2,4V eingependelt und bewegt sich nur minimal mal nach oben und mal nach unten.

Ingesamt scheint sich das Management zwischen Solarladung, Akku und Verbrauch doch gut abzustimmen.

Die Wetterprognose ist eher düster, so dass man im Januar nochmal drauf schauen kann.
Ich bin eher positiv überrascht.

Gesendet von iPhone XS mit Tapatalk

Ich sehe es auch positiv. Auch wenn die Tendenz mehr nach unten als nach oben geht. Meiner liegt jetzt bei 2,39V. Ab nächste Woche werden die Tage dann auch schon wieder länger. :slight_smile:

Im Script wird ‚Rain Start Event‘ immer noch in Sekunden dargestellt

Das liegt daran das es bei Dir noch nicht geregnet hat :slight_smile:
Wenn du willst kannst Du das Script mit den Rohdaten von „evt_precip“ starten. Dann wird die Variable mit dem ~UnixTimestamp Profil versehen oder Du wartest auf Regen und dann passiert das auch

Dass ‚Rain Start Event‘ erst später aktualisiert wird ist mir sofort nachdem ich es abgesendet hatte eingefallen.

Noch ein paar Profilanpassungen: ops_st > Air Temperatur von C° auf °C ändern.

Bei der Windrichtung würde mir so etwas wie ~WindDirection.Text (OSO SSW usw.) besser gefallen. Ist aber für Fload.

Und zuletzt: bitte im Script Datum und Version anpassen.

Die Umrechnung von m/s in km/h funktioniert bei mir seit der letzten Version wohl nicht mehr. Steht zwar km/h dahinter, ist aber der m/s Wert.
‚Wind Sample Interval‘ ist als Integer in Sekunden auch besser zu verarbeiten, wie als String.

Gruß
Rainer

Die km/h Umrechnung war ein blöder Fehler von mir, fix kommt

Wind Sample Interval stelle ich dann auch wieder auf Integer

Korrektur auf °C kommt und für die Windrichtung lasse ich mir etwas einfallen

Neues Script unter : https://www.symcon.de/forum/threads/42554-Tempest?p=442072#post442072

17.12.2020
Vers.1.5.1
Fehler bei der Umrechnung auf km/h behoben
Wind Sample Interval wieder als Integer Variable
C° auf °C geändert
Windrichtung als Float mit Assoziationen ((OSO SSW usw.) )

ich habe festgestellt, dass Stationswerte „obs_st“ gelegentlich auch innerhalb des eigentlichen Sendeabstands von einer Minute kommen. Bei diesen ist der Zeitstempel aber nicht passend zum Übertragungszeitpunkt. Normal sind aktuell hier so 5 Sekunden Differenz.

Gemerkt habe ich das, weil ich seltsame „Ausreißer“ in den übertragenen Werten habe. Kann das jemand bestätigen? Oder ist das nur bei mir so? Aktuell liegt die Akku-Spannung hier bei 2.39 Volt.

@BestEx @paresy
kann man da einen Plausibilitätscheck einbauen, um diese falschen Werte auszufiltern?

Gruß
Rainer

Ich habe mal eine Messreihe aufgesetzt : time() - timestamp
Ich lasse das mal eine Zeitlang laufen und schaue mal ob ich auch Ausreißer habe

Ausreiser größer X (5 sek. ?) könnte ich dann einfach ignorieren

Danke.
Falls du ‚Time Epoch‘ archivierst, kannst du die „Ausreißer“ auch in der Grafik sehen :smiley:

die 5 sek. sind nur ein grober Richtwert. Aktuell habe ich 2 sek. Differenz. Keine Ahnung, wie weit die Zeit beim Tempest abweichen kann.

Die Charts zeigen die Differenz zwischen time() und der übertragenen Uhrzeit.
Es sieht so aus als on die interne Uhr von Tempest alle 8 Stunden synchronisiert wird (Die interne Uhr hat einen konstanten Drift) :

Es gibt Ausreißer, am stärksten bei OBS (600 sec. = 10 Min.)

tempest 12.jpg

Die folgenden Charts zeigen das die Temperatur Werte bei zwei der Ausreißer starke Abweichungen haben (also falsch sind)

Es erscheint also folgerichtig Werte mit einem Zeit Stempel der außerhalb des Drifts (~ 8 sek.) liegt zu verwerfen

die normale Drift geht bei mir bis 11 sek., bei deinem 1. Bild wohl bis 12 sek.
Ich würde die Grenze bei >13 sek. setzen.
Da ich meine Werte in bereits bestehende Variablen übertrage, hatte ich mir hier auch schon einen Filter eingebaut und musste heute nach feststellen, dass meine Grenze von 10 sek. zu klein war (da wurden dann keine Werte mehr übernommen).
Bei mir sind die „Ausreißer“ auch wesentlich öfter und teilweise größer. Ich habe mir das mal in debug des UDP Sockets angeschaut.
Da sieht man, dass hier identische Meldungen mit altem Zeitstempel erneut übertragen werden :confused:

z.B. die markierte Zeile ist identisch mit der vorhergehenden

Abweichungen Zeitstempel

Aufezeichnung Time Epoch

Neue Version : https://www.symcon.de/forum/threads/42554-Tempest?p=442072#post442072

18.12.2020
Vers. 1.5.2
Neu Globale variable $max_age eingeführt. $max_age definiert den maximalen unterschied zwischen time() und Zeit Stempel der Nachricht. Ältere Werte werden weggeworfen