Wetterstation umsonst

Begonnen von Damian, 16 März 2021, 22:46:32

Vorheriges Thema - Nächstes Thema

jkriegl

Grad wollte ich den Luftdruck hinzufügen.
Weitere Ideen: Durchschnittstemperatur, Trend Luftdruck, Solar (falls vorhanden)
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

jkriegl

#31
Klappt auch im devStateIcon.
Hier Luftdruck u. Wind in einem, Temp Durschnittprognose aus Proplanta (heute/morgen)
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Damian

Zitat von: jkriegl am 17 März 2021, 16:26:31
Grad wollte ich den Luftdruck hinzufügen.
Weitere Ideen: Durchschnittstemperatur, Trend Luftdruck, Solar (falls vorhanden)

Ja, da gibt es inzwischen genügend Möglichkeiten mit uiTable-SVG-Funktionen etwas darzustellen, die Herausforderung hier, war die passende Regex-Angabe für die Wetterangaben zu finden. Im Anhang ist meine aktuelle Übersicht, die sich täglich ändert :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cwagner

Dann möchte ich den Reigen noch mit meinem Beispiel (sind nicht bezogene, sondern überwiegend selbst gemessene Werte, das ist aber ja für die Darstellung völlig egal) aufwarten. Ein bisschen stolz bin ich auf die Lufdruck-Trendanzeige (ganz simple mit Hilfe des Statistik-Moduls aus den laufenden Luftdruck-Daten erzeugt)

Gruß

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Damian

Es werden sicherlich noch einige kreative Darstellungsmöglichkeiten dazu kommen. Ich denke, dass viele die SVG-Funktionen nicht kennen bzw. nicht nutzen.

Ich habe nun die Regex-Definitionen vereinfacht und die gefühlte Temperatur eingebaut.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

FHEM-User22

Hallo Christian,

Zitat von: cwagner am 17 März 2021, 17:57:55
Dann möchte ich den Reigen noch mit meinem Beispiel (sind nicht bezogene, sondern überwiegend selbst gemessene Werte, das ist aber ja für die Darstellung völlig egal) aufwarten. Ein bisschen stolz bin ich auf die Luftdruck-Trendanzeige (ganz simple mit Hilfe des Statistik-Moduls aus den laufenden Luftdruck-Daten erzeugt)

Ich habe Interesse an der Luftdruck-Trendanzeige. Würdest Du dies etwas näher erklären?

Dankeschön. Tolle Arbeit!
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Damian

#36
Zitat von: FHEM-User22 am 18 März 2021, 07:22:44
Hallo Christian,

Ich habe Interesse an der Luftdruck-Trendanzeige. Würdest Du dies etwas näher erklären?

Dankeschön. Tolle Arbeit!

Es basiert auf der cylinder_bars-Funktion: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Balkendarstellung_mehrerer_Zahlenwerte_mit_Hilfe_der_universellen_SVG-Funktion_cylinder_bars

Alles weitere kann dir Christian erklären.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Falls jemand Balkendarstellung bevorzugt:

defmod di_Wetter DOIF ##
attr di_Wetter uiTable {package ui_Table;;}\
icon_temp_bar ("temp_outside",[Wetter:TemperaturC],undef,undef,undef,75)|\
icon_hum_bar ("temp_outside",[Wetter:Feuchtigkeit],undef,75)|\
icon_bar ([Wetter:WindKm] > 0 ? "wind".",1,0,0,".[Wetter:WindrichtungGrad]:"no_wind",[Wetter:WindKm],0,50,undef,undef,"km/h",1,undef,75)|\
icon_bar ("weather_rain_gauge",[Wetter:RegenMm],0,10,180,270,"mm/h",1,undef,75)|\
icon_bar ("sani_solar",[Wetter:UV],0,10,200,0,"UV",0,undef,75)|\
icon_bar ("weather_barometric_pressure",[Wetter:LuftdruckHpa],950,1050,0,120,"hPa",0,undef,75)


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

FHEM-User22

Moin,
ich versuche z.B. das hier umzustrippen:

http://www.wetternetz-sachsen.de/index.php?s=station&id=115

Zur Zeit verzweifle ich an HTTPMOD. Könnte mir jemand einen Anstoß geben, damit wenigstens erstmal einen Wert erhalte? Das Wiki ist in englisch, da habe ich so meine Probleme.

Dankeschön
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Amenophis86

Ich würde vorschlagen, dass du im Bereich Sonstiges ein eigenes Thema auf machst und um Hilfe fragst. Es geht zwar auch darum Wetterdaten abzugreifen aber deine Frage bezieht sich auf eine komplett andere Seite und Herausforderungen mit HTTPMOD.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Damian

