FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: aspe15 am 12 Dezember 2020, 22:45:45

Titel: teil eines http-Strings in numerischen Wert als Reading umwandeln
Beitrag von: aspe15 am 12 Dezember 2020, 22:45:45
Nach mehrstündigem Suchen und Lesen verschiedener Lösungsansätze (notify / DOIF) bin ich noch verwirrter und habe keine Ansatz. :-[

Ich bekomme von einem externen Sensor über http einen String "T: 21.3", der im Device als state angezeigt und im Log als T: 21.3 mit Datum und Zeit gespeichert wird. Nun brauche ich aber ein Reading in diesem Device mit "temperature: 21.3" als numerischen Wert.

Aus dem Eventmonitor:
2020-12-12 21:42:55 dummy TScheune T: 21.5

Ist:
Readings
state                T: 21.3      2020-12-12 22:32:46

Ziel:
Readings
state               T: 21.3      2020-12-12 22:32:46
temperature    21.3          2020-12-12 22:32:46
   
Wie kann ich die 21.5 jedemal bei Eintreffen als Reading in das Device schreiben?
Titel: Antw:teil eines http-Strings in numerischen Wert als Reading umwandeln
Beitrag von: amenomade am 12 Dezember 2020, 22:56:13
attr TScheune userReadings temperature:state.* {ReadingsNum("TScheune","state",0)}

https://fhem.de/commandref_DE.html#readingFnAttributes

EDIT: da "state" nich im Event kommt, muss man dann ohne Trigger. Also:
attr TScheune userReadings temperature {ReadingsNum("TScheune","state",0)}
Titel: Antw:teil eines http-Strings in numerischen Wert als Reading umwandeln
Beitrag von: aspe15 am 13 Dezember 2020, 02:10:06
Super! Vielen herzlichen Dank!
Klappt fabelhaft. ;D

Habe mir den Teil der Referenz reingezogen. Nur teilweise verstanden. Klar ist, dass ich ja wie du auch schriebst, in diesem Fall keinen Trigger habe und deshalb das erste Beispiel in der Ref, dein zweites, benutzen musste. Ist jedenfalls bedeutend sparsamer als Notify oder DOiF. Schon Wahnsinn, was in FHEM alls verborgen ist.  :)