(Gelöst) Waschmaschinenbenachrichtigung tut nicht wie sie soll

Begonnen von micomat, 11 Januar 2017, 14:08:56

Vorheriges Thema - Nächstes Thema

micomat

Hallo zusammen,

ich habe folgende DOIFs die jeweils den dummy Waschmaschinenstatus bedienen bzw die Benachrichtigung durchfuehren.

define doif_an DOIF (([Strom_Waschmaschine_Pwr:power]>30) and ([Waschmaschinenstatus:state] ne "on")) (set Waschmaschinenstatus on)
attr doif_an do always


define doif_fertig DOIF (([Strom_Waschmaschine_Pwr:power]<5 ) and ([Waschmaschinenstatus:state] eq "on")) (set Waschmaschinenstatus off,set telegrambot message Waschmaschine ist fertig!)
attr doif_fertig wait 300
attr doif_fertig do always


Mein Problem ist jetzt, dass trotz des wait timers die Benachrichtigung kommt, 5 Minuten nachdem die 5Watt Schwelle unterschritten und wieder überschritten wurde...

Beispiellog:
2017-01-11_13:54:05 Strom_Waschmaschine_Pwr power: 552.08
2017-01-11_13:54:14 Strom_Waschmaschine_Pwr power: 512.04
2017-01-11_13:55:12 Strom_Waschmaschine_Pwr power: 161.28
2017-01-11_13:55:20 Strom_Waschmaschine_Pwr power: 20.16
2017-01-11_13:55:43 Strom_Waschmaschine_Pwr power: 37.8
2017-01-11_13:55:51 Strom_Waschmaschine_Pwr power: 3.68
2017-01-11_13:55:59 Strom_Waschmaschine_Pwr power: 3.66
2017-01-11_13:56:07 Strom_Waschmaschine_Pwr power: 3.68
2017-01-11_13:56:15 Strom_Waschmaschine_Pwr power: 32.92
2017-01-11_13:56:23 Strom_Waschmaschine_Pwr power: 27.76
2017-01-11_13:56:31 Strom_Waschmaschine_Pwr power: 34.37
2017-01-11_13:56:39 Strom_Waschmaschine_Pwr power: 30.99
2017-01-11_13:56:47 Strom_Waschmaschine_Pwr power: 35.34
2017-01-11_13:56:51 Strom_Waschmaschine_Pwr power: 39.14
2017-01-11_13:56:55 Strom_Waschmaschine_Pwr power: 33.66
2017-01-11_13:57:03 Strom_Waschmaschine_Pwr power: 38.45
2017-01-11_13:57:14 Strom_Waschmaschine_Pwr power: 35.78
2017-01-11_13:57:19 Strom_Waschmaschine_Pwr power: 42.02
2017-01-11_13:57:27 Strom_Waschmaschine_Pwr power: 34.91
2017-01-11_13:57:35 Strom_Waschmaschine_Pwr power: 42.05
2017-01-11_13:57:43 Strom_Waschmaschine_Pwr power: 266.45
2017-01-11_13:57:51 Strom_Waschmaschine_Pwr power: 1224.62
2017-01-11_13:58:00 Strom_Waschmaschine_Pwr power: 1204.85
2017-01-11_13:58:08 Strom_Waschmaschine_Pwr power: 1219
2017-01-11_13:58:16 Strom_Waschmaschine_Pwr power: 1172.27
2017-01-11_13:58:24 Strom_Waschmaschine_Pwr power: 1186.75
2017-01-11_13:58:38 Strom_Waschmaschine_Pwr power: 1166.85
2017-01-11_13:58:46 Strom_Waschmaschine_Pwr power: 1178.88
2017-01-11_13:58:54 Strom_Waschmaschine_Pwr power: 1140.67
2017-01-11_13:59:02 Strom_Waschmaschine_Pwr power: 1190.35
2017-01-11_13:59:20 Strom_Waschmaschine_Pwr power: 1176.99
2017-01-11_13:59:24 Strom_Waschmaschine_Pwr power: 1201.4
2017-01-11_13:59:31 Strom_Waschmaschine_Pwr power: 1156.58
2017-01-11_13:59:32 Strom_Waschmaschine_Pwr power: 1156.59
2017-01-11_13:59:40 Strom_Waschmaschine_Pwr power: 1171.9
2017-01-11_13:59:54 Strom_Waschmaschine_Pwr power: 1157.04
2017-01-11_14:00:02 Strom_Waschmaschine_Pwr power: 1179.8
2017-01-11_14:00:10 Strom_Waschmaschine_Pwr power: 1146.27
2017-01-11_14:00:21 Strom_Waschmaschine_Pwr power: 1191.31
2017-01-11_14:00:32 Strom_Waschmaschine_Pwr power: 1164.77
2017-01-11_14:00:40 Strom_Waschmaschine_Pwr power: 1198.47
2017-01-11_14:00:49 Strom_Waschmaschine_Pwr power: 1157.66
2017-01-11_14:00:56 Strom_Waschmaschine_Pwr power: 1163.65
2017-01-11_14:01:10 Strom_Waschmaschine_Pwr power: 1144.87
2017-01-11_14:01:18 Strom_Waschmaschine_Pwr power: 1173.44
2017-01-11_14:01:26 Strom_Waschmaschine_Pwr power: 1145.42
2017-01-11_14:01:34 Strom_Waschmaschine_Pwr power: 1193.53
2017-01-11_14:01:48 Strom_Waschmaschine_Pwr power: 1159.18
2017-01-11_14:01:56 Strom_Waschmaschine_Pwr power: 1199.11


Um 13:51:51 war die Aufnahme unter 5Watt um 14:01:55 habe ich die Benachrichtigung erhalten obwohl die Leistung danach wieder hoeher war?
Habe ich hier einen Gedankenfehler?
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

CoolTux

DOIF arbeitet Zustandbedingt. Das gilt aber nur pro DOIF Instanz. Du hast aber für beide Zustände jeweils ein DOIF.
Packe beides in eine DOIF Instanz und es wird funktionieren.
Schaue Dir die diversen Beispiele dazu an. Gerade Waschmaschine und DOIF findest Du hier zu Hauf.
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

micomat

Ich tat wie mir aufgetragen... Leider mit dem gleichen Resultat.

define doif_WaMa DOIF ([Strom_Waschmaschine_Pwr:power] == 0 and [?Waschmaschinenstatus] ne "off") (set Waschmaschinenstatus off)
DOELSEIF ([Strom_Waschmaschine_Pwr:power] > 25 and [?Waschmaschinenstatus] ne "on") (set Waschmaschinenstatus on)
DOELSEIF ([Strom_Waschmaschine_Pwr:power] < 5 and [?Waschmaschinenstatus] eq "on") (set Waschmaschinenstatus state off,set telegrambot message Waschmaschine fertig!)
attr doif_WaMa do always
attr doif_waMa wait 60:0:300


2017-01-11_14:37:49 Strom_Waschmaschine_Pwr power: 1.46
2017-01-11_14:39:19 Strom_Waschmaschine_Pwr power: 1.06
2017-01-11_14:42:10 Strom_Waschmaschine_Pwr power: 14.52


Um 14:42:49 bekam ich die Nachricht "Fertig" obwohl Leistung mit 14.52 > 5 ist.
:o
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

CoolTux

Er habe sich nicht genug belesen. So lösche er so always und staune.
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

micomat

er lösche und freue sich :)
danke fuers denkfehler aufloesen
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

Per

Zitat von: micomat am 11 Januar 2017, 14:52:08Um 14:42:49 bekam ich die Nachricht "Fertig" obwohl Leistung mit 14.52 > 5 ist.
Aber kleiner als 25 W. Und nur das setzt den Timer zurück.

automatisierer

Ich nehme mal an, dass du einen HM-ES-PMSw1-Pl nutzt. Die Events kommen im 8 Sekunden Takt, ich hab bei mir mal die Einstellungen angepasst, so dass statt ~2000 €vents/h nur noch gute 150 kommen. Zum einen muss das Device nicht alle 8 Sekunden Funken und somit den Funk überstrapazieren - zum anderen hat das System dann auch nicht mehr so viel zu tun. Wir haben 2 Waschmaschinen und nen Trockner... ~6000 Events/h...
Alle 2 oder 3 Minuten senden das Device ja so oder so.


R-txMinDly 16 s
R-txThrCur 3000 mA
R-txThrFrq 1 Hz
R-txThrPwr 400 W
R-txThrVlt 10 V


Und dann halt noch event-on-change-reading etsprechend dem was man so braucht...

p.s. bin dem mit Ellerts neuem Modul DOIFtools auf die Schliche gekommen.

micomat

Zitat von: Per am 11 Januar 2017, 15:11:03
Aber kleiner als 25 W. Und nur das setzt den Timer zurück.

Aber ich frage doch nach groesser 25W im ersten DOELSEIF
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

micomat

Zitat von: automatisierer am 11 Januar 2017, 15:30:02
Ich nehme mal an, dass du einen HM-ES-PMSw1-Pl nutzt. Die Events kommen im 8 Sekunden Takt, ich hab bei mir mal die Einstellungen angepasst, so dass statt ~2000 €vents/h nur noch gute 150 kommen. Zum einen muss das Device nicht alle 8 Sekunden Funken und somit den Funk überstrapazieren - zum anderen hat das System dann auch nicht mehr so viel zu tun. Wir haben 2 Waschmaschinen und nen Trockner... ~6000 Events/h...
Alle 2 oder 3 Minuten senden das Device ja so oder so.


R-txMinDly 16 s
R-txThrCur 3000 mA
R-txThrFrq 1 Hz
R-txThrPwr 400 W
R-txThrVlt 10 V


Und dann halt noch event-on-change-reading etsprechend dem was man so braucht...

p.s. bin dem mit Ellerts neuem Modul DOIFtools auf die Schliche gekommen.

Danke fuer den Tip, das TXmindelay war mir noch unbekannt :)
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

micomat

Zitat von: CoolTux am 11 Januar 2017, 15:08:05
Er habe sich nicht genug belesen. So lösche er so always und staune.

Sorry.. staune das es immer noch so ist wie vorher =(

2017-01-11_15:45:33 Strom_Waschmaschine_Pwr power: 16.21
2017-01-11_15:48:33 Strom_Waschmaschine_Pwr power: 1.95
2017-01-11_15:51:18 Strom_Waschmaschine_Pwr power: 16.09

Um 15:53:33 kommt die Meldung. "do always" wars also wohl nicht
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

CoolTux

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

kumue

Zitat von: micomat am 11 Januar 2017, 14:08:56
define doif_fertig DOIF (([Strom_Waschmaschine_Pwr:power]<5 ) and ([Waschmaschinenstatus:state] eq "on")) (set Waschmaschinenstatus off,set telegrambot message Waschmaschine ist fertig!)
attr doif_fertig wait 300
attr doif_fertig do always


Wenn du mit wait arbeitest, musst du doch die eine Befehlssequenz aufsplitten...
Also aus
(set Waschmaschinenstatus off,set telegrambot message Waschmaschine ist fertig!)
mache
(set Waschmaschinenstatus off) (set telegrambot message Waschmaschine ist fertig!)

Wenn Du mit dem off noch 5min warten willst. dann sollte das Attribut so aussehen.
attr doif_fertig wait 300,0
300sec mit dem off warten und sofort nach dem off gleich die Message rausschicken.

micomat

Ich hab jetzt die Schwelle mal auf 12W einstellt damit ich mit einer LED-Lampe testen kann.
Hier das list:

Internals:
   CFGFN
   DEF        ([Strom_Waschmaschine_Pwr:power] == 0 and [?Waschmaschinenstatus] ne "off") (set Waschmaschinenstatus off) DOELSEIF ([Strom_Waschmaschine_Pwr:power] > 12 and [?Waschmaschinenstatus] ne "on") (set Waschmaschinenstatus on) DOELSEIF ([Strom_Waschmaschine_Pwr:power] < 5 and [?Waschmaschinenstatus] eq "on") (set Waschmaschinenstatus  off,set telegrambot message Waschmaschine fertig!)
   NAME       doif_Waschmaschine
   NR         4489
   NTFY_ORDER 50-doif_Waschmaschine
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2017-01-11 16:03:36   Device          Strom_Waschmaschine_Pwr
     2017-01-11 15:53:49   cmd             2
     2017-01-11 15:53:49   cmd_event       Strom_Waschmaschine_Pwr
     2017-01-11 15:53:49   cmd_nr          2
     2017-01-11 16:03:36   e_Strom_Waschmaschine_Pwr_power 15.91
     2017-01-11 15:53:49   state           cmd_2
     2017-01-11 15:53:33   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'Strom_Waschmaschine_Pwr','power','','',AttrVal($hash->{NAME},'notexist',undef)) == 0 and InternalDoIf($hash,'Waschmaschinenstatus','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) ne "off"
     1          ReadingValDoIf($hash,'Strom_Waschmaschine_Pwr','power','','',AttrVal($hash->{NAME},'notexist',undef)) > 12 and InternalDoIf($hash,'Waschmaschinenstatus','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) ne "on"
     2          ReadingValDoIf($hash,'Strom_Waschmaschine_Pwr','power','','',AttrVal($hash->{NAME},'notexist',undef)) < 5 and InternalDoIf($hash,'Waschmaschinenstatus','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on"
   Devices:
     0           Strom_Waschmaschine_Pwr
     1           Strom_Waschmaschine_Pwr
     2           Strom_Waschmaschine_Pwr
     all         Strom_Waschmaschine_Pwr
   Do:
     0:
       0          set Waschmaschinenstatus off
     1:
       0          set Waschmaschinenstatus on
     2:
       0          set Waschmaschinenstatus  off,set telegrambot message Waschmaschine fertig!
     3:
   Helper:
     event      boot: off,current: 130,eState: E: 1929 P: 15.91 I: 130 U: 227.4 f: 50.02,energy: 1929,energyCalc: 1989,frequency: 50.02,power: 15.91,1929,voltage: 227.4
     globalinit 1
     last_timer 0
     sleepdevice Strom_Waschmaschine_Pwr
     sleepsubtimer -1
     sleeptimer -1
     timerdev   Strom_Waschmaschine_Pwr
     timerevent boot: off,current: 131,eState: E: 1926.4 P: 16 I: 131 U: 227 f: 50.01,energy: 1926.4,energyCalc: 1986.4,frequency: 50.01,power: 16,1926.4,voltage: 227
     triggerDev Strom_Waschmaschine_Pwr
     timerevents:
       boot: off
       current: 131
       eState: E: 1926.4 P: 16 I: 131 U: 227 f: 50.01
       energy: 1926.4
       energyCalc: 1986.4
       frequency: 50.01
       power: 16
       1926.4
       voltage: 227
     timereventsState:
       boot: off
       current: 131
       eState: E: 1926.4 P: 16 I: 131 U: 227 f: 50.01
       energy: 1926.4
       energyCalc: 1986.4
       frequency: 50.01
       power: 16
       state: 1926.4
       voltage: 227
     triggerEvents:
       boot: off
       current: 130
       eState: E: 1929 P: 15.91 I: 130 U: 227.4 f: 50.02
       energy: 1929
       energyCalc: 1989
       frequency: 50.02
       power: 15.91
       1929
       voltage: 227.4
     triggerEventsState:
       boot: off
       current: 130
       eState: E: 1929 P: 15.91 I: 130 U: 227.4 f: 50.02
       energy: 1929
       energyCalc: 1989
       frequency: 50.02
       power: 15.91
       state: 1929
       voltage: 227.4
   Internals:
     0           Waschmaschinenstatus:STATE
     1           Waschmaschinenstatus:STATE
     2           Waschmaschinenstatus:STATE
     all         Waschmaschinenstatus:STATE
   Itimer:
   Readings:
     0           Strom_Waschmaschine_Pwr:power
     1           Strom_Waschmaschine_Pwr:power
     2           Strom_Waschmaschine_Pwr:power
     all         Strom_Waschmaschine_Pwr:power
   Regexp:
     0:
     1:
     2:
     All:
   State:
   Trigger:
Attributes:
   wait       60:0:300
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

automatisierer

alternative - den dummy Waschmaschinestatus weg lassen und das DOIF selber zum anzeigen des Status nutzen.

define Waschmaschine DOIF
([Strom_Waschmaschine_Pwr:power] == 0 )
DOELSEIF
([Strom_Waschmaschine_Pwr:power] > 12)
DOELSEIF
([Strom_Waschmaschine_Pwr:power] < 5) (set telegrambot message Waschmaschine fertig!)

attr Waschmaschine cmdState aus|laeuft|fertig
attr Waschmaschine wait 60:0:300



bei 'wait 300,0' wird der zweite Teil des aufgespitteten Ausführungsteils sofort nach dem ersten ausgeführt - bringt also eigentlich nix...

automatisierer

#14
Zitat von: micomat am 11 Januar 2017, 16:07:14
Ich hab jetzt die Schwelle mal auf 12W einstellt damit ich mit einer LED-Lampe testen kann.
Hier das list:

Internals:
   CFGFN
   DEF        ([Strom_Waschmaschine_Pwr:power] == 0 and [?Waschmaschinenstatus] ne "off") (set Waschmaschinenstatus off) DOELSEIF ([Strom_Waschmaschine_Pwr:power] > 12 and [?Waschmaschinenstatus] ne "on") (set Waschmaschinenstatus on) DOELSEIF ([Strom_Waschmaschine_Pwr:power] < 5 and [?Waschmaschinenstatus] eq "on") (set Waschmaschinenstatus  off,set telegrambot message Waschmaschine fertig!)


Funktionieren müsste deins allerdings auch - sehe keinen Fehler, bis auf die zwei Leerzeichen im 3. Ausführungsteil hinter Waschmaschinenstatus, sollte aber kein Problem darstellen.