Ankündigung

Einklappen
Keine Ankündigung bisher.

Logische Operationen bei Gruppen (z.B. Group:Contact:??)

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

    Logische Operationen bei Gruppen (z.B. Group:Contact:??)

    Hallo Forum,

    habe in meinem Projekt verwende ich eine Gruppe in der alle Fensterkontakte zusammengefasst sind (Syntax aus dem Demo entnommen).

    Code:
    Group:Contact:OR(OPEN, CLOSED)        Fenster     "Status Fenster [(%d)]"                <contact>        (All)
    Nun möchte ich in der Gruppe nur die Fenster anzeigen die offen sind.

    Hierzu habe ich den Befehl wie folgt geändert:

    Code:
    Group:Contact:OR(OPEN)        Fenster     "Status Fenster  [(%d)]"                <contact>        (All)
    Wodurch ich folgenden Fehler erhalten habe:

    22:54:39.465 ERROR o.o.m.i.i.GenericItemProvider[:174] - Group function 'OR' requires two arguments. Using Equality instead.
    22:54:39.465 ERROR o.o.m.i.i.GenericItemProvider[:181] - Group function 'NOT AND' requires two arguments. Using Equality instead.

    Wie sieht der Befehl für Equality aus?

    Gruß
    mepi0011

    #2
    Ohne in die Doku zu schauen, vermutlich EQ ?

    Kommentar


      #3
      hm, dem source code der funktion nach müsste es theoretisch so gehen:

      Code:
      Group:Contact:(OPEN)        Fenster     "Status Fenster  [(%d)]"

      Kommentar


        #4
        Hallo fanta2k,

        vielen Dank für die Antwort. Leider entspricht das Ergebnis nicht dem erwarteten, siehe beigefügtem Bild.

        In der Gruppe wird immer noch alles angezeigt und die Übersicht summiert nicht die offenen Fenster. ist das ein Bug?

        Außerdem erhalte ich folgende Warnung:

        07:14:19.777 ERROR o.o.m.i.i.GenericItemProvider[:167] - Group function 'AND' requires two arguments. Using Equality instead.
        07:14:19.777 ERROR o.o.m.i.i.GenericItemProvider[:174] - Group function 'OR' requires two arguments. Using Equality instead.
        07:14:19.777 ERROR o.o.m.i.i.GenericItemProvider[:181] - Group function 'NOT AND' requires two arguments. Using Equality instead.

        Die Gruppe soll nur die offenen Fenster anzeigen und die geschlossenen Fenster ausblenden.

        Vielen Dank im Voraus!

        Gruß
        mepi0011
        Angehängte Dateien

        Kommentar


          #5
          habe openhab noch nicht benutzt und doku hab ich dazu auch keine gefunden

          07:14:19.777 ERROR o.o.m.i.i.GenericItemProvider[:167] - Group function 'AND' requires two arguments. Using Equality instead.
          07:14:19.777 ERROR o.o.m.i.i.GenericItemProvider[:174] - Group function 'OR' requires two arguments. Using Equality instead.
          07:14:19.777 ERROR o.o.m.i.i.GenericItemProvider[:181] - Group function 'NOT AND' requires two arguments. Using Equality instead.
          das bedeutet nur das du irgendwo AND() verwendest aber mit nur einem Argument, AND,OR,NOT AND brauchen aber mindestens 2 Werte.

          Notfalls probier mal

          AND(OPEN,OPEN)

          Kommentar


            #6
            Itemgruppen sind statische Konstrukte, diese können ihren Inhalt nicht abhängig von Itemstates verändern.

            In Regeln lässt sich aber eine Gruppe natürlich entsprechend filtern (z.B. "Windows.members.filter(x | x.state==OPEN)"), um daraus irgendwelche Aktionen abzuleiten.

            Um in Sitemaps dynamisch vom Itemstate Inhalte anzuzeigen, wurde bereits ein Feature Request eingetragen: Issue 118 - openhab - Dynamic Sitemap - empowering the smart home - Google Project Hosting

            Grüße,
            Kai

            Kommentar


              #7
              In Regeln lässt sich aber eine Gruppe natürlich entsprechend filtern (z.B. "Windows.members.filter(x | x.state==OPEN)"), um daraus irgendwelche Aktionen abzuleiten.
              Wie würde das mit den Regeln genau aussehen bzw. wie müsste ich die Datei .rules und .sidemap aussehen?

              z.B. habe ich folgende Items (Test.items):

              /* Fenster */
              Contact Fenster_UG_Kueche "Küche [MAP(de.map):%s]" (UG_Kueche, Fenster) {knx="<1/3/21"}
              Contact Fenster_UG_Kinderzimmer "Kinderzimmer / Flur UG [MAP(de.map):%s]" (UG_Bad, Fenster) {knx="<1/3/13"}
              Contact Fenster_UG_WC "WC [MAP(de.map):%s]" (UG_WC, Fenster) {knx="<1/3/12"}
              Contact Fenster_UG_Schlafzimmer "Schlafzimmer [MAP(de.map):%s]" (UG_Schlafzimmer, Fenster) {knx="<1/3/35"}
              Contact Fenster_UG_Waschkueche "Hauswirtschaftsraum [MAP(de.map):%s]" (UG_Waschkueche, Fenster) {knx="<1/4/22"}
              Contact Fenster_Keller_Trinken "Kellerfenster [MAP(de.map):%s]" (Kel_Keller, Fenster) {knx="<1/4/26"}

              Gemeinsame Gruppe der Fensterkontakte ist "Fenster".

              Gruß
              mepi0011

              Kommentar


                #8
                was genau möchtest Du denn machen? Der Inhalt der Sitemap lässt sich, wie Kai schon bemerkte, nicht dynamisch ändern. Geht es nun um die Anzeige der richtigen Anzahl offener Fenster?

                Gruß,

                Thomas E.-E.
                Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                Kommentar

                Lädt...
                X