Hallo, irgenwie stehe ich gerade auf dem Schlauch. Eigentlich wollte ich mittel userReadings ein neues Reading im Device setzten in dem ich dieses Reading aus zwei anderen Readings berechne. Leider geht das nicht, da eines dieser Readings aus einem anderen Device kommt. Wenn dieses Reading aus dem anderen Device aktualisiert, aktualisiert sich aber das berechnete userReading in dem andern Device in dem ich es setzen möchte nicht. Ich hoffe ich habe mich verständlich ausgedrückt.
Nun habe ich mir überlegt das Reading von dem einem Device per notify in dem anderen Device zu setzten, damit ich beide Reading im gleich Device habe um so das das neue userReading zu berechen wenn sich eines der beiden ändert. Wie übergebe ich jedoch unabhängig vom Wert des Readings, auf einfache Weise, ein Reading von einem Device zu einem anderen?
hier mein useReading Code der eben so nicht funktioniert
attr Strom userReadings displayS {ReadingsVal("OW_Strom_Gas_Zaehler","displayA",0)-ReadingsVal("Strom","Zählerstand",0);;}
Danke und Grüße
cerberus
Hi cerberus,
vielleicht wäre ja ein DOIF was für dich?
Dürfte dann so inetwa aussehen:
define di_display5 DOIF ([OW_Strom_Gas_Zaehler:displayA] or [Strom:Zählerstand])(setreading Strom display5 ([OW_Strom_Gas_Zaehler:displayA] - [Strom:Zählerstand]))
attr di_display5 do always
Grüße
Igami
Danke igami für den Schubs in die richtige Richtung, ich habe es jetzt. Musste nur noch ein paar Klammer setzten, so wie in der commandref beschrieben.
define di_displayS DOIF ([OW_Strom_Gas_Zaehler:displayA] or [Strom:Zählerstand])(setreading Strom displayS {([OW_Strom_Gas_Zaehler:displayA] - [Strom:Zählerstand])})
attr di_displayS do always
define di_displayG DOIF ([OW_Strom_Gas_Zaehler:displayB] or [Gas:Zählerstand] )(setreading Gas displayG {([OW_Strom_Gas_Zaehler:displayB] - [Gas:Zählerstand])})
attr di_displayG do always
define di_displayGL DOIF ([OW_Strom_Gas_Zaehler:displayB] or [Gas:Zählerstand] or [Gas:BWert] or [Gas:ZWert] )(setreading Gas displayGL {(([OW_Strom_Gas_Zaehler:displayB] - [Gas:Zählerstand]) * [Gas:BWert] * [Gas:ZWert])})
attr di_displayGL do always
Grüße
cerberus