Ankündigung

Einklappen
Keine Ankündigung bisher.

UZSU: Nur ein Item wird geschaltet, wenn mehrere zur exakt gleichen Zeit unterschiedliche Werte setzen sollen

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

    UZSU: Nur ein Item wird geschaltet, wenn mehrere zur exakt gleichen Zeit unterschiedliche Werte setzen sollen

    Hallo zusammen,
    Vielleicht könnt ihr mir bei meinem Problem helfen:

    Ich habe mehrere Items, die jeweils ein eigenes uzsu_item verwenden (s.u.) und unabhängig voneinander Werte setzen sollen.

    Wenn ich nun mehrere UZSU-Events zur exakt gleichen Uhrzeit einstelle (z. B. 20:00 Uhr), die auf unterschiedliche Ziel-Items verweisen, wird nur eines der Items tatsächlich geschaltet, die anderen werden anscheinend ignoriert.

    Ändere ich die Zeiten minimal (z. B. +-1 Sekunde), funktioniert alles korrekt.

    Gruß,
    Klaus


    Code:
    # aussen.yaml
    aussen:
        terrasse:
                sv_page: room
                name: Terrasse
                sv_img: scene_terrace.svg
                
                visublock01:
                    name: Beleuchtung  
                    sv_widget: "{{ basic.stateswitch('', 'aussen.terrasse.licht.wand.schalten', 'midi', '', 'light_wall_1.svg', 'Wand') }}
                                {{ device.uzsuicon('uzsz0', 'aussen.terrasse.licht.wand.uzsu') }}
                                {{ basic.stateswitch('', 'aussen.terrasse.steckdosen.wand.schalten', 'midi', '', 'message_socket.svg', '') }}
                                {{ device.uzsuicon('uzsu1', 'aussen.terrasse.steckdosen.wand.uzsu') }}"
                visublock02:
                    name: Markise
                    sv_widget: "{{ device.blind ('', '', 'aussen.terrasse.markise.fahren', 'aussen.terrasse.markise.stop', 'aussen.terrasse.markise.position') }} "
                    #sv_widget: "{{ device.smallshut('', '', 'aussen.terrasse.markise.fahren', 'aussen.terrasse.markise.stop', 'aussen.terrasse.markise.position') }} "
                
                licht:
                    wand:
                        schalten:
                            type: bool
                            visu_acl: rw
                            #crontab: sunset-30m = 1 | 59 23 * * = 0 | sunrise-60m = 1 | sunrise+10m = 0  
                            knx_dpt: 1
                            knx_cache: 1/3/7
                            knx_send: 1/3/6
                            enforce_updates: yes
                        uzsu:
                            type: dict
                            uzsu_item: aussen.terrasse.licht.wand.schalten
                            cache: 'True'
                            visu_acl: rw    
                        
                steckdosen:
                    wand:
                        schalten:
                            type: bool
                            visu_acl: rw
                            #crontab: sunset-30m = 1 | 00 22 * * = 0 | sunrise-60m = 1 | sunrise+10m = 0
                            #crontab: 00 18 * * = 1 | 00 22 * * = 0 | 00 08 * * = 1 | 00 10 * * = 0  
                            knx_dpt: 1
                            knx_cache: 4/3/1
                            knx_send: 4/3/0
                            enforce_updates: yes
                        uzsu:
                            type: dict
                            uzsu_item: aussen.terrasse.steckdosen.wand.schalten
                            cache: 'True'
                            visu_acl: rw  
                
                markise:
                        fahren:
                            type: num
                            visu_acl: rw
                            knx_dpt: 1
                            knx_send: 2/3/1
                            enforce_updates: yes
                        stop:
                            type: num
                            visu_acl: rw
                            knx_dpt: 1
                            knx_send: 2/3/0
                            enforce_updates: yes
                        position:
                            type: num
                            visu_acl: rw
                            knx_dpt: 5
                            knx_cache: 2/3/2
                            knx_send: 2/3/2
                
        balkon:
                sv_page: room
                name: Balkon
                sv_img: fts_balcony.svg
                
                visublock01:
                    name: Beleuchtung
                    sv_widget: "{{ basic.stateswitch('', 'aussen.balkon.licht.wand.schalten', 'midi', '', 'light_wall_1.svg', 'Wand') }}
                                {{ device.uzsuicon('uzsu2', 'aussen.balkon.licht.wand.uzsu') }}"
                    
                licht:
                    wand:
                        schalten:
                            type: bool
                            visu_acl: rw
                            #crontab: sunset-30m = 1 | 59 23 * * = 0 | sunrise-60m = 1 | sunrise+10m = 0
                            knx_dpt: 1
                            knx_cache: 1/3/9
                            knx_send: 1/3/8
                            enforce_updates: yes
                        uzsu:
                            type: dict
                            uzsu_item: aussen.balkon.licht.wand.schalten
                            cache: 'True'
                            visu_acl: rw  
                            
                steckdosen:
                    wand:
                        schalten:
                            type: bool
                            visu_acl: rw
                            knx_dpt: 1
                            #knx_cache:
                            #knx_send:
                
        haustuer:
                sv_page: room
                name: Haustür
                sv_img: fts_frontdoor.svg
                
                visublock01:
                    name: Beleuchtung
                    sv_widget: "{{ basic.stateswitch('', 'aussen.haustuer.licht.decke.schalten', 'midi', '', 'light_ceiling_light.svg', 'Eingang') }}
                                {{ basic.stateswitch('', 'aussen.haustuer.licht.wand.schalten', 'midi', '', 'light_wall_1.svg', 'Wand') }}
                                {{ device.uzsuicon('uzsu3', 'aussen.haustuer.licht.wand.uzsu') }}"
                    
                licht:
                    decke:
                        schalten:
                            type: bool
                            visu_acl: rw
                            knx_dpt: 1
                            knx_cache: 1/3/1
                            knx_send: 1/3/0          
                    wand:
                        schalten:      
                            type: bool
                            visu_acl: rw
                            #crontab: sunset-30m = 1 | 59 23 * * = 0 | sunrise-60m = 1 | sunrise+10m = 0  
                            knx_dpt: 1
                            knx_cache: 1/3/3
                            knx_send: 1/3/2
                            enforce_updates: yes
                        uzsu:
                            type: dict
                            uzsu_item: aussen.haustuer.licht.wand.schalten
                            cache: 'True'
                            visu_acl: rw
                
        garten:
                sv_page: room
                name: Garten
                sv_img: scene_garden.svg
                
                visublock01:
                    name: Beleuchtung
                    sv_widget: "{{ basic.stateswitch('', 'aussen.garten.licht.wand.schalten', 'midi', '', 'light_garage.svg', 'Wand') }}
                                {{ basic.stateswitch('', 'aussen.garten.steckdosen.erdspiess.schalten', 'midi', '', 'light_plant_spot.svg', 'Garten') }}
                                {{ device.uzsuicon('uzsu4', 'aussen.garten.steckdosen.erdspiess.uzsu') }}"
                    
                licht:
                    wand:
                        schalten:
                            type: bool
                            visu_acl: rw
                            knx_dpt: 1
                            knx_cache: 1/3/5
                            knx_send: 1/3/4
                
                steckdosen:
                    erdspiess:
                        schalten:
                            type: bool
                            visu_acl: rw
                            #crontab: sunset-30m = 1 | 00 22 * * = 0
                            knx_dpt: 1
                            knx_cache: 1/3/11
                            knx_send: 1/3/10
                            enforce_updates: yes
                        uzsu:
                            type: dict
                            uzsu_item: aussen.garten.steckdosen.erdspiess.schalten
                            cache: 'True'
                            visu_acl: rw
                            
        garage:
                sv_page: room
                name: Garage
                sv_img: fts_garage.svg
                
                visublock01:
                    name: Beleuchtung
                    sv_widget: "{{ basic.stateswitch('', 'aussen.garage.licht.einfahrt.schalten', 'midi', '', 'light_garage.svg', 'Wand') }}
                                {{ device.uzsuicon('uzsu5', 'aussen.garage.licht.einfahrt.uzsu') }}"
                    
                licht:
                    einfahrt:
                        schalten:
                            type: bool
                            visu_acl: rw
                            knx_dpt: 1
                            knx_cache: 1/4/1
                            knx_send: 1/4/0
                            enforce_updates: yes      
                        uzsu:
                            type: dict
                            uzsu_item: aussen.garage.licht.einfahrt.schalten
                            cache: 'True'
                            visu_acl: rw            
                            ​


    Zuletzt geändert von hansmaulwurf; 03.08.2025, 18:31.

    #2
    Moin hansmaulwurf,

    das UZSU-Widget in smartVISU ist lediglich der Editor für die Schaltzeiten im uzsu_item. Die eigentliche Zeitschaltuhr ist das UZSU-Plugin in smarthomeNG. Deshalb gehört Deine Frage eher ins shNG-Forum.

    Zur Eingrenzung des Fehlers solltest Du die verwendete shNG-Version nennen. Ich habe das gerade mit den Versionen v1.9.5 und v1.11 an zwei items getestet und konnte den Fehler nicht reproduzieren. Allerdings verwende ich in den item-Definitionen jeweils das struct. Beispiel:
    Code:
    licht:
        einfahrt:
            schalten:
                type: bool
                visu_acl: rw
                knx_dpt: 1
                knx_cache: 1/4/1
                knx_send: 1/4/0
                enforce_updates: yes​
                struct: uzsu.child
    Das uzsu_item im Widget heißt dann allerdings "licht.einfahrt.schalten.uzsu".

    Im Web-Interface von shNG werden die vom Plugin an den Scheduler übergebenen Schaltzeiten im Menüpunkt „Scheduler“ und dort im Reiter „Plugin-Scheduler“ gelistet. Schau mal, ob dort alle items in der Liste stehen, für die Du dieselben Schaltzeiten programmiert hast.

    Gruß
    Wolfram
    Zuletzt geändert von wvhn; 04.08.2025, 15:47. Grund: Korrektur: v1.11 getestet

    Kommentar


      #3
      Also am struct liegt es nicht. Ich habe zwei items unter shNG v1.11 in der von Dir verwendeten Struktur aufgebaut und auch hier werden beide items per UZSU quasi zeitgleich (direkt nacheinander) geschaltet.

      Kommentar


        #4
        Hallo !

        und zunächst erstmal vielen herzlichen Dank für deine Hilfe !

        Ich verwende die shNG Version 1.10.0.
        Ich habe jetzt mal für zwei items eine Schaltzeit (sunset) gepflegt und beide tauchen auch im Scheduler auf.
        uzsu.aussen.garage.licht.einfahrt.uzsu 2025-08-04 21:16:21+0200 3 {'item': Item: aussen.garage.licht.einfahrt.uzsu, 'value': '1', 'caller': 'Scheduler'} - -
        uzsu.aussen.haustuer.licht.wand.uzsu 2025-08-04 21:16:21+0200 3 {'item': Item: aussen.haustuer.licht.wand.uzsu, 'value': '1', 'caller': 'Scheduler'} - -
        uzsu.uzsu_sunupdate 2025-08-05 00:00:00+0200 3 {'caller': 'Scheduler:UZSU'} - {'0 0 * *': None}
        Ich versuche mal ein update auf v1.11.

        Gruß,
        Klaus​

        Kommentar


          #5
          ... Oder gibt es möglicherweise Kollisionen auf dem Bus beim gleichzeitigen Senden - Wäre das eine Fehlerquelle ?

          Kommentar


            #6
            Wenn beide Schaltzeiten im Scheduler angelegt sind, würde ich auch eher auf Konflikte beim Senden tippen. Werden denn beide items im Scheduler abgearbeitet? Nach dem Schaltvorgang müssen ja beide items den neuen Wert enthalten (im item-Baum oder in der Visu prüfen) und es müssen neue Schaltzeiten im Scheduler eingetragen sein.

            Gruß
            Wolfram

            Kommentar


              #7
              Hallo und danke nochmal,

              Habe es gerade nochmal ausprobiert: Beide Items werden im Scheduler abgearbeitet und sind nun für morgen vorgemerkt. Die Items im Item Baum sind auch beide auf "An" geschaltet worden.
              Eine Lampe ist wirklich eingeschaltet worden, die andere ist aus.

              Was kann ich jetzt noch prüfen ?

              Danke und Gruß,
              Klaus
              Zuletzt geändert von hansmaulwurf; 05.08.2025, 17:58.

              Kommentar


                #8
                Schau mal hier. Evtl. Kannst Du das mit send-delay in den knxd-Parametern lösen.

                Gruß
                Wolfram

                Kommentar


                  #9
                  Jup - jetzt scheint es zu funktionieren !

                  @Wolfram: Super und herzlichen Dank !

                  Kommentar


                    #10
                    Hallo,
                    hatte die Tage schon festgestellt, dass es wohl doch nicht funktioniert. Habe jetzt auch Smarthome NG und die Plugins auf V1.11 geupdated. Auch die Einstellungen in der knxd.conf scheinen nicht zu helfen.



                    Gruß,
                    Klaus

                    Kommentar


                      #11
                      Moin hansmaulwurf Klaus,

                      hast Du den Fehler inzwischen gefunden? Wenn nicht, schau nochmal, wie der knxd bei Dir gestartet wird. Die Optionen in der knxd.conf werden nur verwendet, wenn die entsprechende Konstante im knxd.service File unter ExecStart angegeben ist.
                      /lib/systemd/system/knxd.service:
                      Code:
                      [Unit]
                      Description=KNX Daemon
                      After=network.target knxd.socket
                      Requires=knxd.socket
                      
                      [Service]
                      EnvironmentFile=/etc/knxd.conf
                      ExecStart=/usr/bin/knxd $KNXD_OPTS
                      User=knxd
                      Group=knxd
                      Type=notify
                      
                      Restart=on-failure
                      RestartSec=10
                      
                      [Install]
                      WantedBy=multi-user.target network-online.target
                      Also=knxd.socket
                      Bei den Optionen muss --send-delay dann an der richtigen Stelle stehen. Siehe Anleitung im knxd-Forum

                      Gruß
                      Wolfram

                      Kommentar


                        #12
                        Hallo Wolfram,

                        leider funktioniert es immer noch nicht. Die knxd.service sieht bei mir exakt so aus wie oben.
                        Danke für deinen Support !


                        Gruß,
                        Klaus

                        Kommentar


                          #13
                          Klaus die Frage ist hier wie sehen Deine $KNXD_OPTS aus? (Typischerweise unter /etc/knxd.conf zu finden)

                          Kommentar


                            #14
                            Hallo !

                            Diese habe ich kürzlich für mein MDT SCN-IP000.01 - IP Interface wie folgt eingestellt:
                            KNXD_OPTS="-e 0.0.1 -E 0.0.2:8 -T -D -S -c -b --send-delay=100 ipt:192.168.178.100"

                            Gruß,
                            Klaus

                            Kommentar


                              #15
                              Kann es sein, dass du eine alte KNXD Version nutzt? Welche Version nutzt du?
                              Das Verhalten wurde mal ab einer bestimmten Version abgestellt (Ich meine 14.2 ist aber aus der Hüfte)

                              Kommentar

                              Lädt...
                              X