Bestimmter CMD Zweig zieht nicht (jaja, schon wieder eine Waschmaschine)

Begonnen von Jorge3711, 09 April 2017, 23:13:11

Vorheriges Thema - Nächstes Thema

Jorge3711

Hallo zusammen,

ich habe mir ein DOIF gebaut, um die WaMa zu überwachen, bzw. bei Abschluss eine Telegram Nachricht zu versenden. Dazu wird ein HM-ES-PMSw1-Pl verwendet, an dem nur die WaMa hängt. Die Zustände (Wäsche läuft, Wäsche fertig) werden zuverlässig erkannt/getroffen. Im nächsten Bedingungszweig wird dann, besser, soll dann auf den CMD Status des DOIF reagiert werden und das tut nicht (in einem anderen DOIF habe ich ein ähnliches Konstrukt erfolgreich am laufen, allerdings wird da auf ein CMD eines anderen DOIF geprüft, nicht auf ein CMD desselben DOIF). Der letzte Bedingungszweig funktioniert dann wieder (wenn die WaMa ausgeschaltet wird, schaltet der Zwischenstecker sie anschließen komplett vom Netz getrennt).

Hier ein List des DOIF:


Internals:
   DEF        ([energie_strom_waschmaschine_Pwr:power] > "2.6")
DOELSEIF
   ([energie_strom_waschmaschine_Pwr:power] < "2.6" and [energie_strom_waschmaschine_Pwr:power] > "1.0")
DOELSEIF
   ([msg_waschmaschine:cmd] eq "2" )
   (set TelegramBot message @EBH "Hallo EBH, die Waschmaschine ist fertig!")
DOELSEIF
   ([energie_strom_waschmaschine_SenPwr] < "1.0")
   (set energie_strom_waschmaschine_Sw off)
   NAME       msg_waschmaschine
   NR         176
   NTFY_ORDER 50-msg_waesche
   STATE      Maschine aus
   TYPE       DOIF
   Readings:
     2017-04-09 22:55:58   Device          energie_strom_waschmaschine_SenPwr
     2017-04-09 22:03:01   cmd             4
     2017-04-09 22:03:01   cmd_event       energie_strom_waschmaschine_SenPwr
     2017-04-09 22:03:01   cmd_nr          4
     2017-04-09 22:03:01   e_energie_strom_waschmaschine_Pwr_power 0
     2017-04-09 22:55:58   e_energie_strom_waschmaschine_SenPwr_STATE 0
     2017-04-09 22:03:01   state           Maschine aus
   Condition:
     0          ReadingValDoIf($hash,'energie_strom_waschmaschine_Pwr','power') > "2.6"
     1          ReadingValDoIf($hash,'energie_strom_waschmaschine_Pwr','power') < "2.6" and ReadingValDoIf($hash,'energie_strom_waschmaschine_Pwr','power') > "1.0"
     2          ReadingValDoIf($hash,'msg_waschmaschine','cmd') eq "2"
     3          InternalDoIf($hash,'energie_strom_waschmaschine_SenPwr','STATE') < "1.0"
   Devices:
     0           energie_strom_waschmaschine_Pwr
     1           energie_strom_waschmaschine_Pwr
     2           msg_waschmaschine
     3           energie_strom_waschmaschine_SenPwr
     all         energie_strom_waschmaschine_Pwr msg_waschmaschine energie_strom_waschmaschine_SenPwr
   Do:
     0:
       0
     1:
       0
     2:
       0          set TelegramBot message @EBH "Hallo EBH, die Waschmaschine ist fertig!"
     3:
       0          set energie_strom_waschmaschine_Sw off
     4:
   Helper:
     event      0
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   energie_strom_waschmaschine_SenPwr
     timerevent 0
     triggerDev energie_strom_waschmaschine_SenPwr
     timerevents:
       0
     timereventsState:
       state: 0
     triggerEvents:
       0
     triggerEventsState:
       state: 0
   Internals:
     3           energie_strom_waschmaschine_SenPwr:STATE
     all         energie_strom_waschmaschine_SenPwr:STATE
   Itimer:
   Readings:
     0           energie_strom_waschmaschine_Pwr:power
     1           energie_strom_waschmaschine_Pwr:power
     2           msg_waschmaschine:cmd
     all         energie_strom_waschmaschine_Pwr:power msg_waschmaschine:cmd
   Regexp:
     0:
     1:
     2:
     3:
     All:
   State:
   Trigger:
Attributes:
   alias      Waschmaschine
   cmdState   Wäsche läuft|Wäsche fertig|Benachrichtigung verschickt|Maschine aus
   group      Benachrichtigungen
   icon       scene_washing_machine
   room       Zentrale


Anhand der DB Einträge, sieht man auch, dass das DOIF gg. 21:15 in CMD 2 gewechselt ist (den Status habe ich im FHEMWEB gesehen):


+---------------------+---------------------------------+---------+--------+
| TIMESTAMP           | DEVICE                          | READING | VALUE  |
+---------------------+---------------------------------+---------+--------+
| 2017-04-09 21:00:08 | energie_strom_waschmaschine_Pwr | power   | 159.3  |
| 2017-04-09 21:00:24 | energie_strom_waschmaschine_Pwr | power   | 166.41 |
| 2017-04-09 21:00:40 | energie_strom_waschmaschine_Pwr | power   | 2.93   |
| 2017-04-09 21:00:56 | energie_strom_waschmaschine_Pwr | power   | 2.96   |
| 2017-04-09 21:01:12 | energie_strom_waschmaschine_Pwr | power   | 154.95 |
| 2017-04-09 21:01:28 | energie_strom_waschmaschine_Pwr | power   | 151.99 |
| 2017-04-09 21:01:44 | energie_strom_waschmaschine_Pwr | power   | 168.17 |
| 2017-04-09 21:01:55 | energie_strom_waschmaschine_Pwr | power   | 2.91   |
| 2017-04-09 21:02:00 | energie_strom_waschmaschine_Pwr | power   | 2.88   |
| 2017-04-09 21:02:32 | energie_strom_waschmaschine_Pwr | power   | 153.22 |
| 2017-04-09 21:02:48 | energie_strom_waschmaschine_Pwr | power   | 167.51 |
| 2017-04-09 21:03:04 | energie_strom_waschmaschine_Pwr | power   | 185.41 |
| 2017-04-09 21:03:20 | energie_strom_waschmaschine_Pwr | power   | 218.62 |
| 2017-04-09 21:03:36 | energie_strom_waschmaschine_Pwr | power   | 26.39  |
| 2017-04-09 21:03:52 | energie_strom_waschmaschine_Pwr | power   | 140.22 |
| 2017-04-09 21:04:01 | energie_strom_waschmaschine_Pwr | power   | 55.13  |
| 2017-04-09 21:04:08 | energie_strom_waschmaschine_Pwr | power   | 160.52 |
| 2017-04-09 21:04:24 | energie_strom_waschmaschine_Pwr | power   | 128.25 |
| 2017-04-09 21:04:40 | energie_strom_waschmaschine_Pwr | power   | 19     |
| 2017-04-09 21:04:56 | energie_strom_waschmaschine_Pwr | power   | 59.28  |
| 2017-04-09 21:05:12 | energie_strom_waschmaschine_Pwr | power   | 67.12  |
| 2017-04-09 21:05:28 | energie_strom_waschmaschine_Pwr | power   | 81.84  |
| 2017-04-09 21:05:44 | energie_strom_waschmaschine_Pwr | power   | 149.7  |
| 2017-04-09 21:06:00 | energie_strom_waschmaschine_Pwr | power   | 118.75 |
| 2017-04-09 21:06:16 | energie_strom_waschmaschine_Pwr | power   | 117.67 |
| 2017-04-09 21:06:32 | energie_strom_waschmaschine_Pwr | power   | 60.87  |
| 2017-04-09 21:06:48 | energie_strom_waschmaschine_Pwr | power   | 19.97  |
| 2017-04-09 21:06:58 | energie_strom_waschmaschine_Pwr | power   | 19.92  |
| 2017-04-09 21:07:09 | energie_strom_waschmaschine_Pwr | power   | 32.28  |
| 2017-04-09 21:07:25 | energie_strom_waschmaschine_Pwr | power   | 56.05  |
| 2017-04-09 21:07:41 | energie_strom_waschmaschine_Pwr | power   | 84.56  |
| 2017-04-09 21:07:59 | energie_strom_waschmaschine_Pwr | power   | 93.68  |
| 2017-04-09 21:08:13 | energie_strom_waschmaschine_Pwr | power   | 112.8  |
| 2017-04-09 21:08:29 | energie_strom_waschmaschine_Pwr | power   | 119.26 |
| 2017-04-09 21:08:45 | energie_strom_waschmaschine_Pwr | power   | 231.87 |
| 2017-04-09 21:09:02 | energie_strom_waschmaschine_Pwr | power   | 335.27 |
| 2017-04-09 21:09:18 | energie_strom_waschmaschine_Pwr | power   | 20.45  |
| 2017-04-09 21:09:39 | energie_strom_waschmaschine_Pwr | power   | 20.16  |
| 2017-04-09 21:10:11 | energie_strom_waschmaschine_Pwr | power   | 19.54  |
| 2017-04-09 21:10:27 | energie_strom_waschmaschine_Pwr | power   | 58.09  |
| 2017-04-09 21:10:43 | energie_strom_waschmaschine_Pwr | power   | 26.7   |
| 2017-04-09 21:10:59 | energie_strom_waschmaschine_Pwr | power   | 52.2   |
| 2017-04-09 21:11:15 | energie_strom_waschmaschine_Pwr | power   | 108.93 |
| 2017-04-09 21:11:32 | energie_strom_waschmaschine_Pwr | power   | 85.54  |
| 2017-04-09 21:11:48 | energie_strom_waschmaschine_Pwr | power   | 230.59 |
| 2017-04-09 21:12:04 | energie_strom_waschmaschine_Pwr | power   | 323.05 |
| 2017-04-09 21:12:07 | energie_strom_waschmaschine_Pwr | power   | 346.13 |
| 2017-04-09 21:12:20 | energie_strom_waschmaschine_Pwr | power   | 344.92 |
| 2017-04-09 21:12:36 | energie_strom_waschmaschine_Pwr | power   | 395.35 |
| 2017-04-09 21:12:52 | energie_strom_waschmaschine_Pwr | power   | 20.53  |
| 2017-04-09 21:13:47 | energie_strom_waschmaschine_Pwr | power   | 71.97  |
| 2017-04-09 21:14:03 | energie_strom_waschmaschine_Pwr | power   | 3.04   |
| 2017-04-09 21:14:19 | energie_strom_waschmaschine_Pwr | power   | 2.96   |
| 2017-04-09 21:14:35 | energie_strom_waschmaschine_Pwr | power   | 2.95   |
| 2017-04-09 21:14:51 | energie_strom_waschmaschine_Pwr | power   | 2.36   |
| 2017-04-09 21:15:07 | energie_strom_waschmaschine_Pwr | power   | 2.22   |
| 2017-04-09 21:17:22 | energie_strom_waschmaschine_Pwr | power   | 2.24   |
| 2017-04-09 21:20:10 | energie_strom_waschmaschine_Pwr | power   | 1.84   |
| 2017-04-09 21:25:03 | energie_strom_waschmaschine_Pwr | power   | 1.85   |
| 2017-04-09 21:27:08 | energie_strom_waschmaschine_Pwr | power   | 1.84   |
| 2017-04-09 21:32:42 | energie_strom_waschmaschine_Pwr | power   | 1.83   |
| 2017-04-09 21:37:19 | energie_strom_waschmaschine_Pwr | power   | 1.86   |
| 2017-04-09 21:40:20 | energie_strom_waschmaschine_Pwr | power   | 1.83   |
| 2017-04-09 21:43:06 | energie_strom_waschmaschine_Pwr | power   | 1.82   |
| 2017-04-09 21:47:55 | energie_strom_waschmaschine_Pwr | power   | 1.84   |
| 2017-04-09 21:49:58 | energie_strom_waschmaschine_Pwr | power   | 1.82   |
| 2017-04-09 21:52:51 | energie_strom_waschmaschine_Pwr | power   | 1.84   |
+---------------------+---------------------------------+---------+--------+


Hat mir jemand einen Tipp, warum das so ist?

Viele Grüße
Carsten

suppenesser

Pack doch die "geplanten Aktionen" in den ersten, funktionierenden DOIF Zweig mit ein!

Wenn fertig, dann ausschalten!

Gesendet von meinem HUAWEI GRA-L09 mit Tapatalk

Raspberry PI B+ | HM-LAN-CFG | HM-LC-Sw1PBU-FM | HM-TC-WM-W-EU | DECT 200 | DHT22 | 1 Wire Temp.Sensoren

Brockmann

Könnte hieran liegen:
Zitat von: Commandref
Standardmäßig unterbindet das DOIF-Modul Selbsttriggerung. D. h. das Modul reagiert nicht auf Events, die es selbst direkt oder indirekt auslöst. Dadurch werden Endlosschleifen verhindert. Wenn das Attribut selftrigger wait gesetzt ist, kann das DOIF-Modul auf selbst ausgelöste Events reagieren. Dazu müssen die entsprchenden Kommandos mit wait verzögert werden. Bei der Angabe selftrigger all reagiert das Modul grundsätzlich alle selbst ausgelösten Trigger.

Zu beachten ist, dass der Zustand des Moduls erst nach der Ausführung des Befehls gesetzt wird, dadurch wird die Zustandsverwaltung (ohne do always) ausgehebelt. Die Auswertung des eigenen Zustands z. B. über [$SELF:cmd] funktioniert dagegen korrekt, weil dieser immer bei der eigenen Triggerung bereits gesetzt ist. Bei der Verwendung des Attributes selftrigger all sollte beachtet werden, dass bereits in der zweiten Rekursion, wenn ein Befehl nicht durch wait verzögert wird, FHEM eine weitere Triggerung unterbindet, um Endlosschleifen zu verhindern.

CoolTux

Weil es ein Unterschied macht ob ich String vergleich oder Operatoren vergleich mache. 2.2 ist eq "2" besser du schreibst ==2
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Per

Zitat von: suppenesser am 10 April 2017, 07:20:01
Pack doch die "geplanten Aktionen" in den ersten, funktionierenden DOIF Zweig mit ein!

Wenn fertig, dann ausschalten!
Oder, falls du es unbedingt (ergibt hier aber keinen Sinn) in zwei Zweigen haben musst und auf Selftriggering verzichten willst, kannst du auch in cmd_2 mit
set $SELF cmd_3
arbeiten.