[Gelöst] Readings mehrer Devices in ein dummy device zusammenfassen

Begonnen von Mad-at, 19 März 2018, 17:44:25

Vorheriges Thema - Nächstes Thema

Mad-at

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!

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Mad-at

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?

CoolTux


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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Mad-at

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.