Ankündigung

Einklappen
Keine Ankündigung bisher.

UZSU und SmartVisu Plugin: UZSU stört generate_pages

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

    UZSU und SmartVisu Plugin: UZSU stört generate_pages

    Hi,

    ich habe heute endlich mal das UZSU Plugin in meine Steckdosen eingebaut. Ich lasse meine kompletten VISU-Seiten über das generate_pages des SmartVisu-Plugins generieren.

    Nun ist mir aufgefallen, dass jeder Raum, in dem ich ein Widget mit dem USZU-Plugin habe, dass dieser auf einmal nicht mehr richtig sortiert wird.

    ich meine damit, die Reihenfolge in der die Räume ausgegeben werden. Dazu kommt, dass ich ja die Räume in EG / OG usw gruppiert habe. Durch den Fehler sind die Räume dann nicht mal mehr im Richtigen Stockwerk.

    Ich habe das extra nochmal gegen getestet: Nehme ich das "struct: uzsu.child" aus dem Item den Raums, dann ist der Raum wieder in der richtigen reihenfolge.

    Hier mal ein Beispiel wie ich das aufgebaut habe:

    Datei 1-eg.yaml

    Code:
    eg:
    
        egSep:
            name: Erdgeschoß
            sv_page: seperator
    
        kueche:
            name: Küche
            sv_page: room
            sv_img: scene_cooking.svg
    
            zwSteckdose1:
                name: Küche
                type: bool
                visu_acl: rw
                sv_widget: "{{ my_widgets.switch('item', 'Steckdose Funk', 'item', 'item.watt', '', 'item.wh', '', 'item.uzsu', 'item.name', '1') }}"
                sv_item_type: socket
                struct: uzsu.child
                zwave_node: 2
                zwave_value: 38354960
    
                watt:
                    type: num
                    visu_acl: ro
                    zwave_node: 2
                    zwave_value: 1125899945394194
    
                wh:
                    type: num
                    visu_acl: ro
    
        wz:
            name: Wohnzimmer
            sv_page: room
            sv_img: scene_livingroom.svg
    
            steckdose_ecke:
                name: Wohnzimmer
                type: bool
                visu_acl: rw
                sv_widget: "{{ my_widgets.switch('item', 'Steckdose Ecke', 'item', 'item.stromwert', 'item.wh', 'item.betriebsstunden', '', 'item.uzsu', 'item.name') }}"
                sv_item_type: socket
                knx_dpt: 1
                knx_send: 2/0/155
                knx_listen: 2/1/155
                knx_init: 2/1/155
                struct: uzsu.child
    Datei 2-og.yaml
    Code:
    og:
    
        ogSep:
            name: Obergeschoß
            sv_page: seperator
    
        wz:
            name: Wohnzimmer
            sv_page: room
            sv_img: scene_livingroom.svg
    
            steckdose:
                name: Wohnzimmer OG
                type: bool
                visu_acl: rw
                sv_widget: "{{ my_widgets.switch('item', 'Steckdose', 'item', 'item.stromwert', 'item.wh', 'item.betriebsstunden', '', 'item.uzsu', 'item.name') }}"
                sv_item_type: socket
                knx_dpt: 1
                knx_send: 2/0/212
                knx_listen: 2/1/212
                knx_init: 2/1/212
                struct: uzsu.child
    Aktiviere ich also im og.wz.steckdose das uzsu Element, wandert das generierte Element in SmartVISU auf einmal in das EG.

    Ist da schon was bekannt?

    Grüße,
    Thomas

    #2
    Works as designed.

    In Deiner 2. Datei. Hast Du die Steckdose im Raum Wohnzimmer definiert. Diesen Raum gibt es in der Definition schon in der 1. Datei. Also wird die Steckdose dort zugeordnet.

    Benenne mal den Raum im OG auf einen eindeutigen Namen um. Dann sollte alles in Ordnung sein.
    Viele Grüße
    Martin

    Stay away from negative people. They have a problem for every solution.

    Kommentar


      #3
      Es ist doch aber der eine in eg und der andere in og - das allein macht doch daraus ein individuelles Item?!

      eg.wz.steckdose_ecke != og.wz.steckdose oder nicht?!

      Ausserdem tritt das Problem auch bei einem anderen Raum auf, der Eindeutig ist (habe das selbe problem bei og.balkon.zwSteckdose2 , der auch in das eg rutscht! Und den Raum balkon gibt es definitiv (selbst der Name des zwSteckdose2) nur einmal!

      Und vor alle dem tritt das Problem ja erst mit UZSU auf...?

      Kommentar


        #4
        Die Frage wäre eher, ob nicht das struct per se das Problem ist. Probier doch bitte mal andere structs aus zb darksky

        Kommentar


          #5
          Du hast recht, ich habe mal schnell an einem Item das Verrutscht das "struct: uzsu.child" durch die "manuelle" Variante wie folgt ersetzt:

          Code:
              wz:
                  name: Wohnzimmer
                  sv_page: room
                  sv_img: scene_livingroom.svg
          
                  steckdose_ecke:
                      name: Wohnzimmer
                      type: bool
                      visu_acl: rw
                      sv_widget: "{{ my_widgets.switch('item', 'Steckdose Ecke', 'item', 'item.stromwert', 'item.wh', 'item.betriebsstunden', '', 'item.uzsu', 'item.name') }}"
                      sv_item_type: socket
                      knx_dpt: 1
                      knx_send: 2/0/155
                      knx_listen: 2/1/155
                      knx_init: 2/1/155
          
                      uzsu:
                          type: dict
                          uzsu_item: ..
                          cache: True
                          visu_acl: rw
          
                          active:
                              remark: Use this item to easily turn on or off your UZSU
                              type: bool
                              eval: sh...activate(value)
                              visu_acl: rw
          
                              status:
                                  type: bool
                                  eval: sh....activate()
                                  eval_trigger:
                                  - ..
                                  - ...
                                  on_change: .. = value
                                  crontab: init = 0
          Und anschließend shNG neu gestartet.... und siehe da es wird wieder richtig dargestellt.

          EDIT: Korrektur, ich habe es nochmal genau so gemacht, wie in der plugin.yaml von UZSU definiert (und auch oben korrigiert) und nochmal neu gestartet und getestet. Selbes Ergebnis, es gibt das Problem nicht mehr.
          Zuletzt geändert von TCr82; 02.12.2019, 08:59.

          Kommentar


            #6
            Msinn In dem Fall ein struct Problem?

            Kommentar


              #7
              Zumindest kein offensichtliches.

              Ablauf beim Start:
              • Initialisierung der Plugins
              • Initialisierung des Itemtrees (laden der Items und auflösen der structs)
              • run der Plugins (nach Ende der Initialisierung): Hier werden die Visu Pages generiert.

              Zum Zeitpunkt zu dem die Seiten generiert werden, sind die structs also bereits aufgelöst. Daher wäre es hilfreich (im Admin Interface) nachzusehen, ob der item-Tree mit manuellen Items sich im Aufbau bzw. in Details vom Item-Tree bei struct Verwendung unterscheidet.
              Viele Grüße
              Martin

              Stay away from negative people. They have a problem for every solution.

              Kommentar


                #8
                irgendwas muss es ja aber auf jeden Fall damit zu tun haben. Evtl. Ordnet er durch das "einsetzten" der structs die Items neu?!

                Kommentar


                  #9
                  Zitat von TCr82 Beitrag anzeigen
                  Evtl. Ordnet er durch das "einsetzten" der structs die Items neu?!
                  Sieht im Admin Interface Dein Item-Tree denn anders aus? Dort könntest Du Deine etwas gewagte Hypothese überprüfen.
                  Viele Grüße
                  Martin

                  Stay away from negative people. They have a problem for every solution.

                  Kommentar


                    #10
                    Ähm, ja tut er (hätte ich ja auch gleich mal drauf achten können - sorry):

                    Screenshot_20191203_080401.png Screenshot_20191203_080708.png

                    Man sieht dass die Sep(erator) Items, welche die Kategorien erzeugen, nicht mehr oben stehen. Was zu der verschobenen Ansicht führt (Küche und Wohnzimmer sind nicht mehr im EG). Überall da wo ein Struct Item sitzt, wird es nach oben Verschoben. Das wäre bei mir in aussen.eingang, aussen.terrasse, eg.kueche, eg.wz (in all den "Räumen" befinden sich steuerbare Steckdosen, wo ich die UZSU Struct drauf eingebaut habe). Nur im og habe ich das struct durch die manuellen Items ersetzt, und da stimmt dann wieder alles.
                    Zuletzt geändert von TCr82; 03.12.2019, 08:38.

                    Kommentar


                      #11
                      Dein Seperator hängt eine Ebene zu tief. Hänge ihn mal zwischen eg und og und nicht als subitem zu og.
                      Viele Grüße
                      Martin

                      Stay away from negative people. They have a problem for every solution.

                      Kommentar


                        #12
                        Können nicht direkt eg und og als Separator verwendet werden?

                        Kommentar


                          #13
                          Wenn dort nicht schon ein sv_page Attribut existiert, könnte das gehen.

                          Ich achte bei mir nur darauf, dass alle sv_page Attribute in der selben Ebene hängen. Weil ich früher mal ähnliche Probleme mit der Sortierung hatte (lange bevor es structs gab), habe ich das so gelöst, dass ich die Separatoren in eigenen Dateien habe, dadurch kann es kein vertun geben, weil z.B. ein Item-Knoten plötzlich in einer Datei definiert wurde, die eher ausgewertet wird.

                          Die ganze Page Generierung hängt stark an der Einlese Reihenfolge. Ich habe das deshalb etwa so gelöst:
                          • 1-eg_seperator.yaml
                          • 2-eg.yaml
                          • 3-og-seperator.yaml
                          • 4-og.yaml
                          Viele Grüße
                          Martin

                          Stay away from negative people. They have a problem for every solution.

                          Kommentar


                            #14
                            ja, das würde zwar das Problem lösen, dass die Räume in der richtigen Kartegorie landen (unter dem richtigen Seperator) - aber trotzdem stimmt die Reihenfolge nicht mehr.

                            Aus meinem Screenshot oben - im EG sind die Räume nach folgender Reihenfolge angelegt:
                            Flur
                            Küche
                            EZ
                            WZ
                            SZ
                            KZ
                            Bad
                            WC

                            Durch die struct Items in Küche und WZ ist die Reihenfolge auf einmal:
                            Küche
                            WZ
                            Flur
                            EZ
                            SZ
                            KZ
                            Bad
                            WC

                            Kommentar


                              #15
                              Das bedeutet, dass ein Item unterhalb von Küche und von EG definiert wurde bevor das erste Item unterhalb von Flur eingelesen wurde.Wie gesagt, an so einer Situation habe ich mir früher schon mal einen Wolf gesucht. Ich habe in der großen Installation deshalb alle Visu spezifischen Definitionen in Dateien abgelegt, die vor den normalen Items eingelesen werden.

                              Also eine Datei 0-raumordnung.yaml anlegen, in der die Baumstruktur bis runter zu den sv_page Attributen definiert wird und darüber die Reihenfolge zu steuern,
                              Viele Grüße
                              Martin

                              Stay away from negative people. They have a problem for every solution.

                              Kommentar

                              Lädt...
                              X