Ankündigung

Einklappen
Keine Ankündigung bisher.

zwei Lampen im GUI "zusammen fassen"

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

    zwei Lampen im GUI "zusammen fassen"

    Moin,

    im OpenHab Demo gibt's unter "First Floor -> Bathroom" zwei Lampen, nämlich "Ceiling" und "Mirror". Hab ich bei mir genauso. Jetzt würde ich aber die beiden Switches gerne in einen zusammen fassen. Also quasi nur noch einen Switch "Licht", der dann aber beide Lampen per KNX ein/aus schaltet.

    Genauso hab ich in manchen Räumen mehrere Heizkreise, oder mehrere Rollläden, die ich nicht einzeln, sondern immer in der Gruppe schalten möchte. Ich würde aber gerne das GUI unverändert haben, also die offiziellen "Switch" und "Rollershutter" Controls verwenden.

    Läßt sich das auf einfache Art und Weise lösen?

    Ich krieg's irgendwie nicht hin. Im SiteMap der Demo wird ja das GUI nur in der obersten Ebene definiert. Das GUI für "First Floor -> Bathroom" ergibt sich ja automatisch aus den Items. Da ist mir jetzt nicht klar, wie ich mehrere Items in ein GUI-Element zusammen fassen kann.

    Ist ja doch irgendwie nicht der Sinn der Sache, daß ich dann z.B. im Wohnzimmer plötzlich 10 einzelne Switches für die Decken-Spots habe, wenn ich die doch immer zusammen schalten möchte?

    #2
    Da gibt es mehrere Möglichkeiten. Ich habe so etwas überwiegend in KNX gelöst. Beispiel: Zwei Lampen, Deckenlicht und Spiegel sollen zusammen geschaltet werden. Mit KNX-Bordmitteln kannst du das so lösen:

    Du definierst eine zus. KNX-Gruppenadresse für "DeckeundSpiegellicht" und hängst beide Aktorausgänge in diese Gruppe. In Openhab konfigurierst du dann nur das eine Item für diese eine KNX-Gruppenadresse.


    Du kannst aber auch in Openhab Gruppen definieren und beide Leuchten in dieser Openhab-Group zusammenfassen. Diese Gruppe kannst du dann schalten. Habe jetzt aber die Syntax nich im Kopf. Gibt auf jeden Fall ein Beispiel in der OpenHAB-Demo

    Gruß,
    thoern

    Kommentar


      #3
      Hmmmm, danke, das ist eine gute Idee, daß über KNX zu lösen!

      Es gibt im OpenHab-Demo ein "All Lights" GUI-Element mit einem "All Off"-Knopf. Aber das ist kein übliches Switch-GUI-Element mit so einem runden links/rechts-Schieber, sondern ein einfacher beschrifteter Knopf, also nicht so ganz das, was ich mir vorgestellt habe.

      Kommentar


        #4
        Mit Rules geht es in OH natürlich auch.

        Du definierst zus. zum Dekenlicht-Switch-Item und dem Spiegellicht-Switch-Item ein Switch-Item "LichtundSpiegel" in OH. Dann schreibst du eine Rule, die beim Ein-/Ausschalten von "LichtundSpiegel" ein ON/OFF-Signal an beide Items, also and das Deckenlichtitem und Spiegellichtitem sendet.

        Gruß

        Kommentar


          #5
          Hmmm, aber dann sind die beiden Switches für Deckenlicht und Spiegel immer noch sichtbar, oder nicht? Oder lassen die sich im GUI irgendwie verstecken?

          Hab gerade mal versucht, ein "Dummy"-Rollershutter-Element zu erstellen, ohne direktes KNX-Binding, nur als GUI-Element, um darauf dann Rules aufzusetzen. Aber die Rules klappen damit nicht. Weder bei "received command", noch "received update" noch "changed" passiert irgendwas. Gibt's da irgend nen Trick?

          Kommentar


            #6
            Zitat von madshi Beitrag anzeigen
            Hmmm, aber dann sind die beiden Switches für Deckenlicht und Spiegel immer noch sichtbar, oder nicht? Oder lassen die sich im GUI irgendwie verstecken?
            Du musst deine Sitemap dann entpsrechend aufbauen, so das nur das Sammelitem sichtbar ist. Das kann man machen.


            Zitat von madshi Beitrag anzeigen
            al versucht, ein "Dummy"-Rollershutter-Element zu erstellen, ohne direktes KNX-Binding, nur als GUI-Element, u
            Hab gerade mm darauf dann Rules aufzusetzen. Aber die Rules klappen damit nicht. Weder bei "received command", noch "received update" noch "changed" passiert irgendwas. Gibt's da irgend nen Trick?
            Doch das funktioniert. Kann vielleicht heute Abend ein Bespiel posten. Habe mehrere solche Sachen im Einsatz.


            Dennoch kann es sinnvoller sein, das auf KNX-Ebene, wie weiter oben beschrieben, zu lösen. Habe ich auch häufig so gemacht. Kommt auch ein wenig auf den Anwendungsfall drauf an.

            Gruß, thoern

            Kommentar


              #7
              Ein Beispiel eines "Dummy"-Switch- oder -Rollershutter-GUI-Elements, welches ohne direktes Binding dann per Rules etwas macht, wäre sehr interessant!

              Kann gut sein, daß ich das letztendlich per KNX löse, aber es kann ja nicht schaden, beide Varianten zur Verfügung zu haben und zu verstehen.

              Danke!

              Kommentar


                #8
                Gibt natürlich noch die Lösung, zwei Lampen, die immer zusammengeschaltet werden sollen, elektrisch an denselben Aktorkanal zu hängen. Geht aber nur, wenn sie sich im selben Stromkreis befinden und damit an der selben Sicherung hängen.

                Aber umverdrahten wirst du wohl eher nicht wollen.....

                Kommentar


                  #9
                  Naja, es geht ja nicht nur um Lampen, sondern auch um Rollläden und Heizkreise usw. Geht mir eher darum, die GUI-Konfiguration bei openHab noch besser zu durchschauen.

                  Kommentar


                    #10
                    Hallo,

                    zwar etwas verpätet, dafür kommt jetzt ein schönes Beispiel.

                    Ich habe mir in OpenHAB eine Ansicht für Rollo-Zentralfunktionen gebastelt (s. Screenshot).
                    In diesem Beispiel gehe ich auf das erste Widget "Beschattung" ein.

                    Hinter Beschattung verbirgt sich so ein Pseudo-Item, welches kein Binding enthält:

                    items-file
                    Code:
                    Switch Beschattung                      "Beschattung"        <rollershutter> (RolloZentralfunktion)
                    
                    Rollershutter Rollo_EG_Bad              "EG Bad [%d %%]"                (EG_Bad, Rollos)                { knx="2/3/2, 2/3/3, 2/3/5+<2/3/4" }
                    Rollershutter Rollo_KG_Hobbyraum        "KG Hobbyraum [%d %%]"          (KG_Hobbyraum, Rollos)          { knx="0/4/3, 0/4/4, 0/4/6+<0/4/5" }
                    ....
                    Drückt man den Button "Jetzt" wird das Item "Beschattung" auf "ON" gesetzt:

                    sitemap-Auszug:
                    Code:
                                            Group item=RolloZentralfunktion   label="Zentralfunktionen"   icon="rollershutter" {
                                                    Switch item=Beschattung mappings=[ON="Jetzt"]
                                                    Switch item=Rolloautomatik
                                                     ......
                                             }
                    Sobald das Item "Beschattung" "ON" gesetzt wurde, wird das Skript "beschattung.script" aufgerufen:

                    Rule-File:
                    Code:
                    rule "Beschattung"
                            when
                                    Item Beschattung received command ON
                            then
                                    callScript("beschattung.script")
                                    createTimer(now.plusSeconds(1)) [| Beschattung.sendCommand(OFF) ]
                    end
                    Und die im "beschattung.script" aufgeführten Rollos werden zwecks Beschattung 70% geschlossen:

                    beschattung.script:
                    Code:
                    // Fahre gelistete Rollos in Beschattungsposition
                    Rollo_KG_Hobbyraum.sendCommand(70)
                    Rollo_EG_Bad.sendCommand(70)
                    Rollo_DG_Bad.sendCommand(70)
                    Rollo_EG_Wohnzimmer_Ost.sendCommand(70)
                    Rollo_EG_Terrassentuer.sendCommand(70)
                    Rollo_EG_Esszimmer.sendCommand(70)
                    Rollo_EG_Kueche_Nord_West.sendCommand(70)
                    Rollo_DG_Schlafen_Sued.sendCommand(70)
                    ...
                    Nettes Gimmik: Sobald "Jetzt" betätigt wird, wird in der Ansicht das Wort "Jetzt" mit hellblauer Farbe für eine Sekunde hinterlegt. Der createTimer im Rule-File sorgt dafür, dass nach einer Sekunde das Item "Beschattung" wieder auf "OFF" gesetzt wird. Damit verschwiedet das hellblau hinterlegte "Jetzt" wieder und "Jetzt" wird wieder ohne hellblaue Hinterlegung wie im Screenshot angezeigt.

                    PS: Das Script ist nicht unbedingt notwendig. Ich hätte die dort enthaltenen Items mit ihren Methoden auch direkt im Rule-File aufführen können.

                    Gruß,
                    thoern
                    Angehängte Dateien

                    Kommentar


                      #11
                      Vielen lieben Dank für das ausführliche Beispiel! Das gucke ich mir mal in Ruhe an, da sind ein paar gute Ideen drin!

                      Es ist aber immer noch nicht so ganz das, was ich mir gewünscht habe. Du hast ja einen "Jetzt"-Knopf verwendet, über die "Mappings"-Funktion. Auf dem Weg kriege ich das auch hin. Aber schaffst Du das auch, statt des "Jetzt"-Knopfs ein offizielles Switch- oder Rollershutter-GUI-Element zu verwenden, wie die auf diesem Screenshot:



                      Ich kriege es nicht hin, so ein offizielles "0/1"-Switch-GUI-Element oder so ein "< x >" Rollershutter-GUI-Element ohne Binding einzubauen, und dann auf dessen Events per Rules zuzugreifen. Die Rules werden dann bei mir einfach nicht aufgerufen bzw die Events nicht ausgelöst. Verstehst Du, was ich meine?

                      Kommentar


                        #12
                        Zitat von madshi Beitrag anzeigen
                        Aber schaffst Du das auch, statt des "Jetzt"-Knopfs ein offizielles Switch- oder Rollershutter-GUI-Element zu verwenden, wie die auf diesem Screenshot:
                        Na aber dazu musst du doch nur das Mapping-Element weglassen. Dann wir automatisch das Defaultsymbol, z.B. bei einem Switch ein Ein/Aus-Schalter, dargestellt.


                        Zitat von madshi Beitrag anzeigen
                        Ich kriege es nicht hin, so ein offizielles "0/1"-Switch-GUI-Element oder so ein "< x >" Rollershutter-GUI-Element ohne Binding einzubauen, und dann auf dessen Events per Rules zuzugreifen. Die Rules werden dann bei mir einfach nicht aufgerufen bzw die Events nicht ausgelöst. Verstehst Du, was ich meine?
                        Denk schon. Aber dann machst du generell noch etwas falsch. Grundsätzlich funktionieren die Items auch ohne Bindings.

                        Gruß,
                        thoern

                        Kommentar


                          #13
                          ES KLAPPT!!

                          Hab einfach Deinen Code genommen und das Mapping gestrichen. Jetzt klappt's auch mit Switch und Rollershutter Controls, sowohl direkt in der Hauptebene des GUIs als auch in Unterebenen. Ehrlich gesagt weiß ich nicht, was ich ursprünglich falsch gemacht hatte. Aber jetzt klappt alles, und ich bin glücklich.

                          Vielen Dank für Deine Hilfe!!

                          Kommentar


                            #14
                            Super! Freut mich!

                            Gruß,
                            thoern

                            Kommentar

                            Lädt...
                            X