Ankündigung

Einklappen
Keine Ankündigung bisher.

Brauche Regel für 2 String items mit

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Brauche Regel für 2 String items mit

    Habe 2 Homematic Fensterkontakte (String Item)
    in einem Fenster die "closed" "open" als Status Rückmelden wie müsste dazu eine Regel sein,
    die Sagt wenn Kontakt 1 offen und Kontakt 2 geschlossen
    "Gekippt" gesagt wird
    Wenn beide Offen natürlich "Offen"
    und wenn beide geschlossen "geschlossen las Rückmeldung kommt

    Hoffe Ihr könnt mir Helfen!!!
    Zuletzt geändert von JoyriderLP; 16.08.2019, 15:59.

    #2
    Erst mal wäre die Frage, warum Du String Items verwendest, wenn es doch das Contact Item für so etwas gibt.
    Eine solche Rule sähe aber so aus:


    Code:
    // Contact myContact_1 {homematic...}
    // Contact myContact_2 {homematic...}
    // String myProxyItem ohne Binding
    
    rule "proxy Item setzen"
    when
        Item myContact_1 changed or
        Item myContact_2 changed
    then
        if(myContact_1.state == OPEN && myContact_2.state == OPEN) {
            myProxyItem.postUpdate("OPEN")
        } else if(myContact_1.state == OPEN && myContact_2.state == CLOSED) {
            myProxyItem.postUpdate("AJAR")
        } else
            myProxyItem.postUpdate("CLOSED")
        }
    end
    oder alternativ mit drei String Items:

    Code:
    // String myContact_1 {homematic...}
    // String myContact_2 {homematic...}
    // String myProxyItem ohne Binding
    
    rule "proxy Item setzen"
    when
        Item myContact_1 changed or
        Item myContact_2 changed
    then
        if(myContact_1.state == "OPEN" && myContact_2.state == "OPEN") {
            myProxyItem.postUpdate("OPEN")
        } else if(myContact_1.state == "OPEN" && myContact_2.state == "CLOSED") {
            myProxyItem.postUpdate("AJAR")
        } else
            myProxyItem.postUpdate("CLOSED")
        }
    end
    Warum nun nutze ich die englischen Begriffe? Weil Du dann in der Sitemap einfach
    Code:
    Text item=myProxyItem icon="window"
    schreiben kannst. Das Icon ändert sich nun jeweils auf das passende Icon.
    Wenn Du trotzdem eine textliche Anzeige haben willst, ist das auch kein Problem, dafür gibt es das mapping.
    Code:
    Text item=myProxyItem label="Fenster ist [MAP(window.map):%s]" icon="window"
    Und window.map sieht so aus:
    Code:
    OPEN=offen
    CLOSED=geschlossen
    AJAR=gekippt

    Kommentar

    Lädt...
    X