FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: cerberus am 13 November 2014, 12:57:05

Titel: Reading übergeben von einem Device zu einem anderen
Beitrag von: cerberus am 13 November 2014, 12:57:05
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
Titel: Antw:Reading übergeben von einem Device zu einem anderen
Beitrag von: igami am 13 November 2014, 13:06:51
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
Titel: Antw:Reading übergeben von einem Device zu einem anderen
Beitrag von: cerberus am 13 November 2014, 14:25:03
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