Waschmaschine & Geschirrspüler mit Sonoff-POW und Tasmota

Begonnen von Dlay, 18 Juni 2017, 21:37:43

Vorheriges Thema - Nächstes Thema

Da-ne-ezy

@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.

Dlay

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

loescher

@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)}

Dlay

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 ?

loescher

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.

Dlay

Ich habe da kein Log drauf.

Wie kann ich das einrichten ?

Gruß
Dlay

loescher

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.

Dlay

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

loescher

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.

Dlay

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