FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: ingo46 am 07 Februar 2023, 11:32:01

Titel: [Gelöst] Wert aus dem Reading lesen
Beitrag von: ingo46 am 07 Februar 2023, 11:32:01
Hallo,

mein Wettersensor KS300 liefert folgendes Reading:

avg_day  T: -3.7 H: 94 W: 0.0 R: 0.0

Ich brauche den 4. Wert für:


define di_temp_2 DOIF ##
attr di_temp_2 uiTable {package ui_Table}
card([KS300:avg_day:col3d],"Regen","weather_rain_gauge",0,10,180,270,"mm",undef,"1,,fill:silver","130,1,1,0,1")


mit 'KS300:avg_day' wird der erste Wert genommen. Deshalb dachte ich es müsste 'KS300:avg_day.R' sein - leider falsch.

Wie muss es richtig sein?
Ingo
Titel: Antw:Wert aus dem Reading lesen
Beitrag von: CoolTux am 07 Februar 2023, 12:00:09
Du solltest die Frage besser im DOIF Forum stellen. Die Jungs wissen da schneller und "besser" Bescheid.

Einfach unten links auf verschieben gehen.
Titel: Antw:Wert aus dem Reading lesen
Beitrag von: Damian am 07 Februar 2023, 13:18:05
Zitat von: ingo46 am 07 Februar 2023, 11:32:01
Hallo,

mein Wettersensor KS300 liefert folgendes Reading:

avg_day  T: -3.7 H: 94 W: 0.0 R: 0.0

Ich brauche den 4. Wert für:


define di_temp_2 DOIF ##
attr di_temp_2 uiTable {package ui_Table}
card([KS300:avg_day:col3d],"Regen","weather_rain_gauge",0,10,180,270,"mm",undef,"1,,fill:silver","130,1,1,0,1")


mit 'KS300:avg_day' wird der erste Wert genommen. Deshalb dachte ich es müsste 'KS300:avg_day.R' sein - leider falsch.

Wie muss es richtig sein?
Ingo

Wie kommst du auf diese Syntax?

Da wirst du wohl mit einem user_Reading und etwas Regex hantieren müssen, bevor du den Wert an  card weiter gibst.

Edit: Gibt es denn bei KS300 nicht ein Reading für die Regenmenge?
Titel: Antw:Wert aus dem Reading lesen
Beitrag von: ingo46 am 07 Februar 2023, 13:59:41
so sieht das komplette Reading aus:


ODev MapleCUL_0_868
avg_day T: -3.1 H: 93 W: 0.0 R: 0.0
avg_month T: 5.4 H: 45 W: 42.7 R: 43.3
checksum 8
cum_day 2023-02-07 04:49:39 T: -80556.1 H: 2420469 W: 0 R: 203.2
cum_month 6 T: 32.7 H: 272 W: 256.2 R: 43.3
humidity 93
israining no
rain 203.2
rain_raw 797
rain_raw_adj    797
state T: 0.1 H: 93 W: 0.0 R: 203.2 IR: no Wi: 0
temperature 0.1
tsecs 1675767553.79421
type_raw 7
unknown3 1
wind 0.0
windIndex 0


In 'rain' steht die gesamte Regenmenge - ich möchte aber nur die Regenmenge des Tages. Das wäre der 4. Wert von avg_day. Gibt es da eine Möglichkeit ihn aus dem Reading zu bekommen?

Ingo


                                 
Titel: Antw:Wert aus dem Reading lesen
Beitrag von: Damian am 07 Februar 2023, 15:44:18
Du kannst in dem Modul, wo du deine card einsetzt ein DOIF_Reading auf avg_day mit Ausgabeformatierung definieren, siehe: https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen
Titel: Antw:Wert aus dem Reading lesen
Beitrag von: ingo46 am 07 Februar 2023, 18:52:42
Hallo Damian,

ich habe ...#DOIF_Filtern_nach_Zahlen... gelesen - verstehe aber nicht, was zu tun ist - wo muss das 'DOIF_Reading auf avg_day' eingebaut werden und wie sieht aus?

Ingo
Titel: Antw:Wert aus dem Reading lesen
Beitrag von: Damian am 07 Februar 2023, 19:30:38
Zitat von: ingo46 am 07 Februar 2023, 18:52:42
Hallo Damian,

ich habe ...#DOIF_Filtern_nach_Zahlen... gelesen - verstehe aber nicht, was zu tun ist - wo muss das 'DOIF_Reading auf avg_day' eingebaut werden und wie sieht aus?

Ingo

Ich habe es jetzt direkt als Output-Parameter definiert, siehe: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Anzeige_eines_Werteverlaufs_und_des_aktuellen_Wertes_mit_Hilfe_der_SVG-Funktion_card

defmod di_temp_2 DOIF ##
attr di_temp_2 room Test
attr di_temp_2 uiTable {package ui_Table}\
\
card([KS300:avg_day:col3d:$_ =~ /R: (\d*.\d*)/;;$1],"Regen","weather_rain_gauge",0,10,180,270,"mm",undef,"1,,fill:silver","130,1,1,0,1")
Titel: Antw:Wert aus dem Reading lesen
Beitrag von: Damian am 07 Februar 2023, 19:45:42
Wenn es ein Tagesdurchschnitt ist, der am Tagesende zurückgesetzt wird, dann würde ich dir die neue bar-Darstellung empfehlen: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Darstellung_kumulierter_Daten_als_S.C3.A4ulen

defmod di_temp_2 DOIF ##
attr di_temp_2 room Test
attr di_temp_2 uiTable {package ui_Table}\
\
card([KS300:avg_day:bar1month:$_ =~ /R: (\d*.\d*)/;;$1],"Regen","weather_rain_gauge",0,10,180,270,"mm",undef,"1,,fill:silver","130,1,1,0,1,halfring")
Titel: Antw:Wert aus dem Reading lesen
Beitrag von: ingo46 am 07 Februar 2023, 23:27:00
Hallo Damian,

danke - jetzt habe ich es verstanden!

Mein Fehler war, dass mir die Reihenfolge nicht bewusst war: Ich hatte 'card([KS300:avg_day:$_ =~ /R: (\d*.\d*)/;;$1]:col3d....' Im nachhinein ist nir dass jetzt klar.

Mit der neuen bar-Darstellung werde ich mich in den nächsten Tagen beschäftigen.

Ingo