Hallo zusammen,
ich möchte folgendes machen, doch bin ich langsam am Zweifeln ob das überhaupt funktioniert.
Ich habe zwei Stromzähler. Ich möchte von einem Reading des einen Stromzählers einn Reading vom zweiten Stromzähler abziehen. Geht das überhaupt oder stell ich mich nur aweng "komisch" an?
attr Zaehler userRadings VerbrauchHeizung {ReadingsNum("Stromzaehler2","16.7_akutelle_Leistung", 0) - ReadingsNum("Stromzaehler1","16.7_akutelle_Leistung", 0}
Oder kann man Berechnungen nur innerhalb von einem Device durchführen?
Grüße
Christian
userReadings werden nur getriggert wenn von readings im gleichen device. du kannst userReadings nicht verwenden um readings aus einem oder zwei devices in ein drittes zu schereiben.
nimm ein normales notify.
Moin,
als Idee, nicht getestet:
defmod n_zaehler notify Stromzaehler1:16.7_akutelle.*|Stromzaehler2:16.7_akutelle.* set Zaehler {([Stromzaehler2:16.7_akutelle_Leistung:d] - [Stromzaehler1:16.7_akutelle_Leistung:d])}
Beide Zaehler triggern das notify. Und ich hoffe das die Readings wirklich "akutelle" heißen ;D
Als ersten Test kannst Du den Ausführungsteil einfach in der FHEM Kommandozeile testen:
set Zaehler {([Stromzaehler2:16.7_akutelle_Leistung:d] - [Stromzaehler1:16.7_akutelle_Leistung:d])}
Gruß Otto
Alternativ
define zaehler_di DOIF {set_Reading("diff",[Stromzaehler2:16.7_akutelle_Leistung:d]-[Stromzaehler1:16.7_akutelle_Leistung:d],1)}
Im Reading [zaehler_di:diff] findest du immer die aktuelle Differenz. Auch hier triggern beide Readings die Definition. Ein Dummy ist nicht erforderlich.
Herzlichen Dank euch beiden. Ich habe jetzt erstmal meine akutelle angepasst ;) und werde beide mal testen. Ich werde berichten.
Danke und Gruß
Christian
Die Version von Damian funktioniert auf Anhieb. Merci.
Bei der Version von Otto habe ich eine Frage: Muss ich den "Zaehler" als dummy definieren? Oder wie macht man das am elegantesten?
VG
Christian
Hallo Christian,
die Idee Zaehler ist nicht von mir, die steht in deinem Post!?
Kannst Du machen wie du willst, extra dummy, vorhandenes Gerät - wie auch immer
Bei vorhandenem Gerät nimmst Du anstatt set
setreading <gerateName> <ReadingName> {usw...}
Gruß Otto
Hallo Otto,
da hast du Recht. Sorry.
Auf jeden Fall ist mein Problem erstmal gelöst. Vielen Dank euch.
Grüße
Christian
Themen bitte nicht schliessen, sondern [Gelöst] vor das Subject des ersten Posts schreiben