teil eines http-Strings in numerischen Wert als Reading umwandeln

Begonnen von aspe15, 12 Dezember 2020, 22:45:45

Vorheriges Thema - Nächstes Thema

aspe15

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?

amenomade

#1
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)}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

aspe15

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.  :)