ich habe bei mir an der Tür ein GT4D, welches verschiedene Status anzeigt, z.B. ob auch alle Lichter aus sind.
Da ich mehr als zwölf Lichter habe und die LEDs eines Moduls daher nicht reichen, löse ich das aktuell über so eine LED-Kaskade in mehreren Modulen. Funktioniert hervorragend, ist aber absolut das Gegenteil von wartungsfreundlich oder übersichtlich.
Ich sehe mit openHAB eine Lösungsmöglichkeit, die ich folgendermaßen umsetzen wollte:
Meine Lampen habe ich alle in der (aktiven) Gruppe gLicht zusammengefasst:
Items:
Code: Alles auswählen
//Lichtgruppe
Group:Switch:OR(ON, OFF) gLicht "Licht [%d]" (All)
//Licht
Switch EG_Arbeit_Licht "EG Arbeitszimmer" (gLicht, gEG_Arbeit) {lcn="[lcndemo:OUTPUT_STATUS.0.M010.2], [ON:lcndemo:ON.0.M010.2.0s], [OFF:lcndemo:OFF.0.M010.2.0s]"}
Switch EG_KiZi_Licht "EG Kinderzimmer" (gLicht, gEG_KiZi) {lcn="[lcndemo:OUTPUT_STATUS.0.M010.1], [ON:lcndemo:ON.0.M010.1.0s], [OFF:lcndemo:OFF.0.M010.1.0s]"}
[...]
Sitemap:
Code: Alles auswählen
Frame label="Uebersicht" {
Group item=gLicht
}
Das klapt schonmal sehr gut, ich sehe im Browser / der App genau, wie viele Lampen noch an sind und das Symbol ändert sich, sobald nix mehr an ist. (zentral-aus setze ich in einer anderen Funktion um. Hier gehts erstmal nur ums anzeigen.)
Jetzt möchte ich eine LED im Modul setzen, damit auch das GT4D was von dem Status mitbekommt, z.B. "ALLE Lampen AUS -> LED 3 in Modul 19 AUS / NICHT ALLE Lampen AUS -> LED 3 in Modul 19 AUS.
Das habe ich in mehreren Versionen über eine Rule probiert, bislang ohne Erfolg:
Code: Alles auswählen
import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
rule "Lichtstatus prüfen"
when
Item gLicht received update
then
if (gLicht.members.filter(s | s.state > 0).size > 0) {
sendCommand (IND_Lichtstatus, OFF)
}
else {
sendCommand (IND_Lichtstatus, ON)
}
end
Könnt Ihr mir helfen? Was mach ich denn falsch?
Das Item IND_Lichtstatus hab ich natürlich vorher in den Items angelegt:
Code: Alles auswählen
Switch IND_Lichtstatus "LED Lichtstatus [%d]" {lcn="[lcndemo:LED_STATE.0.M019.3], [ON:lcndemo:LED.0.M019.3.ON], [OFF:lcndemo:LED.0.M019.3.OFF]"}
Würde mich freuen, wenn Ihr mir helfen könnt!
Schöne Grüße,
Simon