Hallo,
ich möchte gerne alle Ventilpositionen aller Heizkörperventile bei Änderung eines beliebigen Heizkörperventils summieren und das Ergebnis im State eines doif ablegen.
Orientiert an dem FHEM Reference Beispiel Statusanzeige: Durchschnittstemperatur aller Temperatursensoren in der Gruppe "rooms":
define di_average_temp DOIF
attr di_average_temp state [#average:d2:":temperature":temperature:$group eq "rooms"]
habe ich ein DOIF wie folgt definiert.
define HK_Clima_Ventile_DOIF DOIF (["Clima:ValvePosition"])
attr HK_Clima_Ventile_DOIF state [#sum:"ValvePosition":ValvePosition]
attr do always
Leider wird die Summe nicht im state abgelegt, habt ihr einen Tipp?
Das Problem liegt ziemlich sicher in der Definition des state Attributes, ich habe die schon variiert, komme damit aber leider nicht zum Ziel.
Hier noch das Listing des DOIF Devices.
Internals:
CFGFN
DEF (["Clima:ValvePosition"])
DOIFDEV ^global$|Clima|ValvePosition
FUUID 5e493315-f33f-27fa-d79e-1a27bfe86c325990
MODEL FHEM
NAME HK_Clima_Ventile_DOIF
NR 196306
NTFY_ORDER 50-HK_Tom_Clima_DOIF_1
STATE 0
TYPE DOIF
VERSION 20929 2020-01-10 09:44:35
READINGS:
2020-02-16 16:28:01 Device HK_Buero_Clima
2020-02-16 16:28:01 cmd 1
2020-02-16 16:28:01 cmd_event HK_Buero_Clima
2020-02-16 16:28:01 cmd_nr 1
2020-02-16 16:20:50 mode enabled
2020-02-16 16:28:01 state 0
Regex:
STATE:
:
STATE:
"ValvePosition" ValvePosition
accu:
cond:
:
0:
"Clima:ValvePosition" Clima:ValvePosition
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('Clima',$hash,'ValvePosition',0)
do:
0:
0
1:
helper:
DEVFILTER ^global$|Clima|ValvePosition
NOTIFYDEV global|.*Clima.*|.*ValvePosition.*
event ValvePosition: 100
globalinit 1
last_timer 0
sleeptimer -1
timerdev HK_Buero_Clima
timerevent ValvePosition: 100
triggerDev HK_Buero_Clima
timerevents:
ValvePosition: 100
boostTime: -
controlMode: auto
desired-temp: 21.0
measured-temp: 20.6
partyEnd: -
partyStart: -
partyTemp: -
T: 20.6 desired: 21.0 valve: 100
timereventsState:
ValvePosition: 100
boostTime: -
controlMode: auto
desired-temp: 21.0
measured-temp: 20.6
partyEnd: -
partyStart: -
partyTemp: -
state: T: 20.6 desired: 21.0 valve: 100
triggerEvents:
ValvePosition: 100
boostTime: -
controlMode: auto
desired-temp: 21.0
measured-temp: 20.6
partyEnd: -
partyStart: -
partyTemp: -
T: 20.6 desired: 21.0 valve: 100
triggerEventsState:
ValvePosition: 100
boostTime: -
controlMode: auto
desired-temp: 21.0
measured-temp: 20.6
partyEnd: -
partyStart: -
partyTemp: -
state: T: 20.6 desired: 21.0 valve: 100
internals:
readings:
trigger:
uiState:
uiTable:
Attributes:
do always
room Heizkörper
state [#sum:"ValvePosition":ValvePosition]
Danke und Gruß
-resyncer
Wie heißen deine Devices mit ValvePosition?
Alle Devices sind nach dem Schema HK_Buero_Clima oder HK_Tom_Clima ... benannt.
Zitat von: Resyncer am 17 Februar 2020, 01:06:52
Alle Devices sind nach dem Schema HK_Buero_Clima oder HK_Tom_Clima ... benannt.
Es sollte reichen:
define HK_Clima_Ventile_DOIF DOIF ##
attr HK_Clima_Ventile_DOIF state [#sum"^HK:ValvePosition":ValvePosition]
Damit es funktioniert, muss es Events von Devices, die mit "HK" anfangen mit ValvePosition geben (-> Eventmonitor).
Klasse, danke dir Damian!
Damit funktioniert es :)