Seite 1 von 1

Switch Status ON/OFF für dynamische Icons in OPEN/CLOSED umwandeln...

Verfasst: 7. Jan 2024 19:33
von curius
Hallo Leute!

Leider habe ich noch ein kleines (kosmetisches) Problem mit meiner openHAB Konfiguration.
Ich habe Fensterkontakte (Alarmanlage - Satel Binding), welche via Switch item in das System eingebunden wurden.
Es wird je nach Zustand, passend zum Switch item ein ON oder OFF als Ergebnis geliefert.

Da ich in meiner Sitemap nun die Icons für Fenster und Türen verwende, passen diese sich (je nach Zustand) leider nicht dynamisch an.
Ein geöffnetes Fenster erwartet ein OPEN und ein geschlossenes Fenster erwartet ein CLOSED.

Wie kann ich das Ergebnis eines Switch items (ON/OFF) in ein Ergebnis von einem Contact item transformieren (OPEN/CLOSED), sodass in der Sitemap die Standardsysmbole (Bsp.: door, window) sich auch bei Zustandsänderungen dynamisch verändern.

Derzeit zeige ich in der Sitemap meine Switch items nur als Text an und transformiere dabei die Anzeige - ON=geschlossen / OFF=offen
Wie schaffe ich es, dass die dynamischen Symbole auch mit den eigentlichen Switch items funktionieren...

Meine Konfiguration sieht wie folgt aus:
satel.things:

Code: Alles auswählen

Bridge satel:ethm-1:home [ host="192.168.1.80", refresh=5000 ]
Thing partition Haus [ id=1 ]
Thing zone zone4 [ id=4 ]
satel.items:

Code: Alles auswählen

Switch ET_Vio "Eingangstür [MAP(satel.map):%s]" (Satel, gverletzung) { channel="satel:zone:home:zone4:violation" }
house.sitemap:

Code: Alles auswählen

Text item=ET_Vio icon="frontdoor"
satel.map:

Code: Alles auswählen

ON=offen
OFF=geschlossen
NULL=kein Wert
UNDEF=undefiniert
-=-
Ich kenne zwar die Funktion einer JS Transformation - das mache ich im .things - File für meine MQTT Sensoren, weiß aber nicht, wie ich diese Transformation in diesem Fall hinzufügen könnte ;-(

Vielleicht geht es ja aber auch viel einfacher?
Dieses Script hätte ich soweit mal vorbereitet...

satel_get.js:

Code: Alles auswählen

(function(x) {
    var result = "";
    if (x == 'ON') {
        result="OPEN";
    }

    else {
        result="CLOSED";
    }
    return result;
})(input)
Vielleicht kann mir ja jemand von euch weiterhelfen...
Besten Dank!

Schöne Grüße
Christian

Re: Switch Status ON/OFF für dynamische Icons in OPEN/CLOSED umwandeln...

Verfasst: 7. Jan 2024 21:16
von PeterA
Also JS Transform sieht im Item bei mir dann so aus:

Code: Alles auswählen

Number burnworkmin "Brenner Laufzeit [JS(duration.js):%s]"  
In Deinem fall so:

Code: Alles auswählen

Switch ET_Vio "Eingangstür [JS(satel_get.js):%s]" (Satel, gverletzung) { channel="satel:zone:home:zone4:violation" }

Re: Switch Status ON/OFF für dynamische Icons in OPEN/CLOSED umwandeln...

Verfasst: 7. Jan 2024 22:01
von udo1toni
Nein. Es geht ja darum, den Status als OPEN/CLOSED zu erhalten.
Switch Items hben keinen Status OPEN/CLOSED, Du musst also statt der Switch Items zwingend Contact Items verwenden (alternativ ginge auch String, bringt Dir aber nur dann einen Vorteil, wenn der Channel OPEN/CLOSED/AJAR liefert (ajar=halboffen, angelehnt -> gekippt).
Du musst das Mapping statt im Label im Link platzieren:

Code: Alles auswählen

Contact ET_Vio "Eingangstür" (Satel, gverletzung) { channel="satel:zone:home:zone4:violation"[profile="transform:MAP", function="satel.map" ] }
und in satel.map

Code: Alles auswählen

ON=OPEN
OFF=CLOSED
Anschließend kannst Du im Label (oder besser im state Description Pattern) noch das Mapping nach deutsch einrichten, damit aus OPEN offen und auch CLOSED geschlossen wird.

Re: Switch Status ON/OFF für dynamische Icons in OPEN/CLOSED umwandeln...

Verfasst: 8. Jan 2024 00:05
von curius
Hallo udo1toni!

Danke, das war sofort die Lösung...
Ich wusste leider nicht, dass ich mir den Item Typ wirklich "auswählen" kann :o
In der Binding Doku sind diese Channels als Switch angegeben, bzw. in den Beispielen als Switch Item implementiert.
Dachte bis heute, dass dies seitens Binding so vorgegeben ist - Sorry...

Aber dein Lösungsvorschlag hat sofort funktioniert - Danke, jetzt bin ich wieder schlauer :D

Grüße
Christian

Re: Switch Status ON/OFF für dynamische Icons in OPEN/CLOSED umwandeln...

Verfasst: 8. Jan 2024 07:59
von udo1toni
Grundsätzlich musst Du schon immer den passenden Itemtyp wählen, aber es gibt immer ein, zwei Tricks, um doch ans Ziel zu kommen, das Profile ist eine Möglichkeit (ohne eine Rule schreiben zu müssen)...