Ankündigung

Einklappen
Keine Ankündigung bisher.

Verständnisproblem: Szene oder Logik?

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

    Verständnisproblem: Szene oder Logik?

    Hallo zusammen,

    ich habe ein Verständnisproblem. Wenn ich bei meiner Automatisierung über die SmartVisu mit einem Knopfdruck alle Rollos herunterfahren lassen will und zugleich alle Lichter ausmachen möchte, ist das eine Szene oder eine Logik?
    Im knx-Bus selbst sind keine Szenen hinterlegt, lediglich die Gruppenadressen der Aktoren.

    Vielen Dank fürs Aufschlauen!

    BG
    Michael

    #2
    Hi Michael,

    also wenn Du mich fragst, würde ich das Ganze ohne shNG lösen: Dein Taster schaltet eine GA, die mit allen Rollos verbunden ist, auf 1, dann fahren die alle runter. Dann invertierst Du diese GA, bekommst dann eine 0 auf einer weiteren GA, die Du mit allen Lichtern verbindest.

    Das wars...

    Gruß, Waldemar

    Kommentar


      #3
      Hallo Waldemar,

      danke für den Hinweis! Ich würde jedoch gerne ein wenig mehr Flexibilität in der Gestaltung der Szenen haben, denn nichts ist so beständig wie der Wandel. Wahrscheinlich will dann irgendjemand, dass der eine Rollo nicht zu geht, der andere nur halb, dann wieder anders... Ich glaube, dass ich über die Programmierung in SmartHomeNG und der Visualisierung über SmartVISU mir viel Aufwand im knx-Bus spare.

      Meine Frage zielte darauf ab, ob es sich dabei um eine Szene oder eine Logik im Bereich der shNG handelt. Ich habe nämlich versucht nach Anleitung eine Szene umzusetzten, erhalte aber in der Visu nur einen leeren Bildschirm.

      Dazu habe ich eine yaml als Item geschrieben:
      Code:
      config:
          szenen:
              name: Szenen
              sv_page: category
              haus:
                  name: SzenenHaus
                  type: scene
      Und eine yaml im Bereich "Szenen Konfiguration" mit der Bezeichnung "config.szenen.haus.yaml". Zum Testen enthält die nur ein Licht:
      Code:
      0:
          name: Aus
          actions:
           - {item: EG.Kueche.Licht.Wallwasher.schalten, value: 0}
      In der Visu sehe ich unter Kategorien die Kachel Szenen. Bei draufklicken ist die Seite aber leer. Die Frage die ich mir daher stelle ist, ob eine Szene überhaupt der richtige Ansatz ist.

      Danke für eure Rückmeldungen!

      BG
      Michael

      Kommentar


        #4
        Das Du in der Visu nichts siehst, ist klar. Du hast nur eine Seite namens "Szenen" in der "Category"-Navigation angelegt. Du hast aber nichts definiert, was auf dieser Seite dargestellt werden soll. Du musst schon mit sv_widget festlegen, was Du darstellen möchtest.

        Die Szene ist aus Sicht der Visu ein Item, welches einen numerischen Wert enthält. In der Visu ist es nur sinnvoll Szenen anzusteuern Sie eignet sich (wie Szenen generell) nicht zur Status Anzeige, weil Szenen keine Info enthalten, ob alle zugehörigen Aktoren/Items noch den Status der Szene haben.

        Ich habe z.B. Szenen folgendermaßen genutzt:


        Code:
        wohnung:
            buero:
                sv_page: room
                name: Büro
                sv_img: scene_office.svg
        
                visu:
                    szenen_beleuchtung:
                        name: Szenen Beleuchtung
        
                        sv_widget: 'Szenen abrufen:
                            <span data-role="controlgroup" data-type="horizontal">
                            {{ basic.button(''szenen_buero0'', ''wohnung.buero.szenen_knx'', ''Aus'', icon0~"control_standby.svg", ''0'', ''midi'') }}
                            {{ basic.button(''szenen_buero1'', ''wohnung.buero.szenen_knx'', ''Ambiente'', icon0~"light_light_dim_00.svg", ''1'', ''midi'') }}
                            {{ basic.button(''szenen_buero2'', ''wohnung.buero.szenen_knx'', ''Hell'', icon0~"light_ceiling_light.svg", ''2'', ''midi'') }}
                            {{ basic.button(''szenen_buero3'', ''wohnung.buero.szenen_knx'', ''Putzen'', icon0~"scene_cleaning.svg", ''3'', ''midi'') }}
                            {{ basic.button(''szenen_buero6'', ''wohnung.buero.szenen_knx'', ''Party'', icon0~"light_party.svg", ''4'', ''midi'') }}
                            </span><br>
                            <div style="line-height:30%;">
                                &nbsp;<br>
                            </div>
                            <div>Szenen speichern:<br>
                            <span data-role="controlgroup" data-type="horizontal">
                            {{ basic.button(''szenen_bueroS0'', ''wohnung.buero.szenen_knx'', ''Aus'', icon0~''control_standby.svg'', ''128'', ''midi'', ''#4176a9'') }}
                            {{ basic.button(''szenen_bueroS1'', ''wohnung.buero.szenen_knx'', ''Ambiente'', icon0~"light_light_dim_00.svg", ''129'', ''midi'', ''#4176a9'') }}
                            {{ basic.button(''szenen_bueroS2'', ''wohnung.buero.szenen_knx'', ''Hell'', icon0~''light_ceiling_light.svg'', ''130'', ''midi'', ''#4176a9'') }}
                            {{ basic.button(''szenen_bueroS3'', ''wohnung.buero.szenen_knx'', ''Putzen'', icon0~''scene_cleaning.svg'', ''131'', ''midi'', ''#4176a9'') }}
                            {{ basic.button(''szenen_bueroS6'', ''wohnung.buero.szenen_knx'', ''Party'', icon0~''light_party.svg'', ''132'', ''midi'', ''#4176a9'') }}
                            </span></div>'
        Das erzeugt:
        • eine Seite "Büro" in der normalen Raum-Navigation.
        • auf dieser Seite einen Block mit dem Namen 'Szenen Beleuchtung'
        • in diesem Block erzeuge ich zwei Button Reihen zur Szenen Steuerung: Der obere Block zum Abruf der Szenen, der untere Block zum Speichern von Szenen
        Das sieht dann so aus:
        Capto_Capture 2020-05-24_01-10-57_PM.jpg

        Die Szene selbst ist als Item folgendermaßen definiert:

        Code:
        wohnung:
            buero:
                szenen_knx:
                    comment: 0=aus, 1=Ambiente, 2=normal, 3=Putzen
                    name: Beleuchtungsszenen Büro
                    type: scene
                    enforce_updates: 'on'
                    knx_dpt: 5
                    knx_send: 1/0/16
                    knx_init: 1/0/16
        Falls nur KNX Devices angesteuert werden sollen, kannman szenen_knx als num definieren. Wenn Du auch Items ansteuern möchtest, musst Du nur den type auf scene setzen, damit die Definitionen aus dem ../scenes Verzeichnis ausgewertet werden. Außerdem musst Du eine entsprechende Szenen Definition im Verzeichnis ../scenes anlegen. Für das Obige Beispiel müsste die Datei wohnung.buero.szenen_knx.yaml heiße:

        Code:
        0:
            name: Aus
            # Leuchte Dreieckschrank ausschalten, falls die Schreibtischleuchte nicht eingeschaltet ist, sonst level 126 setzen
            actions:
                - {item: wohnung.buero.dreieckschrank.level, value: 0 if (sh.wohnung.buero.schreibtischleuchte.status() < 2) else 126}
                - {item: wohnung.buero.dreieckschrank.ct, value: 345, learn: false}
                - {item: wohnung.buero.dreieckschrank.onoff, value: False if (sh.wohnung.buero.schreibtischleuchte.status() < 2) else True}
        
        1:
            name: Ambiente
            actions:
                - {item: wohnung.buero.dreieckschrank.level, value: sh...dreieckschrank.ambiente_level()+3, learn: false}
                - {item: wohnung.buero.dreieckschrank.ct, value: 345, learn: true}
                - {item: wohnung.buero.dreieckschrank.onoff, value: True, learn: true}
        
        2:
            name: Hell
            actions:
                - {item: wohnung.buero.dreieckschrank.level, value: 126, learn: true}
                - {item: wohnung.buero.dreieckschrank.ct, value: 345, learn: true}
        
        3:
            name: Putzen
            actions:
                - {item: wohnung.buero.dreieckschrank.onoff, value: True, learn: false}
                - {item: wohnung.buero.dreieckschrank.level, value: 255, learn: false, delay: 5}
                - {item: wohnung.buero.dreieckschrank.ct, value: 345, learn: false}
        
        4:
            name: Party
            actions:
                - {item: wohnung.buero.dreieckschrank.level, value: 200, learn: false}
                - {item: wohnung.buero.dreieckschrank.hue, value: 59635, learn: false}
                - {item: wohnung.buero.dreieckschrank.sat, value: 230, learn: false}
                - {item: wohnung.buero.dreieckschrank.onoff, value: True, learn: false}
        Hier ist nur die Leuchte dreieckschrank definiert, da diese kein KNX Device ist, sondern eine Hue Leuchte, die über das hue Plugin angesteuert wird.
        Zuletzt geändert von Msinn; 25.05.2020, 14:22.
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #5
          Hallo Msinn,

          vielen Dank für die ausführliche und zieführende Beschreibung! Hat super geklappt! Dass ich in den Items neben dem Visu-Code noch die Szene selbst definieren muss (dein zweiter Code-Block), darauf wäre ich nicht gekommen.

          Ich habe bei meiner Realisierung auch die knx-Items über die Szenen.yaml angesprochen, funktioniert auch super.

          ZWEI abschließende FRAGEN hätte ich noch:
          1) Ich habe versucht alle Lichter auszumachen und dafür * als Wildcard genutzt "EG.*.Licht.*.schalten". Das wollte aber nicht klappen. In der Anleitung stand, dass es für Logiken geht, für Szenen nicht?
          2) Wie funktioniert dein "Szenen speichern"? Beschreibst du direkt die Gruppenadresse des knx-Bus mit der aktuellen Situation? Wie kannst du hier spezifische Aktoren auswählen?

          BG
          Michael

          Kommentar


            #6
            Zitat von MSz Beitrag anzeigen
            1) Ich habe versucht alle Lichter auszumachen und dafür * als Wildcard genutzt "EG.*.Licht.*.schalten". Das wollte aber nicht klappen. In der Anleitung stand, dass es für Logiken geht, für Szenen nicht?
            Stimmt, für Szenen funktioniert das nicht. Szenen sind nach dem Vorbild von KNX Szenen implementiert und nur um einiger Features erweitert worden.

            Zitat von MSz Beitrag anzeigen
            2) Wie funktioniert dein "Szenen speichern"? Beschreibst du direkt die Gruppenadresse des knx-Bus mit der aktuellen Situation? Wie kannst du hier spezifische Aktoren auswählen?
            Das funktioniert wie bei KNX Szenen: Aufruf über Szene setzen (Szenennummer+128). Damit merken sich die mit der Szene verbundenen KNX Aktoren, welchen Wert sie bei Aufruf der Szene einnehmen sollen (falls das in der Konfiguration des Aktors erlaubt wurde). Für die Items erfolgt dass analog (falls das Item in der Szene mit learn: True definiert ist). Zum tiefergehenden Verständnis empfehle ich Dir die entsprechende Dokumentation der KNX Association.

            Der Ablauf beim speichern einer Szene sieht folgendermaßen aus: Du stellst manuell mit der Szene verbundenen KNX-Aktoren bzw. SmartHomeNG-Items auf den Zustand ein, den sie in der entsprechenden Szene einnehmen sollen und löst anschließend "Szene speichern" aus, indem Du das Szenen-Item auf den Wert Szenennummer+128 setzt.
            Zuletzt geändert von Msinn; 25.05.2020, 10:28.
            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              #7
              Msinn Danke für die Erläuterung und die geduldige Beantwortung der Fragen. Da steh ich offensichtlich noch am Anfang einer langen Lernreise... ;-)
              Ich werde mich gerne in die Doku einlesen.

              Kommentar


                #8
                Ich habe die Fragen mal zum Anlass genommen und auf Basis dieses Threads einen Blog Artikel zur Szenen Nutzung in SmartHomeNG verfasst: https://www.smarthomeng.de/nutzung-v...in-smarthomeng. Der Artikel geht auch noch etwas mehr auf die Funktionsweise von KNX-Szenen ein. Vieleicht hilft Dir das im Verständnis schon weiter.
                Viele Grüße
                Martin

                There is no cloud. It's only someone else's computer.

                Kommentar

                Lädt...
                X