HM-Sen-Wa-Od Zustände erkennen und Pushover auslösen

Begonnen von Gruvol, 19 September 2017, 11:56:33

Vorheriges Thema - Nächstes Thema

Gruvol

Hallo allerseits,

ich habe mittlerweile die Füllstandsanzeige erfolgreich in die Zisterne eingebaut und konfiguriert.
Nun würde ich gerne über pushover informiert werden, wenn der Füllstand und 15% fällt. Dabei will ich aber nur einmal informiert werden und nicht bei jedem weiteren Zustand unter 15%.
Des Weiteren soll bei einem Füllstand über 90% ebenfalls einmalig eine Meldung über Pushover ausgelöst werden.

Meine Frage ist nun, welches Modul sollte man dafür nehmen? Aktuell denke ich, dass notify und doif in Frage kommen könnten. Mir stellt sich nur die Frage, wie ich das umsetzen soll, dass ich nur einmal informiert werde und nicht bei weiteren Zuständen, die sich in der Range befinden würden.

Ich hoffe, dass mich jemand unterstützen kann, bzw. Tipps für die Umsetzung.

Gruß
Gruvol

Otto123

Hi,

DOIF macht das was Du willst von sich aus. Es verharrt in den Zuständen wenn sich das Ergebnis der Bedingung nicht ändert. Wäre mein simpelster Ansatz.
nur symbolisch:

DOIF (Wert < 15) (Nachricht1) DOELSEIF (Wert > 95) (Nachricht2)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Gruvol

Hallo,
danke für deine Bestätigung. Das habe ich soweit nun umgesetzt. Nachdem ich mir noch einmal die Commandref angeschaut habe, habe ich gesehen, dass man noch einige Attribute setzen kann. Dabei bin ich auf das "Do" aufmerksam geworden. Muss ich in meinen Fall demnach, wenn ich es richtig verstanden habe, das Do auf "always" setzen, damit er dies nicht nur Einmalig ausführt, sondern immer wenn die Bedingungen eintreffen?

Gruß
Gruvol

Otto123

So ist es. Aber Du wolltest es doch einmalig?!

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Alex76

#4
Hallo,

hab das auch probiert, da ich von einem in einen anderen Tank umpumpen will, aber leider löst der Event nicht aus. Hier mein Code:

# ----- Programm für Bodentank voll ------


define Bodentank_voll DOIF ([Bodentank:level] > 98 ) (set Tankbefuellung on) DOELSE (set Tankbefuellung off)
attr Bodentank_voll room Garten


Otto123

Hat gar nichts mit dem eigentlichen Problem zu tun, aber hier fehlt jegliche Bedingung
... DOELSEIF (set Tankbefuellung off)

Also DOELSE oder was willst Du für ein IF ?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Alex76

#6
Im Prinzip will ich umpumpen wenn der Tank voll ist. Aber auch die Heizungsanlage funktioniert nicht mehr:

define 1OG_Clima_off DOIF ([HM_4CF5DB_Clima:measured-temp] > [HM_4CF5DB_Clima:desired-temp] or [Sommer:"on"]) (set HM_471C00_Sw_01 off)
attr 1OG_Clima_off room Heizung

define 1OG_Clima_on DOIF ([HM_4CF5DB_Clima:measured-temp] < [HM_4CF5DB_Clima:desired-temp] and [Sommer:"off"]) (set HM_471C00_Sw_01 on)
attr 1OG_Clima_on room Heizung

define EG_Clima_off DOIF ([HM_4CF5C7_Clima:measured-temp] > [HM_4CF5C7_Clima:desired-temp] or [Sommer:"on"]) (set HM_471C00_Sw_02 off)
attr EG_Clima_off room Heizung

define EG_Clima_on DOIF ([HM_4CF5C7_Clima:measured-temp] < [HM_4CF5C7_Clima:desired-temp] and [Sommer:"off"]) (set HM_471C00_Sw_02 on)
attr EG_Clima_on room Heizung
# ----- Programm für Bodentank voll ------


define Bodentank_voll DOIF ([Bodentank:level] > 99 ) (set Tankbefuellung on) DOELSE (set Tankbefuellung off)
attr Bodentank_voll room Garten


# ----- Programm für Bodentank voll ENDE ------

define BewaesserungsPumpeOnOff DOIF ([Bewaesserungskreis1:"on"] or [Bewaesserungskreis2:"on"] or [Bewaesserungskreis3:"on"] or [Tankbefuellung:"on"] or [Tropfschlauch:"on"]) (set Bewaesserungspumpe on) DOELSE (set Bewaesserungspumpe off)
attr BewaesserungsPumpeOnOff room Garten



Was irgendwie sehr komisch ist und ich find den Fehler nicht.

Lg

Alex

Otto123

Moin,

Du musst schon beschreiben was nicht geht. https://tty1.net/smart-questions_de.html#beprecise

Und Du kannst ein list Bodentank_voll zeigen, dort erkennt man eventuell was nicht geht.

Liefert [Bodentank:level] denn wirklich eine Zahl?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Alex76

Moin,

bei der Tankbefüllung passiert einfach nichts, wenn die 100% erreicht sind.

bei der Heizung wird nur geschaltet wenn ich den Dummy einmal auf ein und dann auf aus schalte. Die Temperaturänderung löst selbst leider nicht aus.

Otto123

list Bodentank_voll  ???

Bei der Heizung fehlt wahrscheinlich do always ...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Alex76

#10
Danke für die schnelle Antwort, hab das do always bei den 4 Heizungszuständen mal eintragen.

list Bodentank_voll
Internals:
   DEF        ([Bodentank:level] > 99 ) (set Tankbefuellung on) DOELSE (set Tankbefuellung off)
   MODEL      FHEM
   NAME       Bodentank_voll
   NR         384
   NTFY_ORDER 50-Bodentank_voll
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-05-02 21:38:14   cmd             1
     2018-05-02 21:38:14   cmd_event       Bodentank_voll
     2018-05-02 21:38:14   cmd_nr          1
     2018-05-02 21:38:14   state           cmd_1
   Regex:
   condition:
     0          ::ReadingValDoIf($hash,'Bodentank','level') > 99
   devices:
     0           Bodentank
     all         Bodentank
   do:
     0:
       0          set Tankbefuellung on
     1:
       0          set Tankbefuellung off
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   itimer:
   perlblock:
   readings:
     0           Bodentank:level
     all         Bodentank:level
Attributes:
   room       Garten

Otto123

#11
z.B. hier:
attr 1OG_Clima do always

Ich denke von Bodentank:level kam noch nie ein Wert/Event!

Mach mal list Bodentank
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Alex76

list bodentank
Internals:
   CHANGED   
   DEF        3E4892
   HMLAN1_MSGCNT 1
   HMLAN1_RAWMSG E3E4892,0000,01DFE723,FF,FFCC,42A6103E4892007B140601C880
   HMLAN1_RSSI -52
   HMLAN1_TIME 2018-11-01 15:52:46
   HMLAN2_MSGCNT 1
   HMLAN2_RAWMSG E3E4892,0000,0A589198,FF,FFAD,42A6103E4892007B140601C880
   HMLAN2_RSSI -83
   HMLAN2_TIME 2018-11-01 15:52:46
   IODev      HMLAN2
   LASTInputDev HMLAN1
   MSGCNT     2
   NAME       Bodentank
   NOTIFYDEV  global
   NR         281
   NTFY_ORDER 50-Bodentank
   STATE      100
   TYPE       CUL_HM
   lastMsg    No:42 - t:10 s:3E4892 d:007B14 0601C880
   protLastRcv 2018-11-01 15:52:46
   protRcv    1 last_at:2018-11-01 15:52:46
   protSnd    1 last_at:2018-11-01 15:52:46
   protState  CMDs_done
   rssi_at_HMLAN1 cnt:1 min:-52 max:-52 avg:-52 lst:-52
   rssi_at_HMLAN2 cnt:1 min:-83 max:-83 avg:-83 lst:-83
   READINGS:
     2018-11-01 15:38:39   Activity        alive
     2017-03-03 19:18:51   CommandAccepted yes
     2017-02-26 20:27:13   D-firmware      1.3
     2017-02-26 20:27:13   D-serialNr      MEQ0690149
     2017-02-26 20:27:15   PairedTo        0x007B14
     2017-02-26 20:24:58   R-caseDesign    verticalBarrel
     2017-03-03 12:27:44   R-caseHigh      set_100 cm
     2017-02-26 20:26:34   R-caseLength    150 cm
     2017-02-26 20:25:53   R-caseWidth     150 cm
     2017-02-26 20:24:57   R-cyclicInfoMsgDis 6
     2017-02-26 20:27:16   R-fillLevel     100 cm
     2017-02-26 20:27:16   R-meaLength     120 cm
     2017-02-26 20:24:57   R-pairCentral   0x007B14
     2017-02-26 20:24:58   R-sign          off
     2017-02-26 20:24:58   R-useCustom     off
     2017-02-26 20:24:58   R-waterUppThr   255
     2017-02-26 20:24:58   R-waterlowThr   255
     2017-02-26 20:27:15   RegL_00.        02:01 0A:00 0B:7B 0C:14 11:06 14:06 18:00 00:00
     2017-02-26 20:27:16   RegL_01.        06:FF 07:FF 08:00 22:64 30:06 5B:01 5E:00 5F:6E  62:00 63:64 66:00 67:96 6A:00 6B:96 6C:00 6D:78  6E:00
     2018-11-01 15:52:46   battery         low
     2018-11-01 15:52:46   level           100
     2018-11-01 15:52:46   recentStateType info
     2018-11-01 15:52:46   state           100
   helper:
     HM_CMDNR   66
     mId        009F
     regLst     ,0,1,4p
     rxType     12
     supp_Pair_Rep 0
     ack:
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +3E4892,00,00,00
       nextSend   1541083966.93976
       rxt        2
       vccu       vccu
       p:
         3E4892
         00
         00
         00
       prefIO:
         HMLAN2
     mRssi:
       mNo        42
       io:
         HMLAN1:
           -52
           -52
         HMLAN2:
           -81
           -81
     prt:
       bErr       0
       sProc      0
       sleeping   1
       rspWait:
     q:
       qReqConf   00
       qReqStat   
     role:
       chn        1
       dev        1
     rpt:
       IO         HMLAN2
       flg        A
       ts         1541083966.84922
       ack:
         HASH(0x3f1e498)
         428002007B143E489200
     rssi:
       at_HMLAN1:
         avg        -52
         cnt        1
         lst        -52
         max        -52
         min        -52
       at_HMLAN2:
         avg        -83
         cnt        1
         lst        -83
         max        -83
         min        -83
Attributes:
   IODev      HMLAN2
   IOgrp      vccu:HMLAN2
   actCycle   028:00
   actStatus  alive
   autoReadReg 4_reqStatus
   event-on-change-reading 1
   event-on-update-reading 1
   expert     2_raw
   firmware   1.3
   icon       WLAN_Status.1
   model      HM-Sen-Wa-Od
   room       CUL_HM,Garten
   serialNr   MEQ0690149
   subType    sensor
   userReadings 1

Alex76

Ich hab nun beim Clima das Programm soweit abgeändert. Beim Aktor im 2OG hab ich die gewünschte Temperatur auf 26.5 C gestellt (zum Test) und die aktuelle ist 24C aber es wird der Switch 02 nicht aktiviert.

Der Code dazu ist:

define 1OG_Clima DOIF (([HM_4CF5DB_Clima:measured-temp] < [HM_4CF5DB_Clima:desired-temp]) and [Sommer:"off"]) (set HM_471C00_Sw_01 on) DOELSE (set HM_471C00_Sw_01 off)
attr 1OG_Clima do always
attr 1OG_Clima room Heizung

define EG_Clima DOIF (([HM_4CF5C7_Clima:measured-temp] < [HM_4CF5C7_Clima:desired-temp]) and [Sommer:"off"]) (set HM_471C00_Sw_02 on) DOELSE (set HM_471C00_Sw_02 off)
attr EG_Clima do always
attr EG_Clima room Heizung


In der Grafik sieht es auch richtig aus.


Otto123

Zitatevent-on-change-reading 1
   event-on-update-reading 1
Damit erzeugst Du überhaupt keine Events!

Diese Einstellung ist absoluter nonsens!
https://fhem.de/commandref_DE.html#readingFnAttributes

Zitatevent-on-change-reading
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings". Wenn gesetzt, erzeugen nur Veränderungen der gelisteten "readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten "readings" identisch sind, wird kein Ereignis generiert.

Wenn dies bei allen deinen Geräten so ist, kannst Du jede Automatisierungslogik vergessen!  :o

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz