DOIF & cmdpause: Waschmaschinensteuerung

Begonnen von DerB, 11 Juni 2019, 20:34:17

Vorheriges Thema - Nächstes Thema

DerB

Moin,
ich habe eine simple Waschmaschinensteuerung mittels DOIF (und einem SONOFF POW) realisiert. Jedoch stört mich noch ein Detail das ich einfach nicht eingestellt bekomme...

Hier der Aufbau:
Eine PV Anlage die Mittels Volkszähler die momentan Produktion angibt: StromProduktionAktuell
Eine Waschmaschine die mittels SONOFF POW den aktuellen Stromverbrauch angibt: Waschmaschine

Ich möchte die Waschmaschine beladen und einschalten. Durch das erreichen eines Stromverbrauch-Schwellwertes ausgelöst durch den Verbrauch des Magnetventils (ca.15W) soll geprüft werden ob ausreichend Energie (2200W)produziert wird. Wenn nicht schaltet der DOIF die Waschmaschine aus bis genug Strom produziert wird.



([Waschmaschine] > "16"
&& [StromProduktionAktuell] < 2200)

(set Waschmaschine off)

DOELSEIF

([StromProduktionAktuell] > 2200)

(set Waschmaschine on)


Nun meine Herausforderung: Wenn Die Zweite Bedingung wahr wird soll die erste Bedingung für fünf Stunden nicht mehr geprüft werden.  Oder anders ausgedrückt: Wenn die Waschmaschine zu laufen beginnt soll nicht jedes Wölkchen das sich vor die Sonne schiebt dafür sorgen dass meine Waschmaschine aus geht!

=> Ich habe es schon mit einem cmdpause auf die erste Bedingung versucht aber das klappt nur bedingt, da ich die Waschmaschine bereits abends befülle und anstelle, sie jedoch erst am nächsten Vormittag losläuft...

Bestimmt ist die Lösung einfach, bin gespannt drauf!

Ach ja, SUFU hab ich benutzt aber meine Problemstellung nicht gefunden  :( 


Besten Gruß,
DerB

amenomade

cmdpause würde ich auf der 2. Bedingung einrichten, sprich nach der Zustandsänderung zu cmd_2
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Per

Wäre ein Durchschnittswert der letzten Messungen nicht ein Ansatz für dich?

DerB

@amenomade: Hab ich ausprobiert; leider ohne Erfolg!  => Die Wolke kommt, Bedingung 1 wird wahr und die Waschmaschine ist aus. Allerdings schaltet nun der DOIF durch das Attribut "cmdpause" die Waschmaschine die nächsten fünf Stunden nicht mehr an :(

@Per: der Durchschnitt hilft nur bedingt, da in Abhängigkeit des Sonnenscheins der Durchschnitt schnell wieder kleiner als 2200W werden kann. Ich befürchte ich brauche da etwas mit Zeitsteuerung...


Per

Ansätze gibt es einige
- du könntest nur den Start selbst überwachen, dann wäscht sie komplett durch
- du kannst das Alter der Startzeit prüfen ([YYY:sec] > xxxx)
- einen gleitenden Schwellwert verwenden: je länger die Maschine schon läuft, desto weniger muss die Sonne liefern, damit sie weiter wäscht.

Wichtig: wenn die Waschmaschine zu lange stand, muss die Heizung bei 0 anfangen.

DerB

Zitat von: Per am 12 Juni 2019, 16:07:00
- du könntest nur den Start selbst überwachen, dann wäscht sie komplett durch

Ja, das ist es ja was ich will... wie funktioniert das?

Zitat von: Per am 12 Juni 2019, 16:07:00
- du kannst das Alter der Startzeit prüfen ([YYY:sec] > xxxx)

...auch schön... wie funktioniert das?

amenomade

Zitat von: DerB am 12 Juni 2019, 15:41:06
@amenomade: Hab ich ausprobiert; leider ohne Erfolg!  => Die Wolke kommt, Bedingung 1 wird wahr und die Waschmaschine ist aus. Allerdings schaltet nun der DOIF durch das Attribut "cmdpause" die Waschmaschine die nächsten fünf Stunden nicht mehr an :(

@Per: der Durchschnitt hilft nur bedingt, da in Abhängigkeit des Sonnenscheins der Durchschnitt schnell wieder kleiner als 2200W werden kann. Ich befürchte ich brauche da etwas mit Zeitsteuerung...
Dann habe ich deine Logik nicht ganz verstanden, oder Du hast andere Attribute auf dem DOIF eingerichtet (deswegen ist es immer besser ein "list" des DOIFs zu kopieren, statt nur die DEF - "list <DOIFname>" im Kommandofeld von FHEM eingeben).

1. Du ladest die Maschine und schalte die ein => [Waschmaschine] geht über 16, richtig ? Ist Ein/Aus das gleiche wie "set Waschmaschine on/off"?
2a. Wenn jetzt nicht genug Strom, soll wieder ausgehen = du hast auf dem Knopf Ein/Aus gedruckt, aber "klak-klak", FHEM macht das rückgängig?
2b. Wenn jetzt genug Strom soll die Maschine starten, also wieder eingeschaltet werden, aber nur wenn sie vorher eingeschaltet wurde?
3. Sie muss bis Ende des Programs unabhängig von Stromproduktion und von [Waschmaschine] laufen, richtig?

also, im Allgemein: Du schaltest ein... und es muss wieder ausgehen, bis genug Strom produziert wird, und dann von alleine wieder eingehen und nicht mehr unterbrochen werden. Wofür braucht man dann Zeitsteuerung?

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

#7
PS: wenn es nur darum geht, den 1. Zweig nicht mehr auszuführen, dann teste einfach in der Bedingung, dass Du nicht schon im 2 bist:

([Waschmaschine] > "16"
and [StromProduktionAktuell] < 2200 and [$SELF] ne "cmd_2" and [$SELF] ne "cmd_1")

(set Waschmaschine off)

DOELSEIF

([StromProduktionAktuell] > 2200)

(set Waschmaschine on)


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Per

Zitat von: amenomade am 12 Juni 2019, 19:06:30and [$SELF] ne "cmd_2" and [$SELF] ne "cmd_1")
erfordert aber mindestens einen 3. Fall!

amenomade

#9
Stimmt. Und wenn man ein leeres DOELSE hinzufügt, kann er dann nicht mehr unterscheiden, wie er im 3. Fall gelandet ist. Dann muss man mit einem Zwischenreading arbeiten

EDIT: eigentlich... reicht nicht ein "?" in der erste Bedingung? Strom soll nur triggern, um die Waschmaschine zu starten. Das echte Trigger von der 1. Bedingung ist Waschmaschine > 16, oder?

([Waschmaschine] > "16"
&& [?StromProduktionAktuell] < 2200)

(set Waschmaschine off)

DOELSEIF

([StromProduktionAktuell] > 2200)

(set Waschmaschine on)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus