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
Vermutlich nicht. Was ist der Sinn? Wie soll fhem den Wert kalkulieren? Ein Reading, das als Wert sich selbst hat???
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
Ausser (ein bisschen anders) mit templates zu arbeiten, sehe ich nicht wie es genau zu machen
https://fhem.de/commandref_DE.html#template
$name verwenden; ein Beispiel:
attr <device> userReadings tempKorr:temperature.* {sprintf("%0.2f C", ReadingsNum($name,"temperature",0)+<Temperaturoffset>);}
Gruß. Christian
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