Hallo Zusammen,
Es geht um ein altes Thema "Thema Dunstabzugshaube und Kamin"
Im Wohn/Küchenbereich gibt es mehrere Fenster. Sowie mindestens eines dieser Fenster offen ist, darf der Motor der Dunstabzugshaube laufen. Sind alle geschlossen halt nicht.
Ich habe daher alle betroffenen Fenster in eine Gruppe "FensterWZ zusammengefasst.
Group:Contact:OR(OPEN, CLOSED) FensterWZ "Fenster [(%d)]" <contact>
Wird diese Gruppe in der Sitemap eingebunden sieht man dann sogar die Anzahl offener Fenster. Das ist schon mal schön.
Durch Zufall habe ich dazu eine Regel erstellt die wie folgt aussieht.
rule "Dunstabzugshaube FREI" //wenn ein Element offen ist
when
Item FensterWZ received update OPEN
then
sendCommand (Abzugshaube, ON)
end
rule "Dunstabzugshaube GESPERRT" //wenn alle Elemente geschlossen
when
Item FensterWZ received update CLOSED
then
sendCommand(Abzugshaube, OFF)
end
Somit kann jederzeit ein neuer Fensterkontakt in die Gruppe dazukommen, ohne das ich die Regel anpassen muss. Was mich erstaunt... Das funktioniert sogar. :-)
Hierzu habe ich nun zwei Anfänger-Fragen:
Die Fragen mögen sich blöd anhören weil es ja funktioniert aber ich will es einfach verstehen.
Viele Grüße,
Andreas
Es geht um ein altes Thema "Thema Dunstabzugshaube und Kamin"
Im Wohn/Küchenbereich gibt es mehrere Fenster. Sowie mindestens eines dieser Fenster offen ist, darf der Motor der Dunstabzugshaube laufen. Sind alle geschlossen halt nicht.
Ich habe daher alle betroffenen Fenster in eine Gruppe "FensterWZ zusammengefasst.
Group:Contact:OR(OPEN, CLOSED) FensterWZ "Fenster [(%d)]" <contact>
Wird diese Gruppe in der Sitemap eingebunden sieht man dann sogar die Anzahl offener Fenster. Das ist schon mal schön.
Durch Zufall habe ich dazu eine Regel erstellt die wie folgt aussieht.
rule "Dunstabzugshaube FREI" //wenn ein Element offen ist
when
Item FensterWZ received update OPEN
then
sendCommand (Abzugshaube, ON)
end
rule "Dunstabzugshaube GESPERRT" //wenn alle Elemente geschlossen
when
Item FensterWZ received update CLOSED
then
sendCommand(Abzugshaube, OFF)
end
Somit kann jederzeit ein neuer Fensterkontakt in die Gruppe dazukommen, ohne das ich die Regel anpassen muss. Was mich erstaunt... Das funktioniert sogar. :-)
Hierzu habe ich nun zwei Anfänger-Fragen:
- Ich würde gerne verstehen warum bzw. wie meine Regel funktioniert. Ich finde das sieht nicht sauber aus bzw. mir geht die Logik nicht auf.
- Ich hätte lieber die Anzahl offener Kontakte gezählt (Anzahl items in der Gruppe mit Status=open) und über eine IF-Bedingung dann bei Anzahl > 0 das Kommando ON abgesetzt bzw. mit else bei Anzahl = 0 das Kommando OFF. Aber wie setzte ich das um?
Die Fragen mögen sich blöd anhören weil es ja funktioniert aber ich will es einfach verstehen.
Viele Grüße,
Andreas
Kommentar