#40
Zitat von: FHEM-User22 am 18 März 2021, 09:22:06
Moin,
ich versuche z.B. das hier umzustrippen:

http://www.wetternetz-sachsen.de/index.php?s=station&id=115

Zur Zeit verzweifle ich an HTTPMOD. Könnte mir jemand einen Anstoß geben, damit wenigstens erstmal einen Wert erhalte? Das Wiki ist in englisch, da habe ich so meine Probleme.

Dankeschön

Ich habe die Erfahrung gemacht, dass der angezeigte Code nicht genau übereinstimmte mit dem, was bei HTTPMOD ankommt, weil der Code zur Laufzeit vom Browser nachgeladen/verändert wird (z. b. Umrechnung auf metrische Maße bei Wunderground-Page)

Als Tipp:

Man sucht (ctrl-f) nach einem eindeutigen Schlagwort hier z. B. "Windge" im HTML-Codeinspektor (Debugger) des Browsers und gibt dann als Regex beim HTTPMOD ein:

attr Wetter reading01Name Wind
attr Wetter reading01Regex Windge(.{200})


Damit erhält man die nächsten 200 Zeichen, die beim HTTPMOD ankommen, diese werden im Reading zunächst abgelegt, dort muss man die gesuchte Zahl finden und die Zeichen bis dahin abzählen, danach kann man dann definieren, wenn z. B. 56 Zeichen zwischen "Windge" und der Zahl liegen, für eine Dezimalzahl mit einer Nachkommastelle:

attr Wetter reading01Regex Windge.{56}(\d+.\d)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cwagner

#41
Zitat von: FHEM-User22 am 18 März 2021, 07:22:44
Ich habe Interesse an der Luftdruck-Trendanzeige. Würdest Du dies etwas näher erklären?

Gerne: Ich habe ein 1-Wire-Barometer-Modul, das mir laufend den aktuellen Luftdruck liefert. Auf dieses Device habe ich das Statistikmodul "angesetzt", das ich für viele weitere Dinge seit langem benutze: Ich habe meine Definition mal für Dich auf dieses Thema hier reduziert:

defmod Statistik statistics Luftdruck
attr Statistik DbLogExclude .*
attr Statistik tendencyReadings Rel_Luftdruck
attr Statistik verbose 2



Im Device Luftdruck entsteht nun für das Reading Rel_Luftdruck (auf Meereshöhe normalisiert) durch das Modul Statistik ein stündlich aktualisiertes Reading
stat_Rel_LuftdruckTendency 1h: +0.11154247307 2h: -0.04015998717 3h: +0.33930169563 6h: +0.97874749539
Dieses zerlege ich mit dem Splitbefehl in in einem Userreading in seine drei Bestandteile
attr Luftdruck userReadings 1h {(split " ",ReadingsVal("Luftdruck","stat_Rel_LuftdruckTendency",0))[1]},2h {(split " ",ReadingsVal("Luftdruck","stat_Rel_LuftdruckTendency",0))[3]},3h {(split " ",ReadingsVal("Luftdruck","stat_Rel_LuftdruckTendency",0))[5]},6h {(split " ",ReadingsVal("Luftdruck","stat_Rel_LuftdruckTendency",0))[7]}
attr Luftdruck verbose 2
und präsentiere diese Readings 1h, 2h, 3h und 6h in einer UITable. Die entscheidende Zeile für die Tendenz:
cylinder_bars("",-3,+3,"mbar",120,60,100,0,[Luftdruck:6h],120,"6h",[Luftdruck:3h],120,"3h",[Luftdruck:2h],120,"2h",[Luftdruck:1h],120,"1h")|

Herzliche Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

cwagner

#42
Hi Damian,

kennst Du eine Möglichkeit, die Einheit bei den Balkendarstellung rechtsbündig _unterhalb_ des Reading-Wertes zu setzen. Ich habe sowohl mit . an das Reading oder im Header mit den üblichen HTML Zeichen wie <br> experimentiert, aber nichts hinbekommen.
Ich habe es mal grob in anliegendem Beispiel skizziert. Ich finde die Einheit bezieht sich ja auch auf die Legende des Bars und kann daher sehr gut so platziert werden.

In meinem Fall rückt der Messwert doch recht weit nach links (klar, ich könnte die Fläche größer machen, doch dann passt die Breite nicht harmonisch zu meinem geliebten Iconringen.

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

marboj

Zitat von: jkriegl am 17 März 2021, 16:41:48
Klappt auch im devStateIcon.
Hier Luftdruck u. Wind in einem, Temp Durschnittprognose aus Proplanta (heute7morgen)

Hallo,

wie bekommt man das denn als devstate.icon?
Grüße
Marco
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF