FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: der-Lolo am 22 Oktober 2017, 13:47:25

Titel: DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 22 Oktober 2017, 13:47:25
Hallo Zusammen,
meine Wärmepumpe lässt sich über IFTTT ansteuern, da es wohl nicht so einfach ist einen Trigger aus FHEM heraus an IFTTT weiter zu geben habe ich mich für einen CURL aufruf entschieden.
Über den aufruf
Zitat{system ("curl -X POST https://maker.ifttt.com/trigger/{'Heisswasser'}/with/key/XXXXX")}
kann ich die Szene "Heisswasser" in IFTTT aufrufen bzw. triggern.
Abgesetzt über das FHEM eingabefeld funktioniert der aufruf problemlos...

Nun habe ich versucht das in ein DOIF zu packen:
Um 13:15 soll die Warmwasserbereitung aktiviert werden.
Wenn dieser cmd aktiv ist und der Wärmemengenzähler eine Vorlauftemperatur > 40 hat und der Wärmemengenzähler einen Durchfluss < 1 hat - ist die Warmwasserbereitung abgeschlossen. Es soll also wieder umgeschaltet werden auf "Heizen"

Abends ab 20:00 soll dann die Szene "Nachtabsenkung" gesetzt werden. Morgens um 09:30 dann wieder auf Standard "Heizen"

Hier mal ein list meines DOIFs
Internals:
   CFGFN
   DEF        ([13:15]) ({system ("curl -X POST https://maker.ifttt.com/trigger/{'Heisswasser'}/with/key/XXXXX")})
DOELSEIF ([$SELF:cmd] eq "1" and [WMZ:Vorlauftemperatur:d] > 40 and [WMZ:Durchfluss:d] < 1)
({system ("curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX")})
DOELSEIF ([$SELF:cmd] eq "2" and [20:00])
({system ("curl -X POST https://maker.ifttt.com/trigger/{'Nachtabsenkung'}/with/key/XXXXX")})
DOELSEIF ([$SELF:cmd] eq "3" and [09:30])
({system ("curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX")})
   NAME       WPmodeSwitch
   NR         776
   NTFY_ORDER 50-WPmodeSwitch
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-10-22 13:21:24   Device          WMZ
     2017-10-22 13:19:57   cmd             1
     2017-10-22 13:19:57   cmd_event       set_cmd_1
     2017-10-22 13:19:57   cmd_nr          1
     2017-10-22 13:19:57   e_WPmodeSwitch_cmd 1
     2017-10-22 13:19:57   error           {system ("curl -X POST https://maker.ifttt.com/trigger/{'Heisswasser'}/with/key/XXXXX")}: -1
     2017-10-22 13:19:57   state           cmd_1
     2017-10-22 13:19:41   timer_01_c01    23.10.2017 13:15:00
     2017-10-22 13:19:41   timer_02_c03    22.10.2017 20:00:00
     2017-10-22 13:19:41   timer_03_c04    23.10.2017 09:30:00
     2017-10-22 13:21:24   warning         condition c02: Argument "" isn't numeric in numeric gt (>)

   condition:
     0          DOIF_time_once($hash,0,$wday)
     1          ReadingValDoIf($hash,'WPmodeSwitch','cmd') eq "1" and ReadingValDoIf($hash,'WMZ','Vorlauftemperatur','','d') > 40 and ReadingValDoIf($hash,'WMZ','Durchfluss','','d') < 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 WMZ
     2           WPmodeSwitch
     3           WPmodeSwitch
     all         WPmodeSwitch WMZ
   do:
     0:
       0          {system ("curl -X POST https://maker.ifttt.com/trigger/{'Heisswasser'}/with/key/XXXXX")}
     1:
       0          {system ("curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX")}
     2:
       0          {system ("curl -X POST https://maker.ifttt.com/trigger/{'Nachtabsenkung'}/with/key/XXXXX")}
     3:
       0          {system ("curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX")}
     4:
   helper:
     event      Ruecklauftemperatur: 30.3
     globalinit 1
     last_timer 3
     sleeptimer -1
     triggerDev WMZ
     bm:
       DOIF_Notify:
         cnt        83
         dmx        0
         mTS        22.10. 13:19:57
         max        2
         tot        17
         mAr:
           HASH(0x25789798)
           HASH(0x25789798)
       DOIF_Set:
         cnt        7
         dmx        0
         mTS        22.10. 13:19:58
         max        694
         tot        694
         mAr:
           HASH(0x25789798)
           WPmodeSwitch
           cmd_1
     triggerEvents:
       Ruecklauftemperatur: 30.3
     triggerEventsState:
       Ruecklauftemperatur: 30.3
   internals:
   itimer:
   localtime:
     0          1508757300
     1          1508695200
     2          1508743800
   readings:
     1           WPmodeSwitch:cmd WMZ:Vorlauftemperatur WMZ:Durchfluss
     2           WPmodeSwitch:cmd
     3           WPmodeSwitch:cmd
     all         WPmodeSwitch:cmd WMZ:Vorlauftemperatur WMZ:Durchfluss
   realtime:
     0          13:15:00
     1          20:00:00
     2          09:30:00
   regexp:
     0:
     1:
     2:
     3:
     all:
   state:
     STATE:
   time:
     0          13:15: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:
     1508695200:
       localtime  1508695200
       hash:
     1508743800:
       localtime  1508743800
       hash:
     1508757300:
       localtime  1508757300
       hash:
Attributes:
   room       90-Testumgebung,96-Wärmepumpe


Toll wäre natürlich die Luxus lösung in der ich innerhalb des CURL aufrufes nur noch den Szenen namen setze, hier komme ich aber nicht zurecht.. Ich bekomme ja noch nichtmal dieses DOIF fehlerfrei ans laufen, kann vielleicht jemand helfen?






Titel: Antw:DOIF zum schalten der Wärmepumpe
Beitrag von: Otto123 am 22 Oktober 2017, 15:08:09
Hi,

ich glaube Dein Hauptproblem ist der systemaufruf, da meldet das DOIF ja einen error.
Ich würde den in ein Script packen, ich komme damit dann meist besser klar als mit unterschiedlichen " und ' und dann noch verschachtelt.
Vielleicht hilft dir der Artikel (https://heinz-otto.blogspot.de/2017/01/ein-remote-taster-in-fhem-mit.html) als Idee.
Durch das Script kannst Du dann auch Deine Parameter Übergabe lösen.

Also so wäre mein Ansatz, vielleicht kann man das auch eleganter machen.

Gruß Otto
Titel: Antw:DOIF zum schalten der Wärmepumpe
Beitrag von: der-Lolo am 22 Oktober 2017, 19:54:47
Vielen Dank Otto, aber so richtig habe ich das in deinem Artikel noch nicht durchblickt ;-)

Ich glaube aber das problem erkannt zu haben... Durch den Curl aufruf wird eine rückgabe an FHEM gesendet - DOIF erwartet das aber ja nicht... Im Log findet sich folgendes:
ZitatCongratulations! You've fired the Heizen event2017.10.22 17:59:51 2: WPmodeSwitch: {system ("curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX")}: -1

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100    46  100    46    0     0     70      0 --:--:-- --:--:-- --:--:--    70
                                 Dload  Upload   Total   Spent    Left  Speed
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current


hier habe ich händisch den cmd_2 aktiviert weil die Zahlen die mir der WMZ gibt nicht richtig verarbeitet wurden...
Ich habe nun etwas angepasst - und hoffe das nun die Zahlen richtig verarbeitet werden.

DOELSEIF ([$SELF:cmd] eq "1" and [WMZ:"^Vorlauftemperatur:..*$"] > 40 and [WMZ:"^Durchfluss:..*$"] < 1) \

Vielleicht kann mir ja jemand sagen wie ich Curl dazu bringe mir keinen wert zurückzugeben.

Oder vielleicht sogar dessen rückgabe als quittierung bis IFTTT ansehen kann... Ob nämlich das Applet ausgeführt wurde wäre gut zu wissen ;-)
Titel: Antw:DOIF zum schalten der Wärmepumpe
Beitrag von: amenomade am 22 Oktober 2017, 20:11:01
curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX >/dev/null 2>&1

Ggf. die spezielle Buchstaben noch mit \ escapen
Titel: Antw:DOIF zum schalten der Wärmepumpe
Beitrag von: Otto123 am 22 Oktober 2017, 20:36:21
Gut dann schreib ich die Idee mal in Stichworten auf:
Du erzeugst eine Datei /opt/fhem/test.sh
sudo nano /opt/fhem/test.sh
Inhalt
#!/bin/sh
curl -X POST https://maker.ifttt.com/trigger/{'Heizen'}/with/key/XXXXX

Auf system Ebene machst Du die Datei ausführbar
sudo chmod +x /opt/fhem/test.sh
Probierst es aus FHEM heraus aus, in der FHEM Kommandozeile eingeben - so wie es hier steht, ohne Klammern oder system oder sonstwas: "./test.sh"
Wenn es funktioniert änderst Du Deinen Aufruf entsprechend. Siehe auch https://fhem.de/commandref_DE.html#command

Im nächsten Schritt kannst Du deinen Befehl als Parameter übergeben und den curl Aufruf im Script damit bestücken.

Gruß Otto
Titel: Antw:DOIF zum schalten der Wärmepumpe
Beitrag von: der-Lolo am 22 Oktober 2017, 20:38:10
Ich hab das mal übernommen und zuerst im Eingabefeld getestet -
dort ist mir aufgefallen das eine -1 auftaucht...

Beim zweiten versuch über das DOIF auf cmd_3 schalten finde ich im Log

Zitat2017.10.22 20:19:33 2: WPmodeSwitch: {system ("curl -X POST https://maker.ifttt.com/trigger/{'Nachtabsenkung'}/with/key/XXXXX >/dev/null 2>&1")}: -1
Congratulations! You've fired the Nachtabsenkung event
2017.10.22 20:01:58 2: WPmodeSwitch: {system ("curl -X POST https://maker.ifttt.com/trigger/{'Nachtabsenkung'}/with/key/XXXXX")}: -1

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100    54  100    54    0     0     86      0 --:--:-- --:--:-- --:--:--    86
                                 Dload  Upload   Total   Spent    Left  Speed
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Congratulations! You've fired the Nachtabsenkung event

ein teil wird also schonmal ignoriert - aber leider nocht nicht alles...
das DOIF selbst meldet error
Zitaterror
{system ("curl -X POST https://maker.ifttt.com/trigger/{'Nachtabsenkung'}/with/key/XXXXX >/dev/null 2>&1")}: -1


Titel: Antw:DOIF zum schalten der Wärmepumpe
Beitrag von: amenomade am 22 Oktober 2017, 20:51:22
Pack mal "return 0" am Ende:
{system ("curl -X POST https://maker.ifttt.com/trigger/{'Nachtabsenkung'}/with/key/XXXXX >/dev/null 2>&1");; return 0}

(nur wenn es doch schaltet. Wenn nicht, musst Du, wie gesagt, einige Buchstaben escapen)
Titel: Antw:DOIF zum schalten der Wärmepumpe
Beitrag von: der-Lolo am 22 Oktober 2017, 21:01:14
Tschaka - amenomade jetzt läuft es durch, kein eintrag mehr im log von fhem, kein error mehr im DOIF!

Damit kann ich arbeiten
Titel: Antw:DOIF zum schalten der Wärmepumpe
Beitrag von: der-Lolo am 22 Oktober 2017, 21:13:25
Ich überleg mal ob ich das umbaue zu einem bash script, das wird vielleicht interessant wenn ich noch parameter übergeben möchte, habe aber noch keine applets auf der anderen seite die die verarbeiten könnten / würden...

Ich bin jetzt erstmal gespannt ob morgen mittag der Heisswasser modus funktioniert und ob sauber wieder zum heizen umgeschaltet wird, sobald der vorgang abgeschlossen ist... Ich werde es leider nicht direkt sehen - und auch die events nicht beobachten können...
Titel: Antw:[gelöst] DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 23 Oktober 2017, 18:56:50
so ganz passt das leider doch noch nicht - die umschaltung auf Heizbetrieb nach der Warmwasserbereitung heute funktionierte nicht...

Ich verstehe nur noch nicht wieso...

Es geht um diese Zeile

DOELSEIF ([$SELF:cmd] eq "1" and [WMZ:"^Vorlauftemperatur:..*$"] > 40 and [WMZ:"^Durchfluss:..*$"] < 1)

Warum wird denn hier nicht geschaltet?

Einen auszug aus dem Eventmonitor möchte ich euch noch zeigen...

Zitat
2017-10-23 18:55:00 cloneDummy mF_WMZ Vorlauftemperatur: 20.7
2017-10-23 18:55:00 ModbusAttr WMZ Vorlauftemperatur: 20.7
2017-10-23 18:55:00 cloneDummy mF_WMZ active
2017-10-23 18:55:00 cloneDummy mF_WMZ Durchfluss: 858
2017-10-23 18:55:00 ModbusAttr WMZ Durchfluss: 858

Hat jemand eine Idee?
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 23 Oktober 2017, 19:58:26
Hi,

ich hatte gestern schon nicht ganz verstanden warum Du diesen Ausdruck umgestellt hast:
DOELSEIF ([$SELF:cmd] eq "1" and [WMZ:Vorlauftemperatur:d] > 40 and [WMZ:Durchfluss:d] < 1)

Der erscheint mir eigentlich ganz logisch und sollte so funktionieren. Er wird jedesmal getriggert wenn sich das reading Vorlauftemperatur oder Durchfluss ändert. Das andeer Reading wirdf abgerfragt.

Jetzt hast Du umgestellt auf triggern von zwei Events, die sollen gleichzeitig kommen, das kann eigentlich nicht funktionieren.  :-X

Gruß Otto
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 23 Oktober 2017, 20:06:46
Naja, ich war mir bzgl. Regex kram nicht sicher und habe die Zeile im Eventmonitor markiert und die Create funktion DOIF bemüht. Daraus habe ich mir dann den notwendigen teil heraus kopiert.
Die Abfrage wie ich sie vorher drin hatte - hatte aber auch ihre probleme, bin bzgl. Log jetzt nicht mehr sicher aber ich glaube ins`t numeric oder so...
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 23 Oktober 2017, 20:24:41
Das war doch aber die Bedingung 2
Zitat2017-10-22 13:21:24   warning         condition c02: Argument "" isn't numeric in numeric gt (>)
Den Fehler hatte ich nicht verstanden  :-[
Ich denke aber der hat nichts mit der Bedingung 1 zu tun.
Gib mal ein list WMZ - da sieht man genau was Du nehmen musst.
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 23 Oktober 2017, 21:02:22
jetzt dämmert es mir - ähm, WMZ ist der wärmemengenzähler der per FHEM2FHEM gekoppelt ist.
Der cloneDummy der mir in dem System zur verfügung steht ist mF_WMZ

ZitatInternals:
   DEF        WMZ
   NAME       mF_WMZ
   NDEV       WMZ
   NR         75
   NTFY_ORDER 50-mF_WMZ
   STATE      active
   TYPE       cloneDummy
   READINGS:
     2017-10-23 20:58:07   Durchfluss      852
     2017-10-23 20:58:07   Ruecklauftemperatur 20.6
     2017-10-23 20:58:07   Vorlauftemperatur 20.6
     2017-10-23 20:58:07   aktWaermeleistung 0.0
     2017-10-23 20:58:07   gesamtWaermemenge 12.193
     2017-10-23 20:58:07   state           active
   helper:
     bm:
       cloneDummy_Notify:
         cnt        56121
         dmx        0
         mTS        23.10. 20:20:05
         max        31
         tot        107532
         mAr:
           HASH(0x31c21c8)
           HASH(0x15a79760)
Attributes:
   addStateEvent 1
   room       97-Helper

Ich sollte also sicher besser mF_WMZ nehmen und nicht WMZ, dessen events sind zwar im Eventmonitor zu sehen, stammen aber von einem zweit FHEM. (weil die Syno DS den Modbus USB-Stick nicht out of the box mag)
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 23 Oktober 2017, 21:36:18
so ist es :)

ich bin nicht so sicher wegen den cloneDummys - aber ich meine die braucht es nicht mehr. Ich mache es immer ohne!
Definiere mal aus Spass einfach noch den dummy WMZ und schau was passiert :)

Ansonsten passt die ursprüngliche Bedingung perfekt, das :d kannst Du sogar weglassen. Es steht ja nur die Zahl drin.

Gruß Otto
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 23 Oktober 2017, 22:47:33
Ok, morgen folgt also nochmal ein durchlauf mit der ursprünglichen Zeile...
einen dummy WMZ habe ich gerade erstellt...

ZitatInternals:
   CFGFN
   NAME       WMZ
   NR         224
   STATE      ???
   TYPE       dummy
   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
     2017-10-23 22:43:10   aktWaermeleistung 0.0
     2017-10-23 22:43:10   gesamtWaermemenge 12.193
   helper:
     bm:
       dummy_Define:
         cnt        1
         dmx        0
         mAr
         mTS
         max        0
         tot        0
       dummy_Set:
         cnt        9
         dmx        0
         mAr
         mTS
         max        0
         tot        0
Attributes:

im fhemWeb sieht man auch das ein bezug zu FHEM2FHEM und cloneDummy hergestellt wird.

Hm, ist cloneDUmmy wirklich überflüssig geworden? Die Info hatte ich noch nicht...

https://www.dropbox.com/s/0htz315bog0ncyc/Screenshot%202017-10-23%2022.46.03.png?dl=0 (https://www.dropbox.com/s/0htz315bog0ncyc/Screenshot%202017-10-23%2022.46.03.png?dl=0)
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 23 Oktober 2017, 23:07:36
seit einigen Wochen neu attr addStateEvent
-> https://fhem.de/commandref_DE.html#FHEM2FHEM

Ich will nicht sagen, dass cloneDummy überflüssig ist, aber ich verwende cloneDummy nicht. Zumal man da ja den Namen anders wählen muss.
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 24 Oktober 2017, 18:10:40
Ja, den Namen anders wählen machte aber aus meiner sicht sogar Sinn - mF steht für measureFhem ;-)
Heute hat es wieder nicht funktioniert - ich habe zwar gestern abend die änderungen vorgenommen aber bewusst nicht gespeichert.
Heute morgen um kurz vor 9 gab es dann wohl einen Stromausfall... Ich hoffe morgen klappt es ;-)
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 14:13:27
Es klappt leider doch noch nicht - im Log finden sich bereits hunderte Einträge.
Zitat2017.10.25 14:07:47 3: eval: WPmodeSwitch: warning in condition c02
2017.10.25 14:07:47 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 40205) line 1.
2017.10.25 14:07:47 3: eval: WPmodeSwitch: warning in condition c02
2017.10.25 14:07:47 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 40204) line 1.
2017.10.25 14:07:47 3: eval: WPmodeSwitch: warning in condition c02
2017.10.25 14:07:47 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 40203) line 1.
2017.10.25 14:07:47 3: eval: WPmodeSwitch: warning in condition c02
2017.10.25 14:07:47 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 40202) line 1.
2017.10.25 14:07:47 3: eval: WPmodeSwitch: warning in condition c02
2017.10.25 14:07:47 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 40201) line 1.
2017.10.25 14:07:16 3: eval: WPmodeSwitch: warning in condition c02
2017.10.25 14:07:16 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 40192) line 1.
2017.10.25 14:07:15 3: eval: WPmodeSwitch: warning in condition c02
2017.10.25 14:07:15 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 40191) line 1.
2017.10.25 14:07:15 3: eval: WPmodeSwitch: warning in condition c02

DOELSEIF ([$SELF:cmd] eq "1" and [WMZ:Vorlauftemperatur:] > 40 and [WMZ:Durchfluss:] < 1)

so schaut die Zeile zur Zeit aus - auf ohne : klappt es nicht...
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 15:06:46
Wie schon gesagt, bei c02 geht es aus meiner Sicht um diese Zeile:
DOELSEIF ([$SELF:cmd] eq "2" and [20:00])
({system ("curl -X POST https://maker.ifttt.com/trigger/{'Nachtabsenkung'}/with/key/XXXXX")})

Unterdrücke mal noch die Ausgabe von curl mit -s

Aber es kann auch sein ich verstehe das falsch, vielleicht teilst Du dein DOIF und testest die Zweige separat.

Gruß Otto
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 15:11:57
Nein, es geht definitiv um die Zeile in der Vorlauf und Druchfluss geprüft werden, erst wenn cmd_1 aktiv ist kommen die Log einträge. Die simplen Timer schalten sauber...
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: amenomade am 25 Oktober 2017, 15:16:57
Kann man ein list vom DOIF sehen, wie es jetzt aussieht?
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 15:21:53
aber natürlich...

habe nur den Key aus den aufrufen entfernt...

ZitatInternals:
   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 [WMZ:Vorlauftemperatur:] > 40 and [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      deactivated
   TYPE       DOIF
   READINGS:
     2017-10-25 14:29:34   state           deactivated
   condition:
   do:
     0:
   helper:
     bm:
       DOIF_Notify:
         cnt        2081
         dmx        0
         mAr
         mTS
         max        0
         tot        0
       DOIF_Set:
         cnt        10
         dmx        0
         mAr
         mTS
         max        0
         tot        0
   state:
     STATE:
Attributes:
   disable    1
   room       90-Testumgebung,96-Wärmepumpe

aktuell deaktiviert weil vom WMZ alle 30sekunden werte kommen und die Fehlermeldungen das Log füllen.
auch noch einen Teil mit werten aus dem Eventmonitor...

Zitat
2017-10-25 15:20:49 cloneDummy mF_SDM Power_L1__W: 22
2017-10-25 15:20:49 ModbusSDM630M SDM630 Power_L1__W: 22
2017-10-25 15:20:49 cloneDummy mF_SDM Power_L2__W: 1251
2017-10-25 15:20:49 ModbusSDM630M SDM630 Power_L2__W: 1251
2017-10-25 15:20:49 cloneDummy mF_SDM Power_L3__W: 0
2017-10-25 15:20:49 ModbusSDM630M SDM630 Power_L3__W: 0
2017-10-25 15:20:49 cloneDummy mF_WMZ active
2017-10-25 15:20:49 cloneDummy mF_WMZ Durchfluss: 1248
2017-10-25 15:20:49 ModbusAttr WMZ Durchfluss: 1248
2017-10-25 15:20:49 cloneDummy mF_WMZ active
2017-10-25 15:20:49 cloneDummy mF_WMZ Ruecklauftemperatur: 44.8
2017-10-25 15:20:49 ModbusAttr WMZ Ruecklauftemperatur: 44.8
2017-10-25 15:20:49 cloneDummy mF_WMZ active
2017-10-25 15:20:49 cloneDummy mF_WMZ aktWaermeleistung: 4.6
2017-10-25 15:20:49 ModbusAttr WMZ aktWaermeleistung: 4.6
2017-10-25 15:20:49 cloneDummy mF_WMZ active
2017-10-25 15:20:49 cloneDummy mF_WMZ gesamtWaermemenge: 12.225
2017-10-25 15:20:49 ModbusAttr WMZ gesamtWaermemenge: 12.225
2017-10-25 15:20:49 cloneDummy mF_WMZ active
2017-10-25 15:20:49 cloneDummy mF_WMZ Vorlauftemperatur: 48.0
2017-10-25 15:20:49 ModbusAttr WMZ Vorlauftemperatur: 48.0
2017-10-25 15:21:18 cloneDummy mF_SDM Power_L1__W: 22
2017-10-25 15:21:18 ModbusSDM630M SDM630 Power_L1__W: 22
2017-10-25 15:21:18 cloneDummy mF_SDM Power_L2__W: 1253
2017-10-25 15:21:18 ModbusSDM630M SDM630 Power_L2__W: 1253
2017-10-25 15:21:18 cloneDummy mF_SDM Power_L3__W: 0
2017-10-25 15:21:18 ModbusSDM630M SDM630 Power_L3__W: 0
2017-10-25 15:21:18 cloneDummy mF_WMZ active
2017-10-25 15:21:18 cloneDummy mF_WMZ Vorlauftemperatur: 48.1
2017-10-25 15:21:18 ModbusAttr WMZ Vorlauftemperatur: 48.1
2017-10-25 15:21:18 cloneDummy mF_WMZ active
2017-10-25 15:21:18 cloneDummy mF_WMZ gesamtWaermemenge: 12.225
2017-10-25 15:21:18 ModbusAttr WMZ gesamtWaermemenge: 12.225
2017-10-25 15:21:18 cloneDummy mF_WMZ active
2017-10-25 15:21:18 cloneDummy mF_WMZ Ruecklauftemperatur: 44.9
2017-10-25 15:21:18 ModbusAttr WMZ Ruecklauftemperatur: 44.9
2017-10-25 15:21:18 cloneDummy mF_WMZ active
2017-10-25 15:21:18 cloneDummy mF_WMZ aktWaermeleistung: 4.5
2017-10-25 15:21:18 ModbusAttr WMZ aktWaermeleistung: 4.5
2017-10-25 15:21:18 cloneDummy mF_WMZ active
2017-10-25 15:21:18 cloneDummy mF_WMZ Durchfluss: 1242
2017-10-25 15:21:18 ModbusAttr WMZ Durchfluss: 1242
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: amenomade am 25 Oktober 2017, 15:24:52
Leider im deaktivierten Modus sieht man nicht alles.

Aber
Zitat[WMZ:Vorlauftemperatur:] > 40 and [WMZ:Durchfluss:] < 1)

Mach mal entweder die Doppelpunkte am Ende weg, oder d am Ende
[WMZ:Vorlauftemperatur] > 40 and [WMZ:Durchfluss] < 1)
oder
[WMZ:Vorlauftemperatur:d] > 40 and [WMZ:Durchfluss:d] < 1)

Und nutze lieber code-tags statt quote-tags. Vorteil von code-tags: die werden scrollbar, und nutzen nicht die ganze Seite
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: amenomade am 25 Oktober 2017, 15:27:02
Wenn du aber :d hast, musst Du verstehen, was der Einfluss davon ist.

Lieber ohne :d am Ende dann erstmal.
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 15:31:21
Ohne doppelpunkt hatte ich schon probiert, auch ein :d hatte ich schon...
Leider beides erfolglos.

nochmal ein list wenn es aktiv ist..

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 [WMZ:Vorlauftemperatur:d] > 40 and [WMZ:Durchfluss:d] < 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_1
   TYPE       DOIF
   READINGS:
     2017-10-25 15:28:19   Device          WMZ
     2017-10-25 15:27:14   cmd             1
     2017-10-25 15:27:14   cmd_event       set_cmd_1
     2017-10-25 15:27:14   cmd_nr          1
     2017-10-25 15:27:14   e_WPmodeSwitch_cmd 1
     2017-10-25 15:27:14   state           cmd_1
     2017-10-25 15:27:05   timer_01_c01    26.10.2017 14:00:00
     2017-10-25 15:27:05   timer_02_c03    25.10.2017 20:00:00
     2017-10-25 15:27:05   timer_03_c04    26.10.2017 09:30:00
     2017-10-25 15:28:19   warning         condition c02: Argument "" isn't numeric in numeric gt (>)

   condition:
     0          DOIF_time_once($hash,0,$wday)
     1          ReadingValDoIf($hash,'WPmodeSwitch','cmd') eq "1" and ReadingValDoIf($hash,'WMZ','Vorlauftemperatur','','d') > 40 and ReadingValDoIf($hash,'WMZ','Durchfluss','','d') < 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 WMZ
     2           WPmodeSwitch
     3           WPmodeSwitch
     all         WPmodeSwitch 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      Vorlauftemperatur: 49.4
     globalinit 1
     last_timer 3
     sleeptimer -1
     triggerDev WMZ
     bm:
       DOIF_Notify:
         cnt        51
         dmx        0
         mTS        25.10. 15:27:14
         max        2
         tot        17
         mAr:
           HASH(0x3a091a0)
           HASH(0x3a091a0)
       DOIF_Set:
         cnt        12
         dmx        0
         mTS        25.10. 15:27:14
         max        806
         tot        806
         mAr:
           HASH(0x3a091a0)
           WPmodeSwitch
           cmd_1
     triggerEvents:
       Vorlauftemperatur: 49.4
     triggerEventsState:
       Vorlauftemperatur: 49.4
   internals:
   itimer:
   localtime:
     0          1509019200
     1          1508954400
     2          1509003000
   readings:
     1           WPmodeSwitch:cmd WMZ:Vorlauftemperatur WMZ:Durchfluss
     2           WPmodeSwitch:cmd
     3           WPmodeSwitch:cmd
     all         WPmodeSwitch:cmd WMZ:Vorlauftemperatur 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
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 15:32:42
Am ehesten sieht aber der Durchfluss komisch aus
     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


Sieht aus wie Leerzeichen drin. Der Versuch mit :d wäre schon sinnvoll.

nach wie vor verstehe ich nicht den Hinweis auf c02 wenn dann offenbar c01 falsch ist ???
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 15:33:53
Dann teile das DOIF und teste die Zweige einzeln.
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 15:43:34
Hm, aufteilen?

Ich glaube mittlerweile ich baue eh um auf die .sh variante - die Readingauswertung würde aber gleich bleiben.
Ich werde das komplette DOIF aber vielleicht in das FHEM packen welches auch die Daten aus dem Modbus holt.
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 15:47:12
define ZWeig1 DOIF ([WMZ:Vorlauftemperatur] > 40 and [WMZ:Durchfluss] < 1) (set DummyZweig1 true) DOELSE (set DummyZweig1 false)
Ich sehe gerade: Geh mal im DOIF in den DEF Editor und beseitige alle unnötigen Leerzeichen und Zeilenumbrüche...

Ich denke nach wie vor das sieht eigentlich gut aus :   condition:
     0          DOIF_time_once($hash,0,$wday)
     1          ReadingValDoIf($hash,'WPmodeSwitch','cmd') eq "1" and ReadingValDoIf($hash,'WMZ','Vorlauftemperatur','','d') > 40 and ReadingValDoIf($hash,'WMZ','Durchfluss','','d') < 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)


Ich die Zählweise in der Fehlermeldung anders c01=0 c02=1 usw?
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 15:50:24
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:


Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 15:55:04
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:
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 15:58:52
Ok die Zählweise ist anders - das hält auch fit!!!

mit :d das Gleiche?
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 16:03:17
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:
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 16:06:10
Was passiert wenn Du [WMZ:Vorlauftemperatur:d] durch 100 ersetzt? also 100 > 40

Ich verstehe es nicht  :'(
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 16:09:56
*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:


Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 16:18:10
Was liefert Dir {ReadingsNum("WMZ","Vorlauftemperatur","")} in der FHEM Kommandozeile zurück?
Alternativ noch {ReadingsVal("WMZ","Vorlauftemperatur","")}
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Per am 25 Oktober 2017, 16:42:33
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?
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 17:16:06
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.
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 17:21:14
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?
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 17:25:54
Wenn ich statt WMZ meinen mF_WMZ benutze mit den Komandozeilen abfragen bekomme ich 20.9
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 17:28:32
Naja dann teste Deinen CloneDummy mit dem DOIF ist ja am Ende egal
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 17:29:52
Am ende ist es egal, ja - hauptsache es wird umgeschaltet...
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: der-Lolo am 25 Oktober 2017, 18:02:13
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
Titel: Antw:DOIF zum schalten der Wärmepumpe ( webhook an IFTTT )
Beitrag von: Otto123 am 25 Oktober 2017, 18:21:21
Du kannst doch einfach die Schwellwerte (40 und 1) temporär so ändern das Du > oder < bist.
Der aktualisiert doch bestimmt immer mal?