Seite 1 von 3
Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 7. Jul 2019 23:16
von Kito
Hallo zusammen, ich benötige mal eure Hilfe. Ich friemel mir hier so meine Sachen zusammen, die ich für meine Steuerung benötige. Bei mir wurde Knx verbaut, was auch soweit funktioniert für meine Zwecke.
Da kommt jetzt meine Frage: Ich habe einen Lüfter im Bad, den ich manuell einschalte über einen Taster, wenn ich duschen gehe. Wenn ich Ihn manuell ausschalte läuft er noch 15 Min nach. Der Zeitraum ist aber meist zu kurz und es ist noch nicht alles getrocknet. Daher meine Überlegung eine rule zu erstellen, die prüfen soll ob der Lüfter an ist und ihn dann erst nach 1h Stunde auszuschalten. So muss ich es auch nicht mehr manuell machen.
Könnt ihr mir hier bitte weiter helfen, wie die Rule dazu aussehen muss? Vielen Dank
Edit: Ich hoffe das ich im richtigen Forum gelandet bin?!
Re: Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 8. Jul 2019 06:10
von sihui
Kito hat geschrieben: ↑7. Jul 2019 23:16
ob der Lüfter an ist
Hierzu musst du den Lüfter als Item in openHAB anlegen und dann in der Rule den Status
https://www.openhab.org/docs/configurat ... html#state abfragen.
Kito hat geschrieben: ↑7. Jul 2019 23:16
und ihn dann erst nach 1h Stunde auszuschalten
Entweder per Timer
https://www.openhab.org/docs/configurat ... tml#timers oder Expire
https://www.openhab.org/addons/bindings ... re-binding Binding.
Re: Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 8. Jul 2019 10:14
von Kito
Kannst du mir hier vielleicht ein Beispiel geben, wie es aussehen muss? So kann ich es dann für meine Zwecke anpassen. Item für den Lüfter ist angelegt (luefter_bad). Es gibt einmal die Adresse ein/aus und auch eine für den Status. 0/0/40 und 0/0/41.
Re: Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 8. Jul 2019 20:06
von Kito
Hab mich mal probiert. Sollte es in etwa so aussehen? (ohne Timer mit 1h)
Code: Alles auswählen
rule "Lüfter Dusche Switch"
when
Item statusbadluefter received command
then
if(badluefter == ON)
badluefter.sendCommand(OFF)
end
oder
Code: Alles auswählen
rule "Lüfter Dusche Switch"
when
Item statusbadluefter changed
then
if(badluefter == ON)
badluefter.sendCommand(OFF)
end
item Datei:
Code: Alles auswählen
Switch badluefter "Badlüfter" (gBad) [ "Lighting" ] {knx="<0/0/40"}
Switch statusbadluefter "Status Badlüfter" <light> {knx="<0/0/41"}
Re: Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 8. Jul 2019 21:06
von sihui
Kito hat geschrieben: ↑8. Jul 2019 20:06
Hab mich mal probiert. Sollte es in etwa so aussehen?
Nein, du musst den Status des Items abfragen:
https://www.openhab.org/docs/configurat ... s-in-rules
In deinem Fall also
Re: Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 8. Jul 2019 21:11
von Kito
Hey, habe ich auch schon probiert. Geht auch nicht.
Code: Alles auswählen
rule "Lüfter Dusche Switch"
when
Item badluefter changed to ON
then
if(badluefter.state == ON)
badluefter.sendCommand(OFF)
end
Kommando zurück, damit funktioniert es. Jetzt kann ich den Lüfter nicht mehr einschalten, da er ja gleich wieder ausgeschaltet wird. Also brauche ich den Status von dem Lüfter jetzt garnicht, den es ja als Adresse gibt?
Nun muss ich bloß den Timer noch versuchen darum setzen oder?
EDIT 2: So funktioniert es mit einem Timer, testweise hier mit 1 probiert:
Code: Alles auswählen
rule "Lüfter Dusche Switch"
when
Item badluefter changed to ON
then
if(badluefter.state == ON)
{
createTimer(now.plusMinutes(1)) [| sendCommand(badluefter, OFF) ]
}
end
Was ich nur nicht verstehe, wozu ich dann den Status vom Lüfter überhaupt brauche, wenn ich doch nur den Status von ein/aus abfrage...
Danke dir für deine Mühen!
Re: Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 8. Jul 2019 21:57
von sihui
Kito hat geschrieben: ↑8. Jul 2019 21:11
Was ich nur nicht verstehe, wozu ich dann den Status vom Lüfter überhaupt brauche
Weil du danach gefragt hast:
Kito hat geschrieben: ↑7. Jul 2019 23:16
Daher meine Überlegung eine rule zu erstellen, die prüfen soll ob der Lüfter an ist
Re: Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 8. Jul 2019 21:58
von Kito
Na das macht doch der Lüfterstatus?!
Edit. Und dann habe ich noch diese beiden Rules erstellt, die aber nicht so recht funktionieren wollen. Kannst du hier einen Fehler erkennen?
Code: Alles auswählen
rule "Rollos zur Straße aus bei SUG"
when
Channel 'astro:sun:xxx:set#event' triggered START
then
createTimer(now.plusMinutes(55)) [| gSUG.allMembers.forEach(item | { item.sendCommand(ON) } ) ]
end
oder
Code: Alles auswählen
rule "Aussenbeleuchtung Zeitschaltuhr-EIN"
when
Channel 'astro:sun:xxx:set#event' triggered START
then
createTimer(now.plusMinutes(55))
[|
sendCommand(gAussenbel, ON)
]
end
Re: Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 8. Jul 2019 22:28
von sihui
Kito hat geschrieben: ↑8. Jul 2019 21:58
Kannst du hier einen Fehler erkennen?
Syntax Fehler in Rules werden in der openhab.log angezeigt.
Für deine Beispiele bietet sich aber eher ein Offset im Range Event des Astro Bindings an.
Re: Wenn item = ein dann nach 1h Stunde ausschalten
Verfasst: 8. Jul 2019 22:34
von Kito
Aha, also muss ich mich alleine weiter durchkämpfen. Offset gibt es nicht im Astro Binding.