Autor Thema: DOIF: Aggregationsbedingung #SUM für alle Ventilpositionen  (Gelesen 350 mal)

Offline Resyncer

  • New Member
  • *
  • Beiträge: 22
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
« Letzte Änderung: 16 Februar 2020, 21:39:49 von Resyncer »
FB 6590, FB 7390, FB7490, Raspberry Pi 2 mit CUL V3.4.
7xCC-RT-DN,1xHM-LC-SW1-PL2,5xLC-Sw1PBU-FM,1xPB-2-WM55-2,1xSEC-SC,6xSEC-SC-2,3xSEC-SCo,6xSEC-SD,3xTC-IT-WM-W-EU,1xWDS10-TH-O,9xIntertechno, GB162 mit EMS Gateway Premium II

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 7673
Antw:DOIF: Aggregationsbedingung #SUM für alle Ventilpositionen
« Antwort #1 am: 16 Februar 2020, 23:30:12 »
Wie heißen deine Devices mit ValvePosition?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-Web, THRESHOLD, FHEM-Befehl: IF

Offline Resyncer

  • New Member
  • *
  • Beiträge: 22
Antw:DOIF: Aggregationsbedingung #SUM für alle Ventilpositionen
« Antwort #2 am: 17 Februar 2020, 01:06:52 »
Alle Devices sind nach dem Schema HK_Buero_Clima oder HK_Tom_Clima ... benannt.
FB 6590, FB 7390, FB7490, Raspberry Pi 2 mit CUL V3.4.
7xCC-RT-DN,1xHM-LC-SW1-PL2,5xLC-Sw1PBU-FM,1xPB-2-WM55-2,1xSEC-SC,6xSEC-SC-2,3xSEC-SCo,6xSEC-SD,3xTC-IT-WM-W-EU,1xWDS10-TH-O,9xIntertechno, GB162 mit EMS Gateway Premium II

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 7673
Antw:DOIF: Aggregationsbedingung #SUM für alle Ventilpositionen
« Antwort #3 am: 17 Februar 2020, 08:41:15 »
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).
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-Web, THRESHOLD, FHEM-Befehl: IF

Offline Resyncer

  • New Member
  • *
  • Beiträge: 22
Antw:DOIF: Aggregationsbedingung #SUM für alle Ventilpositionen
« Antwort #4 am: 17 Februar 2020, 10:44:35 »
Klasse, danke dir Damian!
Damit funktioniert es  :)
FB 6590, FB 7390, FB7490, Raspberry Pi 2 mit CUL V3.4.
7xCC-RT-DN,1xHM-LC-SW1-PL2,5xLC-Sw1PBU-FM,1xPB-2-WM55-2,1xSEC-SC,6xSEC-SC-2,3xSEC-SCo,6xSEC-SD,3xTC-IT-WM-W-EU,1xWDS10-TH-O,9xIntertechno, GB162 mit EMS Gateway Premium II

 

decade-submarginal