FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: synaps-o-dan am 19 August 2017, 17:33:27

Titel: [gelöst] userReadings: geht so was?
Beitrag von: synaps-o-dan am 19 August 2017, 17:33:27
Statt: attr mySensor userReadings myReading {ReadingsVal("mySensor ", "myReading ", undef)}
Lierber: attr mySensor userReadings myReading {ReadingsVal($self, "myReading ", undef)}
oder so ($device, $SELF, $DEVICE)
Geht das irgendwie?
Grüße,
Daniel
Titel: Antw:userReadings: geht so was?
Beitrag von: amenomade am 19 August 2017, 17:41:24
Vermutlich nicht. Was ist der Sinn? Wie soll fhem den Wert kalkulieren? Ein Reading, das als Wert sich selbst hat???
Titel: Antw:userReadings: geht so was?
Beitrag von: synaps-o-dan am 19 August 2017, 17:50:19
Im Kontext des userReadings soll der Sensor eines seiner eigenen Readings aufrufen. So, wie es da steht, macht es natürlich wenig Sinn. Sinvoll wird es z.B., wenn eine Formel angewendet wird:
attr mySensor userReadings myReading {ReadingsVal($self, "myReading ", undef)/1000+10}
oder so. Der Name des Sensordevices ("mySensor") taucht nicht mehr in der Definition des userReadings auf. Hintergrund: ich habe insgesamt acht Sensoren, bei denen ich aus den Readings einen neuen Messwert generieren möchte (Umrechnung von Temperatur und einem gemessenen Spannungswert in die relative Luftfeuchtigkeit), und das könnte man sehr schnell da so definieren:
attr Sensor_.* userReadings humidity {magicformula(ReadingsVal($self, "VDD", undef), ReadingsVal($self, "temperature", undef))}
und muss dann nicht acht mal ein userReading mit dem ausgeschriebenen Namen des Sensors verwenden.
(Sensor_.* findet per Regex die acht Sensoren.)
LG,
Daniel
Titel: Antw:userReadings: geht so was?
Beitrag von: amenomade am 19 August 2017, 18:51:52
Ausser (ein bisschen anders) mit templates zu arbeiten, sehe ich nicht wie es genau zu machen
https://fhem.de/commandref_DE.html#template
Titel: Antw:userReadings: geht so was?
Beitrag von: krikan am 19 August 2017, 18:57:52
$name verwenden; ein Beispiel:
attr <device> userReadings tempKorr:temperature.* {sprintf("%0.2f C", ReadingsNum($name,"temperature",0)+<Temperaturoffset>);}

Gruß. Christian
Titel: Antw:userReadings: geht so was?
Beitrag von: synaps-o-dan am 19 August 2017, 19:55:44
Zitat von: krikan am 19 August 2017, 18:57:52
$name verwenden; ein Beispiel:
attr <device> userReadings tempKorr:temperature.* {sprintf("%0.2f C", ReadingsNum($name,"temperature",0)+<Temperaturoffset>);}

Gruß. Christian

Cool, funktioniert! Hätte ich da auch selbst draufkommen können (Wiki, Commandref?)
Vielen Dank,
Daniel