Hallo zusammen,
durch meine PV Anlage, möchte ich meinen erzeugten Strom auch selbst nutzen. Daher beabsichtige ich meinen Geschirrspüler erst am Tage einzuschalten. Damit das funktioniert, muss ich den GS erst einmal kurz einschalten, um das Programm auszuwählen. Dafür habe ich an eine Zeit von 10 Sekunden gedacht. Danach soll er wieder abschalten und erst um 12:00 Uhr einschalten. Abschaltung dann um 14:30 Uhr. Ich habe dazu eine schaltbare Steckdose und einen Taster (Funk-Wandsender mit Display HM-PB-4Dis-WM) von Homematic. Diese sind beide über die Homematic CCU2 gekoppelt. In meiner Programmierung, schaltet die Steckdose zur eingestellten Zeit andauernd ein und aus, was natürlich so nicht gewollt und auch sicherlich nicht gut für den Geschirrspüler ist. Wichtig zu sagen ist noch, dass der GS nicht jeden Tag spülen soll, sondern nur wenn über die Taste des Display's die Steckdose erneut eingeschalten wurde (für 10 Sekunden).
Item:
...
Switch SteckdoseGS "Steckdose GS" {channel="homematic:HM-LC-Sw1-Pl-DN-R1:NEQ1532814:QEQ0464010:1#STATE"}
Switch MSteckdoseGS "Merker GS"
Rules:
var MSteckdoseGS
var SteckdoseGS
rule "Geschirrspüler Vorwahl"
when
Item SteckdoseGS changed from OFF to ON
then
if (MSteckdoseGS != OFF)
sendCommand(MSteckdoseGS, ON)
createTimer(now.plusSeconds(10)) [| sendCommand(SteckdoseGS, OFF) ]
end
rule "Geschirrspüler_An"
when
Time cron "* 00 12 * * ?"
then
if (MSteckdoseGS != ON && SteckdoseGS != OFF)
sendCommand(SteckdoseGS, ON)
end
rule "Geschirrspüler_Aus"
when
Time cron "* 30 14 * * ?"
then
if (MSteckdoseGS != ON && SteckdoseGS != ON)
sendCommand(SteckdoseGS, OFF)
sendCommand(MSteckdoseGS, OFF)
end
Vielleicht kann mir jemand auf die Sprünge helfen.
Gruß Daniel
Schaltbare Steckdose zweimal einschalten
-
- Beiträge: 24
- Registriert: 8. Mär 2017 20:05
-
- Beiträge: 600
- Registriert: 20. Sep 2019 05:49
Re: Schaltbare Steckdose zweimal einschalten
Hallo,
damit habe ich mich auch auseinander gesetzt.
Mein Geschirrspüler ist von MIELE und nicht Smarthome-fähig.
Da hatte ich folgende Idee. Normal wird der Geschirrspüler eingeschaltet, das Programm ausgewählt und zuletzt per Start-Taster gestartet.
Ich habe ihm einen Shelly "eingepflanzt", der den Start-Taster überbrückt.
Damit können wir dann alles fertig vorbereiten und OpenHAB sagt dann dem Shelly, wann der passende Moment ist.
Scheint keine Sonne, kann man den Geschirrspüler immer noch einfach von Hand per Start-Taster starten.
Allerdings setzt das einen chirurgischen Eingriff in das Gerät vorraus.
VG André
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Schaltbare Steckdose zweimal einschalten
Also erstmal:
Warum legst Du globale Variablen an, die identisch zu Items sind? Das MUSS ja Probleme ergeben!
Dann Der Vergleich. Hast Du verstanden, was Du da vergleichst? != bedeutet nicht gleich. Deine gesamte Logik ist verkehrt.
Die Rules sollten eher so aussehen:
Kurze Erläuterungen:
MSteckdoseGS ist ein ungebundenes Item, welches nur einen Status hält, aber keinen Befehl sendet. Entsprechend sollte auch nur der Status gesetzt werden. (Item.postUpdate())
Wenn man den Status eines Items nutzen möchte, muss man auch auf den Status zugreifen, nicht auf das Item selbst. (Item.state)
Die Methode Item.sendCommand(Value) ist sicherer als die Action sendCommand(String, String) (gleiches gilt für postUpdate()).
Time cron läuft sekundengenau. Ein * steht für "beliebiger Wert". Du möchtest die Rules nicht jeweils sechzig mal starten, sondern jeweils einmal.
Wenn man eine bedingte Verzweigung auf mehrere Befehle wirken lassen will, müssen diese in geschweiften Klammern stehen.
Das ständige Ein- und Ausschalten kam vom Zusammenspiel der ersten und der zweiten Rule, die eine schaltete 60 Sekunden lang einmal pro Sekunde die Steckdose ein, die andere Rule erzeugte jedesmal einen Ausschalttimer.
Warum legst Du globale Variablen an, die identisch zu Items sind? Das MUSS ja Probleme ergeben!
Dann Der Vergleich. Hast Du verstanden, was Du da vergleichst? != bedeutet nicht gleich. Deine gesamte Logik ist verkehrt.
Die Rules sollten eher so aussehen:
Code: Alles auswählen
rule "Geschirrspüler Vorwahl"
when
Item SteckdoseGS changed from OFF to ON // Triggert bei jedem Einschalten (auch um 12 Uhr)
then
if(MSteckdoseGS.state != ON) { // nur falls der Merker nicht ON ist
MSteckdoseGS.postUpdate(ON) // Merker auf ON setzen
createTimer(now.plusSeconds(10), [ | // Und Ausschalttimer starten
SteckdoseGS.sendCommand(OFF)
] )
}
end
rule "Geschirrspüler_An"
when
Time cron "0 0 12 * * ?" // täglich 12:00:00 Uhr
then
if(MSteckdoseGS.state == ON && SteckdoseGS.state != ON) // Falls Merker ON und Steckdose nicht ON
SteckdoseGS.sendCommand(ON) // Steckdose einschalten
end
rule "Geschirrspüler_Aus"
when
Time cron "0 30 14 * * ?" // täglich 14:30:00 Uhr
then
if(MSteckdoseGS.state == ON && SteckdoseGS.state != OFF) { // Falls Merker ON und Steckdose nicht OFF
SteckdoseGS.sendCommand(OFF) // Steckdose ausschalten
MSteckdoseGS.postUpdate(OFF) // Merker auf OFF setzen
}
end
MSteckdoseGS ist ein ungebundenes Item, welches nur einen Status hält, aber keinen Befehl sendet. Entsprechend sollte auch nur der Status gesetzt werden. (Item.postUpdate())
Wenn man den Status eines Items nutzen möchte, muss man auch auf den Status zugreifen, nicht auf das Item selbst. (Item.state)
Die Methode Item.sendCommand(Value) ist sicherer als die Action sendCommand(String, String) (gleiches gilt für postUpdate()).
Time cron läuft sekundengenau. Ein * steht für "beliebiger Wert". Du möchtest die Rules nicht jeweils sechzig mal starten, sondern jeweils einmal.
Wenn man eine bedingte Verzweigung auf mehrere Befehle wirken lassen will, müssen diese in geschweiften Klammern stehen.
Das ständige Ein- und Ausschalten kam vom Zusammenspiel der ersten und der zweiten Rule, die eine schaltete 60 Sekunden lang einmal pro Sekunde die Steckdose ein, die andere Rule erzeugte jedesmal einen Ausschalttimer.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 24
- Registriert: 8. Mär 2017 20:05
Re: Schaltbare Steckdose zweimal einschalten
Hallo,
erst einmal vielen Dank für Eure Unterstützung. Leider habe ich im Moment kaum Zeit für irgendwas, aber ich probiere das unbedingt aus und melde mich dann wieder.
Gruß Daniel
erst einmal vielen Dank für Eure Unterstützung. Leider habe ich im Moment kaum Zeit für irgendwas, aber ich probiere das unbedingt aus und melde mich dann wieder.
Gruß Daniel
-
- Beiträge: 24
- Registriert: 8. Mär 2017 20:05
Re: Schaltbare Steckdose zweimal einschalten
Klasse, es funktioniert genau so wie ich es mir voergestellt habe. Danke udo1toni. Ich hab noch viel zu lernen.
Gruß Daniel
Gruß Daniel