NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@laplaceii Hallo, bin auch am überlegen mir die BRESSER WLAN Comfort Wettercenter mit 7-in-1 zuzulegen. Konntest du deine Station die ja ein Clone dazu ist integrieren? Finde das Stationsdisplay eigentlich ganz schick. Wie sind deine Erfahrungen?
Zudem hab ich noch eine andere frage, ich würde gerne eine Onedrop Meldung bekommen. Welchen Sensoren kann ich hierfür einbinden?
-
@tege0 Hallo, ich habe auch tatsächlich die Bresser Station (ist baugleich mit der Explore Scientific, da Bresser die Station nur vertreibt, steht sogar Explore Scientifc drauf). Ich habe mich um die Integration, trotz angebotener Unterstützung nicht wirklich kümmern können. Über den klassischen Weg die WS View app zu nutzen geht es nicht: Wenn ich unter Device list die IP der Station angebe passiert leider nichts. Ggf. hat hier jemand schon Erfahrungen....
Den in der Installationsanleitung gezeigten Screen kann ich bei mir nicht aufrufen
-
Hallo,
anbei ein Screenshot einer Darstellung von Deinem Wetterstatistik Programm. Von Liv-in-sky habe ich mir die Grundlagen geholt.
Nun meine Fragen:- Könnte man zB. am 01.01.2022 eine komplette Monatsstruktur anlegen, also 01 - 12 und mit jeweils mit einem json füllen der nur "0" als Wert enthält?
{ "Tiefstwert":0, "Hoechstwert":0, "Temp_Durchschnitt":0, "Max_Windboe":0, "Max_Regenmenge":0, "Regenmenge_Monat":0, "warme_Tage":0, "Sommertage":0, "heisse_Tage":0, "Frost_Tage":0, "kalte_Tage":0, "Eistage":0, "sehr_kalte_Tage":0, "Trockenperiode":0 }
- Wenn Du um 01:03 Deine Statistik erstellst, auch für den laufenden Monat einen json erstellst bzw. Aktualisierst?
{ "Tiefstwert":-3.5, "Hoechstwert":10.61, "Temp_Durchschnitt":3.91, "Max_Windboe":21.88, "Max_Regenmenge":21.3, "Regenmenge_Monat":51.5, "warme_Tage":0, "Sommertage":0, "heisse_Tage":0, "Frost_Tage":5, "kalte_Tage":7, "Eistage":0, "sehr_kalte_Tage":0, "Trockenperiode":0 }
-
Das gleiche für das laufende Jahr?
-
Das gleiche für die Rekordwerte?
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt?
Über die Darstellung kann man streiten, aber es ist erst der Anfang!!
Vielen Dank im voraus
MfG
Wastl -
@viper4iob IMHO am einfachsten die "Gruppierung" weg lassen, dann ist die Abfrage von Grafana nach einem Zeitbereich in Influx auch weg. Trotzdem lasse ich alle 12h mal den Wert schreiben. Sind dann max. (unnötige) 730 Datenpunkte in der Influx, was aber nur paar kB ausmacht.
Man kann natürlich auch innerhalb der Serie(n) zB. auf 14 Tage beschränken mittels einer Retention Policy. Dann wird immer alles älter als 14 Tage gedroppt. Aktuell wird nach einem Jahr gelöscht (sofern man im Influx-Adapter nichts anderes eingestellt hat).
-
@tege0 / @laplaceii Wenn die Station keinen eigenen Wetterserver zulässt, bleibt nur der Umweg per DNS-Server. Hier werden die Daten die normalerweise an WU geschickt werden auf einen heimischen Rechner umgeleitet, auf dem dann das Skript läuft. Leider ist man dann auf das WU-Protokoll beschränkt: weniger Funktionen u. weniger Sensoren.
Wenn man bspw. schon PiHole nutzt braucht man nur einen zusätzlichen Eintrag tätigen, sonst muss man zB. dnsmasq installieren und dort konfigurieren...@tege0 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Finde das Stationsdisplay eigentlich ganz schick
Bei uns schaut da kaum einer drauf. Ich habe es halt aufgestellt weil es dabei war
Die Bresser hat so keinen besseren Funktionsumfang. Wenn es nur rein um das Display geht, solltest du ev. das Gateway mit Wettermast in Betracht ziehen (da kannst du dann auch später/gleich weitere Sensoren hinzufügen). Als Anzeige nimmst du dann ein kleines Tablett oder Monitor mit bspw. einem alten Pi und lässt dort eine ioB-View drauf laufen. Da kannst du dir nicht nur das Aussehen nach belieben gestalten, sondern auch weitere Werte anzeigen lassen die das Display nicht kann. Sogar Touch ist dann möglich -
@langer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
- Könnte man zB. am 01.01.2022 eine komplette Monatsstruktur anlegen, also 01 - 12 und mit jeweils mit einem json füllen der nur "0" als Wert enthält?
- Wenn Du um 01:03 Deine Statistik erstellst, auch für den laufenden Monat einen json erstellst bzw. Aktualisierst?
- Das gleiche für das laufende Jahr?
- Das gleiche für die Rekordwerte?
Pauschal ja, aber da ich ein massives Zeitproblem habe aktuell leider nicht.
#1 ist eher unkritisch, dass sollte sich auch zeitnah lösen lassen, da es max. nur eine handvoll Quellcode ist.
#2-4 birgt leider noch ein weiteres Problem (bei #2 nicht so dramatisch). #3 + #4 sind, gerade zum Ende des Jahres bei vielen Datensätzen, eigentlich ein absolutes "Killerfeature" für Pi-Nutzer. Der braucht da 2-3 Minuten unter JS dafür, dabei laggt dann das ganze System. Unter Linux dauert die Abfrage unter 2 Sekunden, dann wäre aber ein Teil der Statistik im JS-Teil, der andere im Wetterstation-Skript...
Das schreit dann schon wieder fast nach einer Wetterstatistik.sh, gerade weil es dann eigentlich nur Abfragen gegen die InfluxDB sind, wobei das für #4 eigentlich nicht gilt...
...und wo ich gerade tippe, #4? Das sind Allzeitwerte, also bspw. die höchste jemals gemessene Außentemperatur von 43.1° gemessen am 15.07.2020
Solange es jetzt nicht über 43.1°C wird (oder du den Wert löschst) wird sich da nix mehr weiter tun
Sonst bitte Stellungnahme in dreifacher, schriftlicher Ausführung mit Durchschlag auf Normblatt 08/15 DIN A4 quer, gelocht mit Schrägstanzung -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob IMHO am einfachsten die "Gruppierung" weg lassen, dann ist die Abfrage von Grafana nach einem Zeitbereich in Influx auch weg. Trotzdem lasse ich alle 12h mal den Wert schreiben. Sind dann max. (unnötige) 730 Datenpunkte in der Influx, was aber nur paar kB ausmacht.
Man kann natürlich auch innerhalb der Serie(n) zB. auf 14 Tage beschränken mittels einer Retention Policy. Dann wird immer alles älter als 14 Tage gedroppt. Aktuell wird nach einem Jahr gelöscht (sofern man im Influx-Adapter nichts anderes eingestellt hat).
Die Gruppierung wegzulassen hatte ich schon probiert, das hat leider nicht geholfen.
Grafana fragt die Werte trotzdem immer nur in dem aktuellen Zeitraum ab, also z.B. die letzten 24h. Das sieht man im Query Inspector, bei jeder Abfrage steht am Ende der Zeitraum: z.B.
SELECT "value" FROM "javascript.0.Wetterstation.Regenstatus" WHERE time >= now() - 24h and time <= now()
Und wenn er da keine Daten findet, wird auch nichts angezeigt, die Gruppierung hat da keinen Unterschied gemacht.Ich lasse jetzt auch einfach die betroffenen Datenpunkte zwar nur bei Änderung schreiben, aber zusätzlich nochmal alle 6 Stunden.
-
@viper4iob Dann haben sie es wohl irgendwann geändert (ich glaube es gab in den letzten 14 Tagen vier neue Versionen).
Mir ist es allerdings auch nicht aufgefallen, da ich es eben auch zusätzlich alle 12 Stunden schreiben lasse. -
Danke für Deine schnelle Antwort, leider ist mir das Normblatt 08/15 DIN A4 quer, gelocht mit Schrägstanzung ausgegangen
Aber Spaß bei Seite, ich habe bzw. bin ja dabei mit Javascript die Tabellen wie im Screenshot zu sehen, zu erstellen.
Meine Frage: Wenn ich also am zB. 1.1.2022 im laufe des Tages mein Script laufen lasse, der die Dummy Monate 02 - 12.2022 erstellt, kommt Dein Programm mit dem Vorhanden sein der Dummy Monate zurecht?Die Aktualisierung des laufenden Monats, der Rekordwerte und des laufenden Jahres läuft ja schon bei mir.
Wenn Dein Programm dies beinhalten würde währe es halt für alle verfügbar.Bei Fragen, geht es auch ohne Normblätter!!
MfG
Wastl -
Noch ein kleiner Punkt zum Thema Grafana, und zwar die Windrose.
Ich hatte mich gewundert, warum diese bei wenig Wind, wo sich also auch seltener die Windrichtung ändert, immer Wind aus 0° angezeigt wird:
Nun ist es so, dass hier das DB Abfrage Intervall 1 Minute ist, dass heißt Grafana liest für jede Minute einen Wert aus der InfluxDB aus.
Wenn aber kein Wert verfügbar ist, wird dieser mit null gefüllt. Und null wird aber scheinbar von der Windrose als 0° interpretiert.
Ich lasse die Werte vom iobroker nur bei Änderungen in die DB schreiben, weil sich der Wert im Normalfall sehr häufig ändert, außer bei geringem Wind.
Wenn sich jetzt also z.B. 5 min lang die Richtung nicht ändert, dann habe ich einen realen Wert und 4 null-Werte, was mir das Gesamtbild der Windrose verfälscht.Ich habe jetzt statt fill(null) fill(previous) eingestellt, was das Bild meiner Meinung nach verbessert. Und es entspricht ja auch dem, was die Windfahne macht, sie bleibt so stehen bis sie ihre Richtung wieder ändert:
Man könnte jetzt natürlich auch im iobroker den Wert minütlich schreiben lassen, würde aber am Ende zum gleichen Ergebnis führen.
-
@langer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
kommt Dein Programm mit dem Vorhanden sein der Dummy Monate zurecht?
Sollte nichts ausmachen. Wenn es die DPs schon gibt legt er sie halt einfach nicht nochmals an.
Du müsstest nur, wenn du es nutzt, das AutoDelete um ein Jahr erhöhen als du wirklich willst, sonst löscht er wg. der "falschen" Zeitstempel die Daten zu früh (bspw. wird dann der Dezember bereits im Januar angelegt und ist dann lt. Zeitstempel im Dezember 11 Monate alt ). -
@viper4iob Was euch immer so alles auffällt
-
Nochmals Danke für die schnelle Antwort.
Ich habe AutoDelete_Data, AutoReset_Jahresstatistik jeweils auf 0 und Reset_Jahresstatistik auf false, also dürfte doch nichts passieren, oder?
MfG
Wastl -
Hallo
Kann mir jemand sagen warum der Datenpunkt Maximaltemperatur Tag sich immer wieder aktualisiert mit der normalen Außentemperatur?Wenn die Außentemperatur runter geht übernimmt er leicht zeitversetzt auch diesen Wert.
Muss ich da irgendwas ändern oder einstellen?
-
@langer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
also dürfte doch nichts passieren, oder?
Eigentlich nicht, aber nutzt du BackitUp? Sonst notfalls sicherheitshalber am 31.12. ein Backup per Hand ziehen, man weiß ja nie ...
-
@martin-0 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Muss ich da irgendwas ändern oder einstellen?
Jein, zwar nicht speziell, aber da der Wert nur per InfluxDB ermittelt wird, muss Influx natürlich aktiviert und korrekt eingerichtet sein.
-
-
Wie immer keine Werbung, Provision, Affiliate-Link oä., einfach nur falls wer sucht:
Eurochron EFWS 2900 Funk-Wetterstation mit Gutscheinrabatt etc. inkl. Versand 105,95 €
Ist mal ein echter Schnapper -
Ich wollte die OpenSenseMap Registrierung über das Skript durchführen:
./wetterstation.sh --osem_reg
.
Nur leider bricht diese gleich mit folgendem Fehler ab:
So sieht die conf aus:
Die Zeile, die den Fehler erzeugt, ist diese:
Jetzt habe ich mich gefragt, wo dieser
OSEM_USER
her kommt, der hier geprüft wird, in der conf gibt es nur einensenseBox_USER
, und die Abfrage am Terminal durch read kommt erst nach dieser Prüfung. Und ich konnte auch keine Stelle finden, an der dersenseBox_USER
aus der conf ausgelesen und in denOSEM_USER
geschrieben wird.
Und selbst wenn imOSEM_USER
an der Stelle den Inhalt aussenseBox_USER
hätte, müsste dann das Prüfen auf den Leerstring vielleicht eher so aussehenif [ ! -z $OSEM_USER ];
?
Nun weiß ich auch nicht, ob nur ich damit ein Problem habe, weil das ws_update Skript bei mir auch nicht richtig läuft, wo das patchen schief geht und ich immer noch nicht weiß warum.
Aber vielleicht ist es ja hier ein anderes Problem -
@viper4iob Kannst du auch nicht finden, klassicher C&P-Fehler.
Die einfache *if variable; ..." funktioniert schon, denn alles was "nicht leer ist" liefert hier ein true und die Bedingung wird wahr. Ich habe es jetzt aber auf die eher geläufige [ "$var" != "" ] Variante geändert (+ nun mit der richtigen Variablen ).
BugFix V2.10.1 steht auf GitHub im "master"; einfach "sh" und "sub" tauschen (ggf. Service neu starten)
Enthält noch kleinere Schönheitskorrekturen.