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
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
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.
Weil es ein Unterschied macht ob ich String vergleich oder Operatoren vergleich mache. 2.2 ist eq "2" besser du schreibst ==2
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.