Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von udo1toni »

Sähe dann so aus... :)

Code: Alles auswählen

// globale Variablen werden zu Beginn der Datei definiert!
var nLights = 0
var nOnLights = 0

rule "Telegramm Status Lampen anfordern"
when
    Item Telegram_Last_Text received update "Status Lampen"
then
    val StringBuilder sb = new StringBuilder
    nLights = GR_Lichtdr.members.size
    nOnLights = GR_Lichtdr.members.filter[ i | i.state == ON].size
    if(nOnLights == 0) {
        sb.append("Alle Lichter sind ausgeschaltet")
    } else if(nLights == nOnLights) {
        sb.append("Alle Lichter sind eingeschaltet")
    } else {
        GR_Lichtdr.members.filter[ i | i.state == ON].forEach[j,k | 
            if (k > 0) {
                if(k < nOnLights - 1)
                    sb.append(", ")
                else
                    sb.append(" und ")
            }
            sb.append(j.name) 
        ]
        sb.append((if(nOnLights > 1)" sind" else " ist") + " eingeschaltet")
        GR_Lichtdr.members.filter[ i | i.state == OFF].forEach[j,k | 
            if (k > 0) {
                if(k < nLights - 1 - nOnLights)
                    sb.append(", ")
                else
                    sb.append(" und ")
            }
            sb.append(j.name) 
        ]
        sb.append((if(nLights - nOnLights > 1)" sind" else " ist") + " ausgeschaltet")
    }
    sb.append(".")
    logInfo("logger","sb hat den Wert {}",sb)
    val telegramAction = getActions("telegram","telegram:telegramBot:bot1")
    telegramAction.sendTelegram(sb.toString)
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
djuscha
Beiträge: 130
Registriert: 14. Mai 2016 00:12
Answers: 0

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von djuscha »

Ach Udo bu bist ja richtig Klasse !!! Die Herausforderungen geben dir ja keine Ruhe ;) !!Muss ich testen wenn ich zu Hause bin.Vielen Dank!

Benutzeravatar
djuscha
Beiträge: 130
Registriert: 14. Mai 2016 00:12
Answers: 0

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von djuscha »

So hab jetzt getestet, Wenn alle Lampen au oder an sind ist alle ok.Es kommt die Meldung Alle Lichter an oder alle Lichter aus. Das ist schon mal Super.
Erste Abfrage dauert fast eine Minute ? danach geht schneller .wenn nicht alle Lampen an sind dann kommt Meldung

Code: Alles auswählen

sb hat den Wert Gosund1Light3_Toggle, FDSwitch8 sind eingeschaltetLight4_ToggleLight6_Toggle, Light8_Toggle sind ausgeschaltet.
Gosund1 ist bei mir

Code: Alles auswählen

Switch	Gosund1						"Steckdose LED Tor"	
kann man das irgentwie ändern das nicht der Ithemname sondern Bezeichnung angezeigt wird?
Wie gesagt mit Schalter geht das schon muss noch mit Dimmer ausprobieren
Und hinter dem ersten Ithemname ist keine Komma?

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von peter-pan »

...ohne Gewähr ;) :
j.name -> j.label
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
djuscha
Beiträge: 130
Registriert: 14. Mai 2016 00:12
Answers: 0

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von djuscha »

peter-pan hat geschrieben: 7. Jul 2020 11:45 ...ohne Gewähr ;) :
j.name -> j.label
Jaaa das war das .VielenDank @peter-pan !
das mit keine Komma nach dem ersten Ithem verstehe ich noch nicht

Code: Alles auswählen

 sb hat den Wert Steckdose LED TorBlumenlicht1 , Lichtvorne3 sind  eingeschaltet .Lichtvorne1 Lichtvorne2 , Licht Tannen sind  ausgeschaltet .

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von peter-pan »

djuscha hat geschrieben: 8. Jul 2020 11:22 das mit keine Komma nach dem ersten Ithem verstehe ich noch nicht
Wenn ich das richtig verstehe kommt das Komma erst ab "2", da "> 1" abgefragt wird. Ich weiss aber nicht, ob ">=" schon reicht, das weiss Udo sicherlich besser.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
djuscha
Beiträge: 130
Registriert: 14. Mai 2016 00:12
Answers: 0

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von djuscha »

peter-pan hat geschrieben: 8. Jul 2020 12:06
djuscha hat geschrieben: 8. Jul 2020 11:22 das mit keine Komma nach dem ersten Ithem verstehe ich noch nicht
Wenn ich das richtig verstehe kommt das Komma erst ab "2", da "> 1" abgefragt wird. Ich weiss aber nicht, ob ">=" schon reicht, das weiss Udo sicherlich besser.
geht nicht Syntax Fehler :(

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von peter-pan »

djuscha hat geschrieben: 8. Jul 2020 12:23 geht nicht Syntax Fehler
??? ich meinte natürlich ">= 1". Aber wenn ich mir die Regel so anschaue wird das noch nicht ganz reichen (Vielleicht für einen ersten Versuch), aber ich meine, da müsste die Variable "nOnLights" noch ins Spiel (Vergleich) gebracht werden. Leider verstehe ich die Regel (noch) nicht ganz.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
djuscha
Beiträge: 130
Registriert: 14. Mai 2016 00:12
Answers: 0

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von djuscha »

peter-pan hat geschrieben: 8. Jul 2020 12:31
djuscha hat geschrieben: 8. Jul 2020 12:23 geht nicht Syntax Fehler
??? ich meinte natürlich ">= 1". Aber wenn ich mir die Regel so anschaue wird das noch nicht ganz reichen (Vielleicht für einen ersten Versuch), aber ich meine, da müsste die Variable "nOnLights" noch ins Spiel (Vergleich) gebracht werden. Leider verstehe ich die Regel (noch) nicht ganz.
Top das geht !!
Vielen Dank!

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Möglichkeit der Abfrage welche Lampen eingeschaltet sind per Telegramm

Beitrag von peter-pan »

...Aber Achtung, wenn tatsächlich nur 1 Licht an oder aus ist, gibt's wahrscheinlich auch ein Komma!!
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten