Hallo zusammen,
vielleicht ist das gar keine Anfängerfrage, aber es kommt mir so vor:
Ich möchte immer, wenn einer meiner KNX-Stromzähler ein reading aktualisiert, mehrere readings eines anderen dummy devices aktualisieren und dabei die Werte der ganzen KNX-Stromzähler verwenden (Differenzen und Summen bilden).
Klar ist, dass das wohl mit einem notify geht.
Ich habe das mal so angelegt:
DP11_SMAEM:.*|
DP11_SMASTP:.*|
8107_DP8_WP_ZAEHLER_WIRKLEISTUNG_PHASE_ALLE.*|
8407_DP11_EG_ZAEHLER_WIRKLEISTUNG_PHASE_ALLE.*|
8307_DP8_OG_ZAEHLER_WIRKLEISTUNG_PHASEN_ALLE.*|
8207_DP8_EG_ZAEHLER_WIRKLEISTUNG_PHASEN_ALLE.* {
return;
}
Das Notify wird jetzt auch getriggert, sobald einer der 6 Zähler ein beliebiges Reading aktualisiert.
Die Frage ist, was muss ich jetzt zwischen { und } machen, damit die Readings eines ein dummy-Devices namens "DP_PV" aktualsiert werden.
Ich habe das versucht:
fhem('set reading DP11_PV LastUpdate ' . time());
aber da sagt mir fhem, dass ich das reading "LastUpdate" im Device "DP11_PV" erst anlege muss.
Wie mache ich das?
Es muss setreading heißen.
Ein Wort!
Und hier der obligatorische Verweis auf die commandref: http://fhem.de/commandref_DE.html#setreading
Was soll denn genau passieren? Differenzen und Summen bilden von was?
Zitat von: igami am 02 Juni 2016, 17:27:55
Was soll denn genau passieren? Differenzen und Summen bilden von was?
Differenzen und Summen der readings der Devices, die das notify ausgelöst haben.
Kannst du ein Beispiel mit Zahlen machen? Am besten mit einem list von den devices und dann sagen Reading A von Device B hat jetzt ausgelöst, deswegen soll in dem Dummy C das Reading D um den Wert A erhöht und das Reading E um den Wert A gemindert werden.
Wahrscheinlich kommt am Ende dann sowas bei raus wie
... {
my $curr = ReadingsVal("C", "D", 0);
$curr += $EVTPART1;
fhem("setreadinf C $curr");
}
Wenn es am Ende etwas größeres wird, dann erstelle eine 99_myUtils und schaue Dir an wie FHEM Module Readings aktuallisieren.
readingsBeginUpdate
readingsBulkUpdate sind da nur ein paar Worte.
Grüße
Zitat von: Benni am 02 Juni 2016, 17:09:35
Es muss setreading heißen.
Das war der Fehler!
Danke!