FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Mad-at am 19 März 2018, 17:44:25

Titel: [Gelöst] Readings mehrer Devices in ein dummy device zusammenfassen
Beitrag von: Mad-at am 19 März 2018, 17:44:25
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!
Titel: Antw:Readings mehrer Devices in ein dummy device zusammenfassen
Beitrag von: CoolTux am 19 März 2018, 17:47:22
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.
Titel: Antw:Readings mehrer Devices in ein dummy device zusammenfassen
Beitrag von: Mad-at am 19 März 2018, 17:56:39
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?
Titel: Antw:Readings mehrer Devices in ein dummy device zusammenfassen
Beitrag von: CoolTux am 19 März 2018, 18:02:43

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.
Titel: Antw:Readings mehrer Devices in ein dummy device zusammenfassen
Beitrag von: Mad-at am 19 März 2018, 18:43:38
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.