Rule für Fensterkontakt Status funktioniert nicht mehr

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
tommesd
Beiträge: 70
Answers: 0
Registriert: 15. Nov 2021 10:02

Rule für Fensterkontakt Status funktioniert nicht mehr

Beitrag von tommesd »

Hallo,
seit dem Update auf 4.0.4 funktioniert diese Rule nicht mehr.

Code: Alles auswählen

rule "update group status" 
when
    Member of gFenster_Schlafzimmer changed or
    Member of gFenster_Paul changed or
    Member of gFenster_Julia changed or
    Member of gFenster_Badezimmer changed or
    Member of gFenster_WC changed or
    Member of gFenster_Garage changed or
    Member of gFenster_Kueche changed or
    Member of gFenster_Esszimmer changed or
    Member of gFenster_Wohnzimmer changed or
    Member of gFenster_Buero changed or
    Member of gFenster_Waschkeller changed or
    Member of gFenster_Vorratskeller changed or
    Member of gFenster_Gaestezimmer changed or
    Member of gFenster_Hobbyraum changed
then
    logInfo("gwindow","Rule ausgelöst: {}",triggeringItem.name)

    val String strRaum = triggeringItem.name.split("_").get(1)                      // Format des Itemnamens: Fenster_Raum_weiteres

    val GroupItem g = gFenster_alle.members.filter[k|k.name.contains(strRaum)].head // Die Gruppe, welche die Rule getriggert hat
    logInfo("gwindow","Group Item: {}",g.name)
    val Integer intAnzahl = g.members.filter[i|i.state != "CLOSED"].size            // Anzahl der Fenster der Gruppe, die nicht geschlossen sind
    val zielStat = gFenster_alle_Status.members.filter[j|j.name.contains(strRaum)].head           // das Item der Gruppe gstate, welches zum Raum gehört
    val zielNum = gFenster_alle_Anzahl_offen.members.filter[j|j.name.contains(strRaum)].head           // das Item der Gruppe gnumber, welches zum Raum gehört
    logInfo("gwindow","Anzahl Itemname: {} ({})",zielNum.name,intAnzahl)
    logInfo("gwindow","Zustand Itemname: {} ({})",zielStat.name,if(intAnzahl > 0) OPEN else CLOSED)
    if(intAnzahl > 0)
        zielStat.postUpdate(OPEN)
    else
        zielStat.postUpdate(CLOSED)
    zielNum.postUpdate(intAnzahl)
end

Code: Alles auswählen

val GroupItem g = gFenster_alle.members.filter[k|k.name.contains(strRaum)].head // Die Gruppe, welche die Rule getriggert hat
Diese Zeile wird als fehlerhaft deklariert. Was muss da angepasst werden und wie?

Code: Alles auswählen

Type mismatch: cannot convert from Item to GroupItem(org.eclipse.xtext.xbase.validation.IssueCodes.incompatible_types)
Danke
Openhabian 4.0.4

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

Re: Rule für Fensterkontakt Status funktioniert nicht mehr

Beitrag von udo1toni »

Bitte ganz dringend: nicht zwanghaft nach einem Thread suchen, der irgendwie zum Thema passt, sondern auch auf das Alter des Threads achten und im Zweifel lieber einen neuen Thread erstellen, sonst kann die Anfrage gerne untergehen.

Bezüglich des Problems: Von welcher Vorversion sprechen wir denn? Die Fehlermeldung ist erklärbar, mein erster Tipp:

Code: Alles auswählen

val g = gFenster_alle.members.filter[k|k.name.contains(strRaum)].head
val Integer intAnzahl = (g as GroupItem).members.filter[i|i.state != "CLOSED"].size
Ob das funktioniert, weiß ich aber nicht.
Du könntest auch die Itemliste zunächst auf ITems filtern, die ein Goup Item darstellen:

Code: Alles auswählen

val g = gFenster_alle.members.filter[k|k.name.contains(strRaum) && k instanceof GroupItem].head
val Integer intAnzahl = (g as GroupItem).members.filter[i|i.state != "CLOSED"].size
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Answers: 0
Registriert: 15. Nov 2021 10:02

Re: Rule für Fensterkontakt Status funktioniert nicht mehr

Beitrag von tommesd »

Die Vorversion war die 3.4.2, Du hattest mir die Rule in dem alten Thread so schön gebaut und in der 3er Version lief sie auch. Nachdem ich jetzt endlich auf die 4 updaten konnte treten ein paar Problemchen auf. Ich teste es heute Nachmittag. Danke erstmal.
Openhabian 4.0.4

Antworten