Hallo!
Ich beziehe Temperatur, Luftfeuchte und Batteriestatus meiner Devices mittels httpmod über emoncms als drei feeds die in drei devices kanalisiert werden. Ich hätte aber gerne ein Device das alle drei Readings besitzt. Ich möchte das explizit nicht nur im Webinterface mittels readingsgroup zusammengefasst haben, sondern wirklich ein eigenes Device (das hat unter anderem auch etwas mit homebridge zu tun). Ich scheitere aber schon bei Temperatur und Luftfeuchte kläglich:
defmod SchlafzimmerWandUnified dummy
attr SchlafzimmerWandUnified genericDeviceType thermometer
attr SchlafzimmerWandUnified group humidity,temperature
attr SchlafzimmerWandUnified userReadings combined {"T: ".ReadingsVal("SchlafzimmerWand_Temperatur","temperature","")." H: ".ReadingsVal("SchlafzimmerWand_Luftfeuchte","humidity","")}
Weiß jemand Rat? Danke!
Das kann auch nicht gehen. Ein userReading ist abhängig von einem Event auf dem Device welches das userReading enthält. Ich bezweifel das Dein Dummy ein Event schmeißt ohne Grund.
Verstehe... Dann anders herum: ein DoIf würde ja bei neuen Readings verändert. So:
defmod SchlafzimmerWandUnified DOIF
attr SchlafzimmerWandUnified state [SchlafzimmerWand_Temperatur:temperature] °C [SchlafzimmerWand_Luftfeuchte:humidity] %
Dabei habe ich dann nur das Problem, dass die Readings zwar zusammen angezeigt werden, aber nicht als eigenes Reading im DoIf-Device aufscheinen. Kann man das irgendwie so filtern dass hier die Readings angelegt werden?
setreading $SELF READING VALUE
READING und VALUE musst du aus dem Event auslesen können. Wie das bei DOIF geht musst Du bitte aus der Commandref raus lesen.
Danke für Deine Hilfe!
Habe darauf basierend eine etwas Lösung geschaffen:
define SchlafzimmerWand_UpdateHumidity notify SchlafzimmerWand_Luftfeuchte:humidity:.* setreading SchlafzimmerWand_Temperatur humidity $EVTPART1
attr Schlafzimmer_UpdateHumidity room System
define SchlafzimmerWand_UpdateTemperatur notify SchlafzimmerWand_Temperatur:temperature:.* setreading SchlafzimmerWand_Temperatur temperature $EVTPART1
Das führt dann alle temperatuer und humidity readings in ein device. Dann kann ich die mit
attr Wohnzimmer_Temperatur stateFormat {sprintf("%.1f°C / %d%%",ReadingsVal("$name","temperature",0),ReadingsVal("$name","humidity",0))}
gemeinsam darstellen.