Hallo zusammen,
ich würde gern meine Waschmaschine und meinen Geschirrspüler smarter machen.
Zuerst hatte ich dieses "Setup" getestet:
https://forum.fhem.de/index.php/topic,39498.0.html (https://forum.fhem.de/index.php/topic,39498.0.html)
Leider lief es bei mir nicht wirklich gut so dass ich dieses hier genommen habe:
https://forum.fhem.de/index.php/topic,60336.msg632598.html#msg632598 (https://forum.fhem.de/index.php/topic,60336.msg632598.html#msg632598)
Aber auf diese Lösung funktioniert nicht recht. Entweder spielt ein Dummy verrückt und schaltet sich ständig ein ohne das ich es verstehen kann, mal kommt keine Benachrichtigung via Telegram, dann wieder jede Stunde eine, ohne das die Maschine gelaufen wäre.
Daher meine Frage:
Gibt es noch irgendwo abseits dieser zwei Beispiele eine Waschmaschinenüberwachung welche eine Benachrichtigung verschickt ? Natürlich nachdem eine Weile keine "Leistungsdaten" von dem POW gesendet wurden.
Leider bin ich nicht in der Lage sowas selbst zu kreieren und daher auf eure Hilfe angewiesen.
Vorab schon mal vielen Dank für eure Mühe!
Gruß
Dlay
ich verwende folgende lösung -> https://haus-automatisierung.com/hardware/fhem/2017/03/03/fhem-tutorial-reihe-part-28-energiemessung-notification-spuelmaschine-fertig.html
wird auch super im video erklärt
funktioniert perfekt und die "schwellen" kannst du ja ändern
Zitat von: panzi am 19 Juni 2017, 01:46:50
ich verwende folgende lösung -> https://haus-automatisierung.com/hardware/fhem/2017/03/03/fhem-tutorial-reihe-part-28-energiemessung-notification-spuelmaschine-fertig.html
wird auch super im video erklärt
funktioniert perfekt und die "schwellen" kannst du ja ändern
Ja das sieht ganz gut aus. Wird für mich aber nicht so einfach funktionieren weil meine Geräte auch gern mal eine längere Pause machen.
Es müsste also dahingehend geändert werden das die Fertig-Meldung nur dann kommt wenn es für 5 Minuten keine Änderung des Powerwertes mehr gab.
Das wird in den Kommentaren auf der Website auch erwähnt, aber leider nur mit dem Hinweis auf einen Watchdog und ich weiß leider nicht wie man den einbindet.
Hab das hier https://forum.fhem.de/index.php/topic,29502.0.html (https://forum.fhem.de/index.php/topic,29502.0.html) auf meine bedürfnisse angepasst.
Auszug aus 99_myUtils.pm
sub monitorDevicePower($$) {
my ($power,$dummyDevice) = @_;
$power =~ s/^\D*(\d+)/$1/; #Substitut $EVENT, z.B. $EVENT='power: 68.45' substitute auf '68.45'
if ( ReadingsVal("$dummyDevice",'monitoringEnabled','0') ) { #Nur überwachen wenn Reading 'monitoringEnabled' true ist
if ( $power >= AttrVal($dummyDevice,'min_watt','') ) { #Dummy einschalten
if ( Value($dummyDevice) ne 'on-till' && AttrVal($dummyDevice,'pushmsg_devRegExp','0') && AttrVal($dummyDevice,'pushmsg_startMsg','0') ) {
fhem("set ".AttrVal($dummyDevice,'pushmsg_devRegExp','')." send $dummyDevice ".AttrVal($dummyDevice,'pushmsg_startMsg','')."");
}
fhem("set $dummyDevice on-till"); #Dummy Status setzen (benötigt für Timestamp)
}
elsif ( $power < AttrVal($dummyDevice,'min_watt','') #Dummy ausschalten
&& Value($dummyDevice) eq 'on-till'
&& ReadingsVal("$dummyDevice",'Power','') < AttrVal($dummyDevice,'min_watt','') #Es muss 2 mal hintereinander < min_watt sein
&& time-time_str2num(ReadingsTimestamp($dummyDevice,'state','')) >= AttrVal($dummyDevice,'wait_sec_before_off','') ) { #Zwischen letztem > min_watt Wert, und 2. < min_watt Wert wait_sec warten
fhem("set $dummyDevice off"); #Wenn beide Bedingungen erfüllt sind, Dummy ausschalten
#fhem("setreading $dummyDevice monitoringEnabled 0"); #Monitoring deaktivieren
if ( Value($dummyDevice) eq 'off' && AttrVal($dummyDevice,'pushmsg_devRegExp','0') && AttrVal($dummyDevice,'pushmsg_stopMsg','0') ) {
fhem("set ".AttrVal($dummyDevice,'pushmsg_devRegExp','')." send $dummyDevice ".AttrVal($dummyDevice,'pushmsg_stopMsg','')."");
}
if ( AttrVal($dummyDevice,'sonos_devRegExp','0') && AttrVal($dummyDevice,'sonos_volume','0') && AttrVal($dummyDevice,'sonos_stopMsg','0') ) {
fhem("set ".AttrVal($dummyDevice,'sonos_devRegExp','')." Speak ".AttrVal($dummyDevice,'sonos_volume','')." de ".AttrVal($dummyDevice,'sonos_stopMsg','')."");
}
}
}
elsif ( $power >= AttrVal($dummyDevice,'min_watt','' && Value($dummyDevice) ne 'on') ) {
fhem("set $dummyDevice on");
}
elsif( time-time_str2num(ReadingsTimestamp($dummyDevice,'state','')) >= AttrVal($dummyDevice,'wait_sec_before_off','') && ReadingsVal("$dummyDevice",'Power','') < AttrVal($dummyDevice,'min_watt','') && Value($dummyDevice) ne 'off' ) {
fhem("set $dummyDevice off");
}
fhem("setreading $dummyDevice Power $power"); #Power in Dummy schreiben
}
MQTT_Device:
define Sonoff_Pow1 MQTT_DEVICE
attr Sonoff_Pow1 IODev MyBroker
attr Sonoff_Pow1 alias POW_Waschmaschine
attr Sonoff_Pow1 eventMap on:ON off:OFF
attr Sonoff_Pow1 genericDeviceType switch
attr Sonoff_Pow1 icon measure_power
attr Sonoff_Pow1 publishSet on off cmnd/sonoffpow1/power
attr Sonoff_Pow1 room Wäsche,Keller
attr Sonoff_Pow1 stateFormat {sprintf("akutelle Leistung: %.1f W Tagesverbrauch: %.2f Kw/h", ReadingsVal($name,"Power",undef), ReadingsVal($name,"Today",undef))}
attr Sonoff_Pow1 subscribeReading_ENERGY tele/sonoffpow1/ENERGY
attr Sonoff_Pow1 subscribeReading_STATE tele/sonoffpow1/STATE
attr Sonoff_Pow1 webCmd on:off
dummy:
define Waschmaschine dummy
attr Waschmaschine userattr min_watt wait_sec_before_off pushmsg_devRegExp pushmsg_startMsg pushmsg_stopMsg sonos_devRegExp sonos_stopMsg sonos_volume
attr Waschmaschine event-on-change-reading state
attr Waschmaschine icon scene_washing_machine
attr Waschmaschine min_watt 25
attr Waschmaschine pushmsg_devRegExp Gabi_mobil
attr Waschmaschine pushmsg_startMsg in Betrieb...
attr Waschmaschine pushmsg_stopMsg ist fertig!
attr Waschmaschine room Keller,Wäsche
attr Waschmaschine wait_sec_before_off 480
notify:
define ntfy_waschmaschine notify Sonoff_Pow1:Power:.* { monitorDevicePower($EVENT,'Waschmaschine') }
attr ntfy_waschmaschine room Keller,Wäsche
Puh das ist verglichen mit der Lösung darüber aber ein ziemlicher Hammer für mich als Laien.
Die Einrichtung würde ich ja hinbekommen, aber ich möchte auch sooo gern immer verstehen was da so passiert. Und das sieht mir doch sehr komplex aus.
und wenn deine geräte "pause" machen, fällt der verbrauch wirklich auf 0w?
Ja, sieht so aus. Hin und wieder wenn die Trommel dann mal kurz andreht kommt er mal auf 3W aber solche Phasen gibts beim Waschgang.
Deswegen wäre ein Watchdog toll, der z.b. 7 Minuten auf das Power-Reading schaut sowie zusätzlich ob die Maschine an ist und dann entsprechend die Fertigmeldung verzögert.
Ich habs bei mir so gemacht, dass ich einen Dummy habe mit Status on, off oder standby.
Sobald der Verbrauch über einen bestimmten Wert steigt, wird der Status auf on gesetzt. Wenn er unter eine bestimmte Schwelle fällt, wird der Status zunächst auf standby gesetzt und ein 10 min Watchdog gestartet. Dieser schaut ob der Status innerhalb dieser Zeit wieder auf on gesetzt wird (Verbrauch doch noch mal gestiegen), und erst wenn er für 10min unter der Schwelle bleibt, setzt er den dummy auf off.
Auf den Status des Dummies habe ich dann notifys gelegt, z.B. für Push-Nachrichten.
Zitat von: Dlay am 20 Juni 2017, 23:28:11
Ja, sieht so aus. Hin und wieder wenn die Trommel dann mal kurz andreht kommt er mal auf 3W aber solche Phasen gibts beim Waschgang.
Deswegen wäre ein Watchdog toll, der z.b. 7 Minuten auf das Power-Reading schaut sowie zusätzlich ob die Maschine an ist und dann entsprechend die Fertigmeldung verzögert.
Hier ein einfach Beispiel aus der Commandref:
define di_washer DOIF ([power:watt]<2) {system("wmail washer finished")}
attr di_washer wait 300
mit Watchdog-Funktionalität.
Kannst doch bei meinem Vorschlag alles einstellen im dummy.
wait_sec_before_off gibt an, wie lange die in min_watt angegebene Leistung
unterschritten sein muss, bevor ein "off" erkannt wird.
Hi!
Ich habs zwar mit Homematic gelöst, aber die FHEM Logik ist ja die gleiche, siehe:
http://www.loescher-online.de/smarthome.html#waschmaschine (http://www.loescher-online.de/smarthome.html#waschmaschine)
Danke an alle FHEM Spezialisten und Entwickler! Ohne euch hätte ich das auch nicht hinbekommen ;)
LG,
Stephan.
Zitat von: panzi am 19 Juni 2017, 01:46:50
ich verwende folgende lösung -> https://haus-automatisierung.com/hardware/fhem/2017/03/03/fhem-tutorial-reihe-part-28-energiemessung-notification-spuelmaschine-fertig.html
wird auch super im video erklärt
funktioniert perfekt und die "schwellen" kannst du ja ändern
Jetzt hab ich das ja so umgesetzt. Nun ist allerdings das Problem das ich regelmäßig Nachrichten bekomme das die Spülmaschine fertig ist, da das Power reading ja im ausgeschalteten Zustand auch 0 W reportet. Wie kann ich das abstellen ?
Zitat von: loescher am 22 Juni 2017, 21:54:34
Hi!
Ich habs zwar mit Homematic gelöst, aber die FHEM Logik ist ja die gleiche, siehe:
http://www.loescher-online.de/smarthome.html#waschmaschine (http://www.loescher-online.de/smarthome.html#waschmaschine)
Danke an alle FHEM Spezialisten und Entwickler! Ohne euch hätte ich das auch nicht hinbekommen ;)
LG,
Stephan.
Da Blicke ich als Anfänger schon wieder nicht mehr durch. Zu viele Dummys und Querverweise. Ich verstehe zwar was da passiert, aber die Syntax leider überhaupt nicht.
Ich versuche erstmal das DOIF zu übernehmen. Mal sehen wie weit ich damit komme.
@loescher:
Bei mir funktioniert dein DOIF auch nicht richtig.
Es wird anscheinend nie CMD 4 erreicht, so dass ich keine Info über eine fertige Maschine auf mein Handy bekomme.
Kannst du mir helfen ?
Internals:
DEF ([mqtt_pow_wasch:Power] < 1)
(setreading mqtt_pow_wasch running off)
DOELSEIF ([mqtt_pow_wasch:Power] >= 5 and [mqtt_pow_wasch:running] eq 'off')
(setreading mqtt_pow_wasch running on)
DOELSEIF ([mqtt_pow_wasch:Power] >= 5)
(setreading mqtt_pow_wasch running running)
DOELSEIF ([mqtt_pow_wasch:Power] < 1 and [mqtt_pow_wasch:running] eq 'running')
(setreading mqtt_pow_wasch running done, set Telegram msg Die Waschmaschine ist fertig - Bitte ausräumen!)
NAME Waschmaschine.Programm
NR 100
NTFY_ORDER 50-Waschmaschine.Programm
STATE cmd_1
TYPE DOIF
READINGS:
2017-07-19 20:19:41 Device mqtt_pow_wasch
2017-07-19 20:19:21 cmd 1
2017-07-19 20:19:21 cmd_event mqtt_pow_wasch
2017-07-19 20:19:21 cmd_nr 1
2017-07-19 20:19:41 e_mqtt_pow_wasch_Power 0
2017-07-19 20:19:41 e_mqtt_pow_wasch_running off
2017-07-19 20:19:21 state cmd_1
2017-07-19 20:19:21 wait_timer no timer
condition:
0 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') < 1
1 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') >= 5 and ReadingValDoIf($hash,'mqtt_pow_wasch','running') eq 'off'
2 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') >= 5
3 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') < 1 and ReadingValDoIf($hash,'mqtt_pow_wasch','running') eq 'running'
devices:
0 mqtt_pow_wasch
1 mqtt_pow_wasch
2 mqtt_pow_wasch
3 mqtt_pow_wasch
all mqtt_pow_wasch
do:
0:
0 setreading mqtt_pow_wasch running off
1:
0 setreading mqtt_pow_wasch running on
2:
0 setreading mqtt_pow_wasch running running
3:
0 setreading mqtt_pow_wasch running done, set Telegram msg Die Waschmaschine ist fertig - Bitte ausräumen!
4:
helper:
event Today: 0.409,Current: 0,Period: 0,Total: 4.344,Factor: 0,Time: 2017-07-19T20:19:41,Voltage: 227,Yesterday: 0.022,Power: 0
globalinit 1
last_timer 0
sleepdevice mqtt_pow_wasch
sleepsubtimer -1
sleeptimer -1
timerdev mqtt_pow_wasch
timerevent Today: 0.409,Current: 0,Period: 0,Total: 4.344,Factor: 0,Time: 2017-07-19T20:19:41,Voltage: 227,Yesterday: 0.022,Power: 0
triggerDev mqtt_pow_wasch
timerevents:
Today: 0.409
Current: 0
Period: 0
Total: 4.344
Factor: 0
Time: 2017-07-19T20:19:41
Voltage: 227
Yesterday: 0.022
Power: 0
timereventsState:
Today: 0.409
Current: 0
Period: 0
Total: 4.344
Factor: 0
Time: 2017-07-19T20:19:41
Voltage: 227
Yesterday: 0.022
Power: 0
triggerEvents:
Today: 0.409
Current: 0
Period: 0
Total: 4.344
Factor: 0
Time: 2017-07-19T20:19:41
Voltage: 227
Yesterday: 0.022
Power: 0
triggerEventsState:
Today: 0.409
Current: 0
Period: 0
Total: 4.344
Factor: 0
Time: 2017-07-19T20:19:41
Voltage: 227
Yesterday: 0.022
Power: 0
internals:
itimer:
readings:
0 mqtt_pow_wasch:Power
1 mqtt_pow_wasch:Power mqtt_pow_wasch:running
2 mqtt_pow_wasch:Power
3 mqtt_pow_wasch:Power mqtt_pow_wasch:running
all mqtt_pow_wasch:Power mqtt_pow_wasch:running
regexp:
0:
all:
state:
STATE:
trigger:
Attributes:
room Waschmaschine
wait 10:300:0:300
cmd4 kommt nicht weil cmd1 vorher schon erfüllt ist. ich würde bei cmd1 einfach mal ab 2W den set Befehl setzen
Zitat von: Dlay am 19 Juli 2017, 20:41:23
@loescher:
Bei mir funktioniert dein DOIF auch nicht richtig.
Es wird anscheinend nie CMD 4 erreicht, so dass ich keine Info über eine fertige Maschine auf mein Handy bekomme.
Kannst du mir helfen ?
Internals:
DEF ([mqtt_pow_wasch:Power] < 1)
(setreading mqtt_pow_wasch running off)
DOELSEIF ([mqtt_pow_wasch:Power] >= 5 and [mqtt_pow_wasch:running] eq 'off')
(setreading mqtt_pow_wasch running on)
DOELSEIF ([mqtt_pow_wasch:Power] >= 5)
(setreading mqtt_pow_wasch running running)
DOELSEIF ([mqtt_pow_wasch:Power] < 1 and [mqtt_pow_wasch:running] eq 'running')
(setreading mqtt_pow_wasch running done, set Telegram msg Die Waschmaschine ist fertig - Bitte ausräumen!)
NAME Waschmaschine.Programm
NR 100
NTFY_ORDER 50-Waschmaschine.Programm
STATE cmd_1
TYPE DOIF
READINGS:
2017-07-19 20:19:41 Device mqtt_pow_wasch
2017-07-19 20:19:21 cmd 1
2017-07-19 20:19:21 cmd_event mqtt_pow_wasch
2017-07-19 20:19:21 cmd_nr 1
2017-07-19 20:19:41 e_mqtt_pow_wasch_Power 0
2017-07-19 20:19:41 e_mqtt_pow_wasch_running off
2017-07-19 20:19:21 state cmd_1
2017-07-19 20:19:21 wait_timer no timer
condition:
0 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') < 1
1 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') >= 5 and ReadingValDoIf($hash,'mqtt_pow_wasch','running') eq 'off'
2 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') >= 5
3 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') < 1 and ReadingValDoIf($hash,'mqtt_pow_wasch','running') eq 'running'
devices:
0 mqtt_pow_wasch
1 mqtt_pow_wasch
2 mqtt_pow_wasch
3 mqtt_pow_wasch
all mqtt_pow_wasch
do:
0:
0 setreading mqtt_pow_wasch running off
1:
0 setreading mqtt_pow_wasch running on
2:
0 setreading mqtt_pow_wasch running running
3:
0 setreading mqtt_pow_wasch running done, set Telegram msg Die Waschmaschine ist fertig - Bitte ausräumen!
4:
helper:
event Today: 0.409,Current: 0,Period: 0,Total: 4.344,Factor: 0,Time: 2017-07-19T20:19:41,Voltage: 227,Yesterday: 0.022,Power: 0
globalinit 1
last_timer 0
sleepdevice mqtt_pow_wasch
sleepsubtimer -1
sleeptimer -1
timerdev mqtt_pow_wasch
timerevent Today: 0.409,Current: 0,Period: 0,Total: 4.344,Factor: 0,Time: 2017-07-19T20:19:41,Voltage: 227,Yesterday: 0.022,Power: 0
triggerDev mqtt_pow_wasch
timerevents:
Today: 0.409
Current: 0
Period: 0
Total: 4.344
Factor: 0
Time: 2017-07-19T20:19:41
Voltage: 227
Yesterday: 0.022
Power: 0
timereventsState:
Today: 0.409
Current: 0
Period: 0
Total: 4.344
Factor: 0
Time: 2017-07-19T20:19:41
Voltage: 227
Yesterday: 0.022
Power: 0
triggerEvents:
Today: 0.409
Current: 0
Period: 0
Total: 4.344
Factor: 0
Time: 2017-07-19T20:19:41
Voltage: 227
Yesterday: 0.022
Power: 0
triggerEventsState:
Today: 0.409
Current: 0
Period: 0
Total: 4.344
Factor: 0
Time: 2017-07-19T20:19:41
Voltage: 227
Yesterday: 0.022
Power: 0
internals:
itimer:
readings:
0 mqtt_pow_wasch:Power
1 mqtt_pow_wasch:Power mqtt_pow_wasch:running
2 mqtt_pow_wasch:Power
3 mqtt_pow_wasch:Power mqtt_pow_wasch:running
all mqtt_pow_wasch:Power mqtt_pow_wasch:running
regexp:
0:
all:
state:
STATE:
trigger:
Attributes:
room Waschmaschine
wait 10:300:0:300
@loescher:
Ich finde deine Idee echt Klasse nur zwei Fragen dazu. Für was genau ist der Dummy WaschmaschineFertig?
So wie ich das sehe wird dort immer der Wert 'Fertig' angezeigt oder übersehe ich da was?
Des weiteren wollte ich Fragen ob du vlt eine Idee hast wie man zusätzlich noch die Anzahl der Waschgänge zählen könnte.
Quasi mit einem Zähler Dummy der nach jedem Waschgang +1 hochzählt?
Vielen Dank.
Zitat von: kleineslichtHH am 20 Juli 2017, 11:43:50
cmd4 kommt nicht weil cmd1 vorher schon erfüllt ist. ich würde bei cmd1 einfach mal ab 2W den set Befehl setzen
Danke werde ich ausprobieren beim nächsten Waschgang !
Gruß
Dlay
@Da-ne-ezy:
Der dummy WaschmaschineFertig ist nicht unbedingt nötig. Der triggert nur das Schreiben der Fertig-Meldung ins Log.
Kann man sicherlich - wie immer - auch anders machen ;) Ich bin halt noch Anfänger ;)
Zu den Waschvorgängen würde ich vermuten, dass du dir einen Dummy definierst und den dann so erhöhen kannst:
set WaschVorgaenge {([WaschVorgaenge]+1)}
Tja das klappt leider auch nicht.
cmd_4 wird einfach nicht erreicht, damit bleibt die Meldung leider aus.
Ich habe jetzt alle Werte angepasst so dass sie sich an keiner Stelle mehr gleichen.
Was könnte ich noch tun ?
Hi!
Hast du es genauso gemacht wie ich?
Dann sollten im Log ja Einträge dazu auftauchen, z.B. auch "running".
Wenn das nicht kommt, dann wird es nie auf cmd4 gehen.
Poste doch mal das Log "waschmaschine.log" eines kompletten Wasch-Durchlaufs.
LG,
Stephan.
Ich habe da kein Log drauf.
Wie kann ich das einrichten ?
Gruß
Dlay
Naja, halt so wie ich das auf meiner Seite schon beschrieben hatte:
define WaschmaschineLog FileLog ./log/waschmaschine.log WaschmaschineWatt
define WaschmaschineLogStatus FileLog ./log/waschmaschine.log WaschmaschineStatus
define WaschmaschineLogFertig FileLog ./log/waschmaschine.log WaschmaschineFertig
LG,
Stephan.
Also ich habe das ja etwas anders aufgebaut:
Internals:
DEF ([mqtt_pow_wasch:Power] < 3)
(setreading mqtt_pow_wasch running off)
DOELSEIF ([mqtt_pow_wasch:Power] >= 4 and [mqtt_pow_wasch:running] eq 'off')
(setreading mqtt_pow_wasch running on)
DOELSEIF ([mqtt_pow_wasch:Power] >= 5)
(setreading mqtt_pow_wasch running running)
DOELSEIF ([mqtt_pow_wasch:Power] < 1 and [mqtt_pow_wasch:running] eq 'running')
(setreading mqtt_pow_wasch running done, set Telegram msg Die Waschmaschine ist fertig - Bitte ausräumen!)
NAME Waschmaschine.Programm
NR 100
NTFY_ORDER 50-Waschmaschine.Programm
STATE cmd_1
TYPE DOIF
READINGS:
2017-08-03 21:41:36 Device mqtt_pow_wasch
2017-08-03 18:51:45 cmd 1
2017-08-03 18:51:45 cmd_event mqtt_pow_wasch
2017-08-03 18:51:45 cmd_nr 1
2017-08-03 21:41:36 e_mqtt_pow_wasch_Power 0
2017-08-03 21:41:36 e_mqtt_pow_wasch_running off
2017-08-03 18:51:45 state cmd_1
2017-08-03 18:51:45 wait_timer no timer
condition:
0 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') < 3
1 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') >= 4 and ReadingValDoIf($hash,'mqtt_pow_wasch','running') eq 'off'
2 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') >= 5
3 ReadingValDoIf($hash,'mqtt_pow_wasch','Power') < 1 and ReadingValDoIf($hash,'mqtt_pow_wasch','running') eq 'running'
devices:
0 mqtt_pow_wasch
1 mqtt_pow_wasch
2 mqtt_pow_wasch
3 mqtt_pow_wasch
all mqtt_pow_wasch
do:
0:
0 setreading mqtt_pow_wasch running off
1:
0 setreading mqtt_pow_wasch running on
2:
0 setreading mqtt_pow_wasch running running
3:
0 setreading mqtt_pow_wasch running done, set Telegram msg Die Waschmaschine ist fertig - Bitte ausräumen!
4:
helper:
event Factor: 0,Voltage: 0,Total: 5.976,Period: 0,Current: 0,Time: 2017-08-03T21:41:36,Today: 0.018,Yesterday: 0.33,Power: 0
globalinit 1
last_timer 0
sleepdevice mqtt_pow_wasch
sleepsubtimer -1
sleeptimer -1
timerdev mqtt_pow_wasch
timerevent Factor: 0,Voltage: 0,Total: 5.976,Period: 0,Current: 0,Time: 2017-08-03T21:41:36,Today: 0.018,Yesterday: 0.33,Power: 0
triggerDev mqtt_pow_wasch
timerevents:
Factor: 0
Voltage: 0
Total: 5.976
Period: 0
Current: 0
Time: 2017-08-03T21:41:36
Today: 0.018
Yesterday: 0.33
Power: 0
timereventsState:
Factor: 0
Voltage: 0
Total: 5.976
Period: 0
Current: 0
Time: 2017-08-03T21:41:36
Today: 0.018
Yesterday: 0.33
Power: 0
triggerEvents:
Factor: 0
Voltage: 0
Total: 5.976
Period: 0
Current: 0
Time: 2017-08-03T21:41:36
Today: 0.018
Yesterday: 0.33
Power: 0
triggerEventsState:
Factor: 0
Voltage: 0
Total: 5.976
Period: 0
Current: 0
Time: 2017-08-03T21:41:36
Today: 0.018
Yesterday: 0.33
Power: 0
internals:
itimer:
readings:
0 mqtt_pow_wasch:Power
1 mqtt_pow_wasch:Power mqtt_pow_wasch:running
2 mqtt_pow_wasch:Power
3 mqtt_pow_wasch:Power mqtt_pow_wasch:running
all mqtt_pow_wasch:Power mqtt_pow_wasch:running
regexp:
0:
1:
2:
all:
state:
STATE:
trigger:
Attributes:
loglevel 4
room Waschmaschine
wait 10:300:0:300
Statt bei CMD_4 done zu setzen und damit noch ein dummy zu triggern soll er halt gleich die Fertigmeldung senden. Liegts daran ?
Gruß
Dlay
Ich bin auch auch nur Anfänger, aber ich würde sagen, dass daran liegt, dass dein DOIF bei kleiner 1 auf done geht aber eben auch bei kleiner 3 auf off. D.h. es geht immer nur auf off, aber nie auf done. Zeichne dir doch mal die 4 Stati auf ein Blatt und verbinde sie mit wenn-dann-Pfeilen. Was helfen müsste: auf off darf das DOIF nur schalten, wenn der Status nicht running ist.
LG, Stephan.
Ich habe jetzt einfach zwei weitere Konditionen an der jeweiligen Stelle mit eingesetzt:
([mqtt_pow_wasch:Power] == 0 and [Schalter_Keller:state] eq "off")
(setreading mqtt_pow_wasch running off)
DOELSEIF ([mqtt_pow_wasch:Power] >= 4 and [mqtt_pow_wasch:running] eq "off")
(setreading mqtt_pow_wasch running on)
DOELSEIF ([mqtt_pow_wasch:Power] >= 15)
(setreading mqtt_pow_wasch running running)
DOELSEIF ([mqtt_pow_wasch:Power] < 1 and [mqtt_pow_wasch:running] eq "running" and [Schalter_Keller:state] eq "on")
(setreading mqtt_pow_wasch running done, set Telegram msg Die Waschmaschine ist fertig - Bitte ausräumen!)
Wobei man den Schritt zwischen running on und running running doch eigentlich sparen kann.
Ich habe es so mit dem Geschirrspüler getestet und es funktioniert einwandfrei. Bin gespannt was die nächste Wäsche mit sich bringt..
Gruß
Dlay