FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Volker Kettenbach am 02 Juni 2016, 16:31:28

Titel: Bei Updates eines Devices ein anderes Dummydevice neu berechnetn
Beitrag von: Volker Kettenbach am 02 Juni 2016, 16:31:28
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?
Titel: Antw:Bei Updates eines Devices ein anderes Dummydevice neu berechnetn
Beitrag von: Benni am 02 Juni 2016, 17:09:35
Es muss setreading heißen.
Ein Wort!

Und hier der obligatorische Verweis auf die commandref: http://fhem.de/commandref_DE.html#setreading
Titel: Antw:Bei Updates eines Devices ein anderes Dummydevice neu berechnetn
Beitrag von: igami am 02 Juni 2016, 17:27:55
Was soll denn genau passieren? Differenzen und Summen bilden von was?
Titel: Antw:Bei Updates eines Devices ein anderes Dummydevice neu berechnetn
Beitrag von: Volker Kettenbach am 02 Juni 2016, 19:30:23
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.
Titel: Antw:Bei Updates eines Devices ein anderes Dummydevice neu berechnetn
Beitrag von: igami am 02 Juni 2016, 19:40:24
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");
}
Titel: Antw:Bei Updates eines Devices ein anderes Dummydevice neu berechnetn
Beitrag von: CoolTux am 02 Juni 2016, 19:49:30
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
Titel: Antw:Bei Updates eines Devices ein anderes Dummydevice neu berechnetn
Beitrag von: Volker Kettenbach am 06 Juni 2016, 14:29:58
Zitat von: Benni am 02 Juni 2016, 17:09:35
Es muss setreading heißen.


Das war der Fehler!

Danke!