Ankündigung

Einklappen
Keine Ankündigung bisher.

Group:Switch:SUM vs Group:Contact:SUM

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

    Group:Switch:SUM vs Group:Contact:SUM

    Ich stelle gerade mein System auf das „neue“ KNX binding um und habe hier bei den Contact-Items folgendes Problem

    [ERROR] [pse.smarthome.core.items.GenericItem] - Tried to set invalid state 2 (DecimalType) on item gWindowOpenClosed_GroundFloor of type ContactItem, ignoring it
    Das ganze deutet eigentlich darauf hin, dass ich unterschiedliche Item- Types zusammenaddieren will. Das komische ist allerdings:
    • Die verhalten ist wie gewünscht
    • Bei gleicher Struktur mit switches erhalte ich der Fehlermeldung nicht.

    Der Aufbau ist wie folgt,
    • jedes Zimmer hat eine Gruppe vom typ „Group:Contact:OR(OPEN, CLOSED)“
    • Den gesamten Status der Wohnebene, ergibt sich aus der Summe der jeweiligen Zimmer „Group:Contact:SUM“
    Code:
    Group:Contact:SUM                                   gFirstFloor                     "Obergeschoss [(%d)]"                    <window>
    Group:Contact:OR(OPEN, CLOSED)        gFirstFloor_Kitchen       "Fenster Küche [(%d)]"                    <window>                (gFirstFloor)
    Group:Contact:OR(OPEN, CLOSED)        gFirstFloor_Living          "Fenster Wohnen-Essen [(%d)]"     <window>                (gFirstFloor)
    Nun könnte ich die Summe auch über „Group:Number:SUM“ bilden, jedoch wird dann der Gruppenstatus im icon nicht angezeigt, da statt OPEN oder CLOSED der jeweilige Zahlenwert verwendet wird.

    Da das Verhalten in den jeweils aktuellen Versionen (Stable, Test, Snapshot) auftritt frage ich mich nun, ob das ganze nur zufällig funktioniert oder ob am Binding etwas falsch läuft. Bei gleicher Version mit dem alten Binding habe ich die Fehlermeldung nicht.
    Hat jemand eine Idee?

    Beste Grüße
    Helge

    #2
    Wie willst Du OPEN und CLOSED summieren? Die Funktion OR (und das wird auch mit anderen logischen Funktionen so gehen) bildet im Label (!) die Summe der Items, die den ersten Status erfüllen (also bei OR(ON,OFF) die Menge der Items, die ON sind. Das Item selbst kann aber nur ON oder OFF (oder NULL) als Status halten. Eine Summe kannst Du nur in einem Number Item halten. Wenn Du die Summe haben willst, musst Du das über eine Rule erledigen, z.B. so:
    Code:
    rule "summieren über Gruppe"
    when
        Member of gGroup changed
    then
        myNumberItem.postUpdate(gGroup.members.filter[i | i.state==OPEN].size)
    end
    Jedes Mal, wenn ein Member der Gruppe gGroup seinen Status ändert, wird der Status von myNumberItem neu berechnet.

    Kommentar


      #3
      Besten Dank für die Erklärung Udo



      Kommentar

      Lädt...
      X