Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Anzeige von Gruppenstatus

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

    - √ - Anzeige von Gruppenstatus

    Moin.
    Ich dachte eigentlich, dass ich länger ohne Rückfrage auskommen würde, aber irgendwie habe ich gerade einen Knoten im Kopf

    Aktuell bastel ich gerade an einem eigenen Design für meine Visu (siehe Bild). Als Backend verwende ich openHAB.

    Ich würde nun gerne in den einzelnen pagejumps noch Statusinformationen anzeigen. Zum Beispiel beim Bad, ob dort Licht eingeschaltet ist.

    In der .items von openHAB ist das hier eingestellt:
    Code:
    Group:Number                    LightsBath        "[(%d)]"    (Status)
    Switch Light_FF_Bath_Ambient    "Ambiente"        (FF_Bath, Lights, LightsBath, AmbientLights)    { knx="2/0/0" }
    Switch Light_FF_Bath_Main       "Deckenlicht"     (FF_Bath, Lights, LightsBath)    { knx="2/0/1" }
    Switch Light_FF_Bath_Mirror     "Spiegelschrank"  (FF_Bath, Lights, LightsBath)    { knx="2/0/2" }
    In meinem jugendlichen Leichtsinn dachte ich nun, dass ich den Wert von
    Code:
    LightsBath
    nun einfach so in der visu_config.xml abfragen könnte:
    Code:
    <info>
      <address transform="OH:Number" mode="read">LightsBath</address>
    </info>
    Leider bekomme ich als Wert "uninitialized" bzw. "undefined" ausgegeben.
    Die Lösung ist bestimmt ganz einfach aber leider komme ich nicht drauf ...

    Könnt ihr mir da weiterhelfen?
    Angehängte Dateien

    #2
    Öööömmm... AFAIK kann das Pagejump Widget keine Werte anzeigen...
    Gruss Patrik alias swiss

    Kommentar


      #3
      Der info-Bereich ist auch nicht direkt im pagejump drin, sondern in einem group:

      Code:
      <group nowidget="true" class="item">
        <group nowidget="true" class="item-label">
          <pagejump target="Bad" name="Bad">
            <label><icon name="scene_bath"/></label>
          </pagejump>
        </group>
        <group nowidget="true" class="item-status">
          <info>
            <address transform="OH:Number" mode="read">LightsBath</address>
          </info>
        </group>
      </group>
      Prinzipiell funktioniert das schon, nur werden eben keine "richtigen" Daten angezeigt.

      Kommentar


        #4
        Hmm.. So sollte es eigentlich gehen. Also an der CV XML Syntax kann ich nix falsches erkennen. Leider kenne ich mich mit OH als Backend überhaubt nicht aus. Eventuell ist da irgend wo ein Problem mit Transform oder sonnst was. Wobei unknown für gewöhnlich bedeutet dass die Daten nicht gelesen werden können. Es kann also auch an OH liegen dass dort der Wert unter diesem Namen nicht zur Verfügung steht.
        Gruss Patrik alias swiss

        Kommentar


          #5
          Bin da jetzt nicht so der Experte bei den group-items in openhab aber müsste das nicht eine Switch-Group werden also
          Code:
          Group:Switch:OR(ON, OFF) ...
          Dann kannst Du Dir einen Switch in die Cometvisu einbauen und damit zumindest sehen ob mindestens 1 Lampe in der Gruppe an ist und auch alle Lampen an/ausschalten.

          Ich weiß, dass das nicht das ist was Du möchtest aber eine Anzeige der eingeschalteten Lampen als Zahl ist so nicht möglich. Dazu müsste das CometVisu-Protokoll erweitert werden, da man zusätzlich zur Statusabfrage eines Items auch noch übermitteln müsste, dass man diesen Wert nun gerne als Zahl haben möchte (oder so ähnlich) und natürlich müsste auch das openhab binding umprogrammiert werden.

          Als spontane Idee: Versuch doch mal Dir ein zusätzliches Number Item hinzuzufügen (z.B. LightsOn) und dieses dann über eine Rule zu aktualisieren immer wenn sich in der Group was ändert. Diese Zahl kannst Du dann als info-widget in der CometVisu anzeigen lassen.
          Ist sicherlich umständlich aber der einzig mir bekannte Weg Dein vorhaben umzusetzen.
          Gruß
          Tobias

          Kommentar


            #6
            Zitat von peuter Beitrag anzeigen
            Bin da jetzt nicht so der Experte bei den group-items in openhab aber müsste das nicht eine Switch-Group werden ... Dann kannst Du Dir einen Switch in die Cometvisu einbauen und damit zumindest sehen ob mindestens 1 Lampe in der Gruppe an ist und auch alle Lampen an/ausschalten.
            Hm, interessante Idee. Ich will ja auch nicht wirklich wissen, wie viele Lampen angeschaltet sind, sondern ob überhaupt eine leuchtet. Dementsprechend passt das schon zu meinem Wünschen.

            Ich hab jetzt einfach mal in openHAB den Gruppen-Switch definiert und frage den dann so ab:
            Code:
            <info>
              <address transform="OH:Number">LightsBath</address>
            </info>
            Damit bekomme ich dann schön "ON/OFF" als Status
            Danke!

            Zitat von peuter Beitrag anzeigen
            Als spontane Idee: Versuch doch mal Dir ein zusätzliches Number Item hinzuzufügen (z.B. LightsOn) und dieses dann über eine Rule zu aktualisieren immer wenn sich in der Group was ändert. Diese Zahl kannst Du dann als info-widget in der CometVisu anzeigen lassen.
            Hui, Rules. Da hatte ich mich bisher noch überhaupt nicht herangewagt ...

            Kommentar


              #7
              Da hast Du jetzt aber ein verstecktes Feature gefunden, korrekt sollte es lauten:
              Code:
              <info>
                 <address transform="OH:string">LightsBath</address>
              </info>
              Wenn Du weiterhin ON/OFF haben möchtest (number im transform hat da nichts zu suchen, funktioniert nur per Zufall), oder
              Code:
              <info>
                 <address transform="OH:switch">LightsBath</address>
              </info>
              Dann gibt er 1/0 aus.

              Und wenn Du das Ganze noch schalten möchtest eben:
              Code:
              <switch>
                 <address transform="OH:switch">LightsBath</address>
              </switch>
              Gruß
              Tobias

              Kommentar


                #8
                Mit OH kenne ich mich auch nicht aus... Aber in der CV kannst Du noch ein Mapping anlegen, dass die Werte des Backends auf andere Werte Mappt.

                Also z.B. eine 0 auf "Aus" und alles größer/gleich 1 auf "An".
                TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                Kommentar


                  #9
                  Danke, jetzt funktioniert es.
                  Code:
                          <group nowidget="true" class="item">
                            <group nowidget="true" class="item-label">
                              <pagejump target="Bad" name="Bad">
                                <label>
                                  <icon name="scene_bath"/>
                                </label>
                              </pagejump>
                            </group>
                            <group nowidget="true" class="item-status">
                              <info mapping="Group_Status_Lights" styling="Group_Status_Lights" mode="read" align="right">
                                <address transform="OH:String">LightsBath</address>
                              </info>
                            </group>
                          </group>
                  Und als Mapping/Styling:
                  Code:
                      <mappings>
                        <mapping name="Group_Status_Lights">
                          <entry value="OFF"></entry>
                          <entry value="ON"></entry>
                        </mapping>
                      </mappings>
                      <stylings>
                        <styling name="Group_Status_Lights">
                          <entry value="OFF">inactive light-light</entry>
                          <entry value="ON">active light-light dim-100</entry>
                        </styling>
                      </stylings>
                  Die Icons für den Status habe ich dann über ein Icon-Font realisiert. So kann ich einfach über die Klassen "inactive" und "active" die Farbe ändern (oder das Icon, wenn ich möchte).
                  Angehängte Dateien

                  Kommentar

                  Lädt...
                  X