Hallo,
ich möchte gerne folgende userreadings einem Gerät hinzufügen. Eins alleine klappt aber wenn es mehr als ein userreading ist geht es nicht.
Habe schon Versucht jedes einzeln per :
attr temp_wohnzimmer userReadings schimmelfreiMinTemp { sprintf("%.1f",schimmelfreiMinTemp(ReadingsVal("temp_wohnzimmer","temperature",15),ReadingsVal("temp_wohnzimmer","humidity",100),100)) }
attr temp_wohnzimmer userReadings schimmelfreiMaxHumRoom { sprintf("%.1f",schimmelfreiMaxHum(ReadingsVal("temp_wohnzimmer","temperature",15))) }
attr temp_wohnzimmer userReadings lueftenMoeglich {(ReadingsVal("temp_wohnzimmer","humidity","N/A") >(shiftRelHumidity(ReadingsVal("MeinWetter","temperature","30"),ReadingsVal("MeinWetter","humidity","100"), ReadingsVal("temp_wohnzimmer","temperature","N/A") )+3))?"ja":"nein" }
attr temp_wohnzimmer userReadings aussenHumidityEqInnen {sprintf("%.1f",shiftRelHumidity(ReadingsVal("MeinWetter","temperature","30"),ReadingsVal("MeinWetter","humidity","100"), ReadingsVal("temp_wohnzimmer","temperature","N/A")))}
Oder folgendes direkt im Gerät mit :
schimmelfreiMinTemp { sprintf("%.1f",schimmelfreiMinTemp(ReadingsVal("temp_wohnzimmer","temperature",15),ReadingsVal("temp_wohnzimmer","humidity",100),100)) }
schimmelfreiMaxHumRoom { sprintf("%.1f",schimmelfreiMaxHum(ReadingsVal("temp_wohnzimmer","temperature",15))) }
lueftenMoeglich {(ReadingsVal("temp_wohnzimmer","humidity","N/A") >(shiftRelHumidity(ReadingsVal("MeinWetter","temperature","30"),ReadingsVal("MeinWetter","humidity","100"), ReadingsVal("temp_wohnzimmer","temperature","N/A") )+3))?"ja":"nein" }
aussenHumidityEqInnen {sprintf("%.1f",shiftRelHumidity(ReadingsVal("MeinWetter","temperature","30"),ReadingsVal("MeinWetter","humidity","100"), ReadingsVal("temp_wohnzimmer","temperature","N/A")))}
Du musst die alle in ein Attribut packen! das heisst ja auch userReadin
s nicht userReading.
https://fhem.de/commandref.html#readingFnAttributes sagt:
ZitatuserReadings
A comma-separated list of definitions of user-defined readings. Each definition has the form:
<reading>[:<trigger>] [<modifier>] { <perl code> }
After a single or bulk readings update, the user-defined readings are set by evaluating the perl code { <perl code> } for all definitions and setting the value of the respective user-defined reading <reading> to the result. If <trigger> is given, then all processing for this specific user reading is only done if one of the just updated "reading: value" combinations matches <trigger>, which is treated as a regexp.
Examples:
attr myEnergyMeter userReadings energy { ReadingsVal("myEnergyMeter","counters.A",0)/1250.0;; }
attr myMultiMeter userReadings energy1:counters.A.* { ReadingsVal("myMultiMeter","counters.A",0)/1250.0;; }, energy2:counters.B.* { ReadingsVal("myMultiMeter","counters.B",0)/1250.0;; }
Danke hab ich wohl irgendwie überlesen :)