Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für das rtr2 Plugin

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

    #16
    Hallo, das habe ich schon getan. Aber komme nicht weiter. Die Regelung an sich geht erstmal. Nun möchte ich den "standby" und "nacht" Modus in Szenen einbinden. Wie geht das? (Sie Szene funktioniert an sich aber der Wert für "standby" oder "nacht" wird nicht aktiviert.)

    Item sieht so aus:
    Code:
    eg:
       hz:
            wz:
                struct: rtr2.rtr
                rtr2_id: heizung_wz
                rtr2_settings: [24,6,1,true]
                #rtr2_settings: [<comfort_temp>, <night_reduction>, <standby_reduction>, <fixed_reduction>, <hvac_mode>, <frost_temp>]
                rtr2_controller_settings: [4,60]
                soll_temp:
                    database: init
                
                ist_temp:
                    knx_dpt: 9
                    knx_cache: 1/1/55
                    database: init
                
                stellwert:
                    knx_dpt: 5001
                    knx_send: 1/1/53
                    database: init
                
                
                          
                #standby:
                    #crontab: 30 15 * * = True
    
                nacht:
                    crontab: 0 21 * * = True
        
        szene:
            tv_szene:
                name: Szene TV
                type: scene
                enforce_updates: True
                knx_dpt: 5
                knx_send: 20/0/3
                knx_listen: 20/0/3
                visu_acl: rw
    Szene:
    Code:
    1:
        name: TV_on
        actions:
            - {item: eg.licht.wz_up, value: 1, learn: false}
            - {item: eg.hz.wz, value: standby_mode, learn: false}
          
    
    2:
        name: TV_off
        actions:
            - {item: eg.licht.wz_up, value:0, learn: false}
            - {item: eg.hz.wz, value: night_mode, learn: false}
    Das mit value: night_mode ist vermutlich falsch. Wie geht das richtig. Könnte ich bitte mal ein Beispiel für die Verwendueng des rtr2 in Szenen bekommen?
    Lieben Dank!

    Kommentar


      #17
      Da Du diestruct verwendest, hast Du für die verschiedenen Modes Sub-Items, die Du einfach über einen Bool Wert ansteuerst:

      Capto_Capture 2024-10-11_11-38-21_AM.jpg



      Szenen:
      Code:
      1:
      name: TV_on
      actions:
      - {item: eg.licht.wz_up, value: 1, learn: false}
      - {item: eg.hz.wz.normal, value: true, learn: false}
      
      
      2:
      name: TV_off
      actions:
      - {item: eg.licht.wz_up, value:0, learn: false}
      - {item: eg.hz.wz.nacht, value: true, learn: false}​
      Viele Grüße
      Martin

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

      Kommentar


        #18
        Super funktioniert im SmarthomeNG.

        Nun habe ich nur noch das Problem, dass die Szenen vom Glastaster nicht im SmarthomeNG registriert werden. Ich möchte die Szenen über SmarthomeNG laufen lassen, da später noch paar Bedingungen rein kommen. (Also nicht das Aktor xyz auf die Szeneninfo des Glastasters reagiert, das geht, aber wäre dann doppelt.)

        Wie mache ich das am Besten?
        Am Glastaster ist eine Taste Szene 1 (ON) und eine Szene 2(Aus) beide mit Adresse 20/0/3 verbunden.
        Habe noch knx_listen durch knx_cache ersetzt.
        Code:
        szene:
                tv_szene:
                    name: Szene TV
                    type: scene
                    enforce_updates: True
                    knx_dpt: 5
                    knx_send: 20/0/3
                    knx_cache: 20/0/3
        Leider klappt das so nicht, da bei Taste Glastaster nichts passiert.

        Kommentar


          #19
          Da du knx_dpt (Integer Wert) verwendest, musst Du den Versatz um 1 berücksichtigen. Im KNX Device werden Szenen von 1 bis 64 konfiguriert. KNX sendet bei Ansteuerung der Szene 1 eine 0 über den Bus, bei Szene 2 eine 1, etc.

          Du kannst also entweder in der yaml Datei die Szenen auf 0 und 1 ändern, oder im KNX Device die Szenen 2 und 3 verwenden.

          Alternativ kannst Du knx_dpt 18 verwenden.
          Viele Grüße
          Martin

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

          Kommentar


            #20
            Ok super klappt auch soweit. Ganz lieben Dank!!!
            letzte Frage: Ich möchte eine Bedingung in die Szene einbauen, das geht. Aber wenn ich das richtig sehe wird eine Szene ja nicht getriggert wie eine Logik.
            Ich möchte, das z. B. wenn TV Szene an ist, eine Stehleuchte nur angeschalten wird wenn der Helligkeitsfühler ein "OFF" gibt. ( Das geht ja mit der Szene.)
            etwa so:
            Code:
            1:
                name: TV_on
                actions:
                    - {item: eg.licht.wz_up, value: 1, if (sh.eg.l_wert.lw1() == 1) else 0}
                    - {item: eg.hz.wz.normal, value: true, learn: false}
                  ​
            Wenn es nun aber dunker wird hätte ich es gern wenn die Szene 1 aktiv ist, dass dann über den Trigger "Lichtschwellwert" die Lampe angeschalten wird.
            Das dürfte ja nur in einer Logik gehen.
            Kann ich in einer Logik den Status meiner Szene abfragen? Wenn ja wie?
            Einfach ein If sh.eg.szene.tv_szene () == 1 ?​

            Kommentar


              #21
              Nach der KNX Definition hat eine Szene keinen Status. Das wählen einer Szene ist ein Ereignis und auch nur zu diesem Zeitpunkt gültig. Da Da die über eine Szene angesteuerten Aktoren auch dirket angesteuert werden können, kann man keine Aussage darüber treffen, ob die eingestellten Werte einer Szene noch gültig sind.

              Die davon abgeleiteten Szenen in SmartHomeNG haben daher auch keinen Status. Da die Ansteuerung jedoch über ein Item erfolgt, kann man die letzte gewählte Szene ermitteln. Der Wert des Items gibt aber nur Auskunft über die letzte gewählte Szene. Ob die Einstellungen, die die Szene vorgenommen hat, noch aktuell sind, kann nicht ermittelt werden.

              Zu Deinen beiden letzten Fragen:
              • Kann ich in einer Logik den Status meiner Szene abfragen? Wenn ja wie?​
              Nein, da eine Szene keinen Status hat
              • Einfach ein If sh.eg.szene.tv_szene () == 1 ?​​
              Ja, die letzte gewählte Szene kannst Du damit abfragen
              Viele Grüße
              Martin

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

              Kommentar


                #22
                Lieben Dank.
                Muss noch mal was fragen: Ich möchte den standby oder nacht Modus auch in einer Logik verwenden. Wie wäre da die korrekte Syntax?

                Item:
                Code:
                eg:
                  hz:
                        wz:
                            struct: rtr2.rtr
                            rtr2_id: heizung_wz
                            rtr2_settings: [24,6,1,true]
                            #rtr2_settings: [<comfort_temp>, <night_reduction>, <standby_reduction>, <fixed_reduction>, <hvac_mode>, <frost_temp>]
                            rtr2_controller_settings: [4,60]
                            soll_temp:
                                database: init
                            
                            ist_temp:
                                knx_dpt: 9
                                knx_cache: 1/1/55
                                database: init
                            
                            stellwert:
                                knx_dpt: 5001
                                knx_send: 1/1/53
                                database: init
                Logik:
                Code:
                if sh.eg.virtuel.logik.tv_automatik():
                    if sh.eg.switch.wz_up2() == 0:
                       sh.eg.hz.wz.nacht(true)# hier soll Nachtmodus aktivert werden
                       sh.eg.switch.wz_up(0)
                       logger.info('Heizung Nachtmodus - Ein')  
                    else:
                        if sh.eg.switch.wz_up2() == 1:
                            sh.eg.hz.wz.normal(true)# hier soll der standby Modus der Heizung aktiviert werden
                            sh.eg.switch.wz_up(1)
                            logger.info('Heizung Standby - Ein')

                Kommentar


                  #23
                  Ich verstehe die Frage im Moment nicht.

                  Die Aktivierung des Nacht Modus und des Standby Modul in einer Logik hast Du doch gepostet.

                  Code:
                      sh.eg.hz.wz.nacht(true)# hier soll Nachtmodus aktivert werden​
                  Code:
                      sh.eg.hz.wz.normal(true)# hier soll der standby Modus der Heizung aktiviert werden
                  ​
                  Du solltest nur beachten, dass in Python ein boolscher Wert die Werte True bzw. False annehmen kann (beachte die Großbuchstaben, true und false sind in Python dafür keine gültigen Werte)

                  also:
                  Code:
                      sh.eg.hz.wz.nacht(True)# hier soll Nachtmodus aktivert werden​
                  Viele Grüße
                  Martin

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

                  Kommentar


                    #24
                    Super Danke
                    Noch eine Frage:
                    Ich nutze contab um 21:00 in den Nachtmodus zu schalten.
                    Code:
                    hz:
                            wz:
                                struct: rtr2.rtr
                                rtr2_id: heizung_wz
                                rtr2_settings: [24,4,1,true]
                                #rtr2_settings: [<comfort_temp>, <night_reduction>, <standby_reduction>, <fixed_reduction>, <hvac_mode>, <frost_temp>]
                                rtr2_controller_settings: [4,60]
                                soll_temp:
                                    database: init
                                
                                ist_temp:
                                    knx_dpt: 9
                                    knx_cache: 1/2/55
                                    database: init
                                
                                stellwert:
                                    knx_dpt: 5001
                                    knx_send: 1/2/53
                                    database: init
                                
                                
                                          
                                #standby:
                                    #crontab: 30 15 * * = True
                                nacht:
                                    crontab: 0 21 * * = True
                    Nun würde ich gern bei längerer Abwesenheit in den Frostschutz Modus schalten. Ein IF in der ITEM Definition macht ja keinen Sinn, da die nicht getriggert wird.
                    Dann müsste crontab: 30 15 * * = True in eine Logik, abhängig von einem virtuellen Schalter. Würde das gehen?
                    Also sowas wie:
                    Code:
                    if sh.eg.virtuel.frostschutz() == 1:
                    sh.eg.hz.wz.hvac(4)
                    
                    if sh.eg.virtuel.frostschutz() == 0:
                        sh.eg.hz.wz.nacht:
                                        crontab: 0 21 * * = True
                    else:
                       sh.eg.hz.wz.nacht:
                                        crontab: 0 21 * * = False
                    Kann das was werden? oder gibts dazu eine einfachere Idee?

                    Kommentar


                      #25
                      Ich verstehe nicht ganz was Du erreichen möchtest.

                      - Wieso schaltest Du die Nachabsenkung aus, wenn Dein virtueller Frostschutz aktiviert ist?
                      - Wenn kein virtueller Frostschutz aktiviert ist: Wie schaltest Du die Nachtabsenkung aus?

                      Da der Frostschutz die anderen Modi übersteuert, brauchst Du eigentlich keine Verbindung zwischen Nachtabsenkung und Frostschutz herzustellen. Du kannst einfach den Frostschutz über Deinen virtuellen Frostschutz aktivieren/deaktivieren, indem Du das Item sh.eg.hz.wz.​frost auf True bzw. False setzt.
                      Viele Grüße
                      Martin

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

                      Kommentar


                        #26
                        Hallo,
                        eine Frage zur Nachtabsenkung.
                        Ich möchte diese für einige Räume unterschiedlich einstellen.
                        Nu mache ich das in der Item Deffinition aber es wird nicht übernommen. Aktuell sind 4 Grad Absenkung eingestellt. Stze ich das Item auf 5, Passiert nach dem resart von Smarthome... garnichts. Im WebIF und im Frontend bleibt alles auf 4 Grad. Warum ist das so?
                        LIeben Dank!
                        Code:
                        hz:
                                wz:
                                    struct: rtr2.rtr
                                    rtr2_id: heizung_wz
                                    rtr2_settings: [24,5,1,False]
                                    #rtr2_settings: [<comfort_temp>, <night_reduction>, <standby_reduction>, <fixed_reduction>, <hvac_mode>, <frost_temp>]
                                    rtr2_controller_settings: [5,60]
                                    soll_temp:
                                        database: init
                                    
                                    ist_temp:
                                        knx_dpt: 9
                                        knx_cache: 1/2/55
                                        database: init
                                    
                                    stellwert:
                                        knx_dpt: 5001
                                        knx_send: 1/2/53
                                        database: init
                        Interessant auch, ich setze "fixed_reduction" auf False aber es bleibt True. Warum?
                        Heizung.png
                        Angehängte Dateien
                        Zuletzt geändert von Haxley; 12.01.2025, 15:30.

                        Kommentar


                          #27
                          Ich vermute, dass rtr2_settings​ nicht greift, weil Du nur 4 der 6 Werte angegeben hast. Ich nutze das allerdings nicht.

                          Ich mache das wie im folgenden Beispiel:

                          items.yaml:
                          Code:
                          buero:
                              heizung:
                                  struct: rtr2.rtr
                                  rtr2_id: buero
                          ​
                                  settings:
                                      komfort_temp:
                                          initial_value: 21.8
                                      standby_absenkung:
                                          initial_value: 0.4
                                      nacht_absenkung:
                                          initial_value: 1.4
                                      frost_temp:
                                          initial_value: 7.0
                                      max_stellwert:
                                         initial_value: 20
                                  normal: True
                          Das Ganze kann zur Laufzeit z.B. mit einer Logik eingestellt/verändert werden:

                          Logik:
                          Code:
                          sh.buero.heizung.settings.komfort_temp(21.8)
                          sh.buero.heizung.settings.standby_absenkung(0.4)
                          sh.buero.heizung.settings.nacht_absenkung(1.4)
                          sh.buero.heizung.settings.frost_temp(7.0)
                          sh.buero.heizung.settings.max_stellwert(20)
                          sh.buero.heizung.normal(True)
                          Viele Grüße
                          Martin

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

                          Kommentar


                            #28
                            Habe das nun so probiert. Leider werden weiterhin alle indivduellen Einstellungen des Items ignoriert.
                            Code:
                            garage:
                                        struct: rtr2.rtr
                                        rtr2_id: garage
                                        #rtr2_settings: [24,5,1,False]
                                        #rtr2_settings: [<comfort_temp>, <night_reduction>, <standby_reduction>, <fixed_reduction>, <hvac_mode>, <frost_temp>]
                                        #rtr2_controller_settings: [5,60]
                                        rtr2_settings:
                                            komfort_temp:
                                                initial_value: 23.8
                                            standby_absenkung:
                                                initial_value: 2.8
                                            nacht_absenkung:
                                                initial_value: 10.0
                                            frost_temp:
                                                initial_value: 4.0
                                            max_stellwert:
                                                initial_value: 20
                                        normal: True
                                        soll_temp:
                                            database: init
                                        
                                        ist_temp:
                                            knx_dpt: 9
                                            knx_cache: 1/1/45
                                            database: init
                                        
                                        stellwert:
                                            knx_dpt: 5001
                                            knx_send: 1/1/65
                                            database: init
                                            
                                        #standby:
                                            #crontab: 30 15 * * = True
                                        frost:
                                            crontab: 0 23 * * = True
                            Im webIF steht weiterhin z.B. der die frost_temp auf 7 Grad oder die nacht_absenkung auf 19 Grad.
                            Auch wenn ich im Widget die Frost Temp ändere wird die wieder überschrieben.
                            Was ist da falsch?
                            Danke Gruß Haxley
                            Zuletzt geändert von Haxley; 08.02.2025, 16:18.

                            Kommentar


                              #29
                              Zitat von Haxley Beitrag anzeigen
                              Im webIF steht weiterhin z.B. der die frost_temp auf 7 Grad
                              Wenn Dur den Wert in garage.rtr2_settings​.frost_temp​ schreibst und nicht in garage.settings​.frost_temp, wie von mir oben beschrieben, ist das klar.
                              Viele Grüße
                              Martin

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

                              Kommentar


                                #30
                                Hatte ich nur zum Test so genutzt. Nun geändert in:
                                Code:
                                garage:
                                            struct: rtr2.rtr
                                            rtr2_id: garage
                                            #rtr2_settings: [24,5,1,False]
                                            #rtr2_settings: [<comfort_temp>, <night_reduction>, <standby_reduction>, <fixed_reduction>, <hvac_mode>, <frost_temp>]
                                            #rtr2_controller_settings: [5,60]
                                            settings:
                                                komfort_temp:
                                                    initial_value: 23.8
                                                standby_absenkung:
                                                    initial_value: 2.8
                                                nacht_absenkung:
                                                    initial_value: 10.0
                                                frost_temp:
                                                    initial_value: 4.0
                                                max_stellwert:
                                                    initial_value: 20
                                            normal: True
                                Trotzdem:

                                heizung2.png
                                Und Setzen im Widget wird immer überschrieben.

                                Interessant vielleicht auch eine Fehlermeldung dazu:
                                Item 'ng.hz.garage', attribute 'normal': Attribute is undefined and has value 'True' (defined in A_items.yaml)
                                Angehängte Dateien
                                Zuletzt geändert von Haxley; 08.02.2025, 17:29.

                                Kommentar

                                Lädt...
                                X