DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )

Begonnen von der-Lolo, 22 Oktober 2017, 13:47:25

Vorheriges Thema - Nächstes Thema

der-Lolo

Ok, hier ein list davon...

Internals:
   CFGFN
   DEF        ([WMZ:Vorlauftemperatur] > 40 and [WMZ:Durchfluss] < 1) (set DummyZweig1 true) DOELSE (set DummyZweig1 false)
   NAME       ZWeig1
   NR         375
   NTFY_ORDER 50-ZWeig1
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2017-10-25 15:49:19   Device          WMZ
     2017-10-25 15:49:19   cmd             2
     2017-10-25 15:49:19   cmd_event       WMZ
     2017-10-25 15:49:19   cmd_nr          2
     2017-10-25 15:49:19   state           cmd_2
     2017-10-25 15:49:19   warning         condition c01: Argument "" isn't numeric in numeric gt (>)

   condition:
     0          ReadingValDoIf($hash,'WMZ','Vorlauftemperatur') > 40 and ReadingValDoIf($hash,'WMZ','Durchfluss') < 1
   devices:
     0           WMZ
     all         WMZ
   do:
     0:
       0          set DummyZweig1 true
     1:
       0          set DummyZweig1 false
   helper:
     event      Durchfluss: 1260
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   WMZ
     timerevent Durchfluss: 1260
     triggerDev WMZ
     bm:
       DOIF_Notify:
         cnt        19
         dmx        0
         mTS        25.10. 15:49:19
         max        9
         tot        13
         mAr:
           HASH(0x1cbe1e30)
           HASH(0x1cc41d40)
       DOIF_Set:
         cnt        4
         dmx        0
         mAr
         mTS
         max        0
         tot        0
     timerevents:
       Durchfluss: 1260
     timereventsState:
       Durchfluss: 1260
     triggerEvents:
       Durchfluss: 1260
     triggerEventsState:
       Durchfluss: 1260
   internals:
   itimer:
   readings:
     0           WMZ:Vorlauftemperatur WMZ:Durchfluss
     all         WMZ:Vorlauftemperatur WMZ:Durchfluss
   regexp:
     0:
     all:
   state:
     STATE:
   trigger:
Attributes:



der-Lolo

Jetzt hat die Wärmepumpe auch gerade die Warmwasserbereitung abgeschlossen - die bedingung die ich brauche wäre also jetzt gegeben.

Internals:
   CFGFN
   DEF        ([WMZ:Vorlauftemperatur] > 40 and [WMZ:Durchfluss] < 1) (set DummyZweig1 true) DOELSE (set DummyZweig1 false)
   NAME       ZWeig1
   NR         375
   NTFY_ORDER 50-ZWeig1
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2017-10-25 15:52:51   Device          WMZ
     2017-10-25 15:49:19   cmd             2
     2017-10-25 15:49:19   cmd_event       WMZ
     2017-10-25 15:49:19   cmd_nr          2
     2017-10-25 15:49:19   state           cmd_2
     2017-10-25 15:52:51   warning         condition c01: Argument "" isn't numeric in numeric gt (>)

   condition:
     0          ReadingValDoIf($hash,'WMZ','Vorlauftemperatur') > 40 and ReadingValDoIf($hash,'WMZ','Durchfluss') < 1
   devices:
     0           WMZ
     all         WMZ
   do:
     0:
       0          set DummyZweig1 true
     1:
       0          set DummyZweig1 false
   helper:
     event      Durchfluss: 0
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   WMZ
     timerevent Durchfluss: 0
     triggerDev WMZ
     bm:
       DOIF_Notify:
         cnt        158
         dmx        0
         mTS        25.10. 15:49:19
         max        9
         tot        47
         mAr:
           HASH(0x1cbe1e30)
           HASH(0x1cc41d40)
       DOIF_Set:
         cnt        13
         dmx        0
         mAr
         mTS
         max        0
         tot        0
     timerevents:
       Durchfluss: 0
     timereventsState:
       Durchfluss: 0
     triggerEvents:
       Durchfluss: 0
     triggerEventsState:
       Durchfluss: 0
   internals:
   itimer:
   readings:
     0           WMZ:Vorlauftemperatur WMZ:Durchfluss
     all         WMZ:Vorlauftemperatur WMZ:Durchfluss
   regexp:
     0:
     all:
   state:
     STATE:
   trigger:
Attributes:

Otto123

Ok die Zählweise ist anders - das hält auch fit!!!

mit :d das Gleiche?
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

der-Lolo

Ja, leider siehe auch post #25

und
Internals:
   CFGFN
   DEF        ([WMZ:Vorlauftemperatur:d] > 40 and [WMZ:Durchfluss:d] < 1) (set DummyZweig1 true) DOELSE (set DummyZweig1 false)
   NAME       ZWeig1
   NR         375
   NTFY_ORDER 50-ZWeig1
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2017-10-25 16:02:50   Device          WMZ
     2017-10-25 16:01:50   cmd             2
     2017-10-25 16:01:50   cmd_event       WMZ
     2017-10-25 16:01:50   cmd_nr          2
     2017-10-25 16:01:50   state           cmd_2
     2017-10-25 16:02:50   warning         condition c01: Argument "" isn't numeric in numeric gt (>)

   condition:
     0          ReadingValDoIf($hash,'WMZ','Vorlauftemperatur','','d') > 40 and ReadingValDoIf($hash,'WMZ','Durchfluss','','d') < 1
   devices:
     0           WMZ
     all         WMZ
   do:
     0:
       0          set DummyZweig1 true
     1:
       0          set DummyZweig1 false
   helper:
     event      Durchfluss: 1152
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   WMZ
     timerevent Durchfluss: 1152
     triggerDev WMZ
     bm:
       DOIF_Notify:
         cnt        64
         dmx        0
         mTS        25.10. 16:01:50
         max        7
         tot        20
         mAr:
           HASH(0x1cbe1e30)
           HASH(0x1ce954c0)
       DOIF_Set:
         cnt        3
         dmx        0
         mAr
         mTS
         max        0
         tot        0
     timerevents:
       Durchfluss: 1152
     timereventsState:
       Durchfluss: 1152
     triggerEvents:
       Durchfluss: 1152
     triggerEventsState:
       Durchfluss: 1152
   internals:
   itimer:
   readings:
     0           WMZ:Vorlauftemperatur WMZ:Durchfluss
     all         WMZ:Vorlauftemperatur WMZ:Durchfluss
   regexp:
     0:
     all:
   state:
     STATE:
   trigger:
Attributes:

Otto123

Was passiert wenn Du [WMZ:Vorlauftemperatur:d] durch 100 ersetzt? also 100 > 40

Ich verstehe es nicht  :'(
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

der-Lolo

#35
*gg*

ich glaube jetzt geht DOIF von einem 100 sekunden Timer aus...

Internals:
   CFGFN
   DEF        ([100] > 40 and [WMZ:Durchfluss:d] < 1) (set DummyZweig1 true) DOELSE (set DummyZweig1 false)
   NAME       ZWeig1
   NR         375
   NTFY_ORDER 50-ZWeig1
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2017-10-25 16:08:20   Device          WMZ
     2017-10-25 16:08:20   cmd             2
     2017-10-25 16:08:20   cmd_event       WMZ
     2017-10-25 16:08:20   cmd_nr          2
     2017-10-25 16:08:20   state           cmd_2
     2017-10-25 16:08:04   timer_01_c01    26.10.2017 00:01:40
   condition:
     0          DOIF_time_once($hash,0,$wday) > 40 and ReadingValDoIf($hash,'WMZ','Durchfluss','','d') < 1
   days:
   devices:
     0           WMZ
     all         WMZ
   do:
     0:
       0          set DummyZweig1 true
     1:
       0          set DummyZweig1 false
   helper:
     event      Durchfluss: 918
     globalinit 1
     last_timer 1
     sleeptimer -1
     timerdev   WMZ
     timerevent Durchfluss: 918
     triggerDev WMZ
     bm:
       DOIF_Notify:
         cnt        20
         dmx        0
         mTS        25.10. 16:08:20
         max        6
         tot        9
         mAr:
           HASH(0x1cbe1e30)
           HASH(0x1d02cc60)
       DOIF_Set:
         cnt        5
         dmx        0
         mAr
         mTS
         max        0
         tot        0
     timerevents:
       Durchfluss: 918
     timereventsState:
       Durchfluss: 918
     triggerEvents:
       Durchfluss: 918
     triggerEventsState:
       Durchfluss: 918
   internals:
   itimer:
   localtime:
     0          1508968900
   readings:
     0           WMZ:Durchfluss
     all         WMZ:Durchfluss
   realtime:
     0          00:01:40
   regexp:
     0:
     all:
   state:
     STATE:
   time:
     0          100
   timeCond:
     0          0
   timer:
     0          0
   timers:      0           0
   trigger:
   triggertime:
     1508968900:
       localtime  1508968900
       hash:
Attributes:


und ohne eckige Klammern

Internals:
   CFGFN
   DEF        (100 > 40 and [WMZ:Durchfluss:d] < 1) (set DummyZweig1 true) DOELSE (set DummyZweig1 false)
   NAME       ZWeig1
   NR         375
   NTFY_ORDER 50-ZWeig1
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2017-10-25 16:10:31   cmd             0
     2017-10-25 16:10:31   state           initialized
   condition:
     0          100 > 40 and ReadingValDoIf($hash,'WMZ','Durchfluss','','d') < 1
   devices:
     0           WMZ
     all         WMZ
   do:
     0:
       0          set DummyZweig1 true
     1:
       0          set DummyZweig1 false
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
     bm:
       DOIF_Notify:
         cnt        2
         dmx        0
         mAr
         mTS
         max        0
         tot        0
       DOIF_Set:
         cnt        2
         dmx        0
         mAr
         mTS
         max        0
         tot        0
   itimer:
   readings:
     0           WMZ:Durchfluss
     all         WMZ:Durchfluss
   regexp:
     all:
   state:
     STATE:
Attributes:



Otto123

Was liefert Dir {ReadingsNum("WMZ","Vorlauftemperatur","")} in der FHEM Kommandozeile zurück?
Alternativ noch {ReadingsVal("WMZ","Vorlauftemperatur","")}
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

Per

Zitat von: der-Lolo am 25 Oktober 2017, 16:09:56ich glaube jetzt geht DOIF von einem 100 sekunden Timer aus...
Du solltest auch [Device] durch 100 ersetzen, nicht Device. Also 100 > 40.

{'Heisswasser'} steht tatsächlich in der URL?

der-Lolo

Beides liefert keine antwort über das eingabefeld.
@Per: Danke, ich bemerkte es...
- Heisswasser steht da so drin, ist der selbst definierte EVENT Part welcher bei IFTTT ausgewertet wird.

Otto123

#39
Zitat von: der-Lolo am 25 Oktober 2017, 17:16:06
Beides liefert keine antwort über das eingabefeld.
Dann kann das DOIF nicht funktionieren  :'(
Der dummy WMZ existiert auf diesem Rechner noch so wie im list weiter vorne?   READINGS:
     2017-10-23 22:43:10   Durchfluss      846
     2017-10-23 22:43:10   Ruecklauftemperatur 20.5
     2017-10-23 22:43:10   Vorlauftemperatur 20.5


Das Gleiche mit Durchfluss funktioniert im Eingabefeld?
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

der-Lolo

Wenn ich statt WMZ meinen mF_WMZ benutze mit den Komandozeilen abfragen bekomme ich 20.9

Otto123

Naja dann teste Deinen CloneDummy mit dem DOIF ist ja am Ende egal
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

der-Lolo

Am ende ist es egal, ja - hauptsache es wird umgeschaltet...

der-Lolo

Ich hab jetzt nochmal auf mF_WMZ umgestellt - zumindest gibt es jetzt keine meldung mehr ( isnt numeric )
Ich hoffe es schaltet morgen, blödes Ding wenn man nur einmal am Tag testen kann...

Internals:
   DEF        ([14:00]) ({system ("curl -X POST https://maker.ifttt.com/trigger/{'Heisswasser'}/with/key/XXXXX >/dev/null 2>&1");; return 0})
DOELSEIF ([$SELF:cmd] eq "1" and [mF_WMZ:Vorlauftemperatur] > 40 and [mF_WMZ:Durchfluss] < 1)
({system ("curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX >/dev/null 2>&1");; return 0})
DOELSEIF ([$SELF:cmd] eq "2" and [20:00])
({system ("curl -X POST https://maker.ifttt.com/trigger/{'Nachtabsenkung'}/with/key/XXXXX >/dev/null 2>&1");; return 0})
DOELSEIF ([$SELF:cmd] eq "3" and [09:30])
({system ("curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX >/dev/null 2>&1");; return 0})
   NAME       WPmodeSwitch
   NR         112
   NTFY_ORDER 50-WPmodeSwitch
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2017-10-25 17:55:56   Device          mF_WMZ
     2017-10-25 17:24:43   cmd             2
     2017-10-25 17:24:43   cmd_event       set_cmd_2
     2017-10-25 17:24:43   cmd_nr          2
     2017-10-25 17:24:43   e_WPmodeSwitch_cmd 2
     2017-10-25 17:55:56   e_mF_WMZ_Durchfluss 876
     2017-10-25 17:55:56   e_mF_WMZ_Vorlauftemperatur 20.8
     2017-10-25 17:24:43   state           cmd_2
     2017-10-25 17:24:36   timer_01_c01    26.10.2017 14:00:00
     2017-10-25 17:24:36   timer_02_c03    25.10.2017 20:00:00
     2017-10-25 17:24:36   timer_03_c04    26.10.2017 09:30:00
   condition:
     0          DOIF_time_once($hash,0,$wday)
     1          ReadingValDoIf($hash,'WPmodeSwitch','cmd') eq "1" and ReadingValDoIf($hash,'mF_WMZ','Vorlauftemperatur') > 40 and ReadingValDoIf($hash,'mF_WMZ','Durchfluss') < 1
     2          ReadingValDoIf($hash,'WPmodeSwitch','cmd') eq "2" and DOIF_time_once($hash,1,$wday)
     3          ReadingValDoIf($hash,'WPmodeSwitch','cmd') eq "3" and DOIF_time_once($hash,2,$wday)
   days:
   devices:
     1           WPmodeSwitch mF_WMZ
     2           WPmodeSwitch
     3           WPmodeSwitch
     all         WPmodeSwitch mF_WMZ
   do:
     0:
       0          {system ("curl -X POST https://maker.ifttt.com/trigger/{'Heisswasser'}/with/key/XXXXX >/dev/null 2>&1");; return 0}
     1:
       0          {system ("curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX >/dev/null 2>&1");; return 0}
     2:
       0          {system ("curl -X POST https://maker.ifttt.com/trigger/{'Nachtabsenkung'}/with/key/XXXXX >/dev/null 2>&1");; return 0}
     3:
       0          {system ("curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX >/dev/null 2>&1");; return 0}
     4:
   helper:
     event      active,Durchfluss: 876
     globalinit 1
     last_timer 3
     sleeptimer -1
     triggerDev mF_WMZ
     bm:
       DOIF_Notify:
         cnt        1396
         dmx        0
         mTS        25.10. 17:47:25
         max        4
         tot        67
         mAr:
           HASH(0x3a091a0)
           HASH(0x36bf558)
       DOIF_Set:
         cnt        13
         dmx        0
         mTS        25.10. 17:24:43
         max        765
         tot        765
         mAr:
           HASH(0x3a091a0)
           WPmodeSwitch
           cmd_2
     triggerEvents:
       active
       Durchfluss: 876
     triggerEventsState:
       state: active
       Durchfluss: 876
   internals:
   itimer:
   localtime:
     0          1509019200
     1          1508954400
     2          1509003000
   readings:
     1           WPmodeSwitch:cmd mF_WMZ:Vorlauftemperatur mF_WMZ:Durchfluss
     2           WPmodeSwitch:cmd
     3           WPmodeSwitch:cmd
     all         WPmodeSwitch:cmd mF_WMZ:Vorlauftemperatur mF_WMZ:Durchfluss
   realtime:
     0          14:00:00
     1          20:00:00
     2          09:30:00
   regexp:
     0:
     1:
     2:
     3:
     all:
   state:
     STATE:
   time:
     0          14:00:00
     1          20:00:00
     2          09:30:00
   timeCond:
     0          0
     1          2
     2          3
   timer:
     0          0
     1          0
     2          0
   timers:
     0           0
     2           1
     3           2
   trigger:
   triggertime:
     1508954400:
       localtime  1508954400
       hash:
     1509003000:
       localtime  1509003000
       hash:
     1509019200:
       localtime  1509019200
       hash:
Attributes:
   room       90-Testumgebung,96-Wärmepumpe

Otto123

Du kannst doch einfach die Schwellwerte (40 und 1) temporär so ändern das Du > oder < bist.
Der aktualisiert doch bestimmt immer mal?
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