Ankündigung

Einklappen
Keine Ankündigung bisher.

Reihenfolge der Items im Admin-Modul

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

    Reihenfolge der Items im Admin-Modul

    Hallo,

    ich hätte gern gewusst, wie die Reihenfolge des Item-Baumes im Admin-Modul entsteht bzw. auch, ob diese beeinflussbar ist.
    Auf der ersten Ebene scheinen die Items alphabetisch geordnet zu sein.
    Bislang dachte ich, dass die Items in den Ebenen darunter gemäß der Reihenfolge in den einzelnen item.yaml gelistet werden.
    Bei meiner neuen item.yaml stimmt das nicht. Hier kann ich keinen Zusammenhang zwischen der Reihenfolge der items in der item.yaml und dem Tree im Admin erkennen.

    eine Auszug aus der item.yaml


    Code:
    %YAML 1.1
    ---
    viessmann:[INDENT]type: foo[/INDENT][INDENT]update:[/INDENT][INDENT=2]name: Update aller Items mit 'viess_read'
    type: bool
    visu_acl: rw
    viess_update: 1
    autotimer: 1 = 0[/INDENT][INDENT]
    aussentemp:[/INDENT][INDENT=2]name: Aussentemperatur
    type: num
    viess_read: get_Aussentemperatur
    viess_read_cycle: 120
    viess_init: True[/INDENT][INDENT]
    aussentemp_gedaempft:[/INDENT][INDENT=2]name: Aussentemperatur
    type: num
    viess_read: get_Aussentemperatur_TP
    viess_read_cycle: 120
    viess_init: True[/INDENT][INDENT]brenner:[/INDENT][INDENT=2]......[/INDENT][INDENT]kessel:[/INDENT][INDENT=2]......[/INDENT][INDENT]stoerungen:[/INDENT][INDENT=2]......[/INDENT][INDENT]heizkreis_a1m1:[/INDENT][INDENT=2]......[/INDENT][INDENT]heizkreis_m2:[/INDENT][INDENT=2]......[/INDENT][INDENT]warmwasser:[/INDENT][INDENT=2]........ [/INDENT]
    und der ItemTree:
    Anmerkung 2020-01-26 215321.png
    Danke für die Hinweise!

    PS: Weiß jemand, wie man die yaml mit Einrückungen hier einfügen kann. Danke
    Zuletzt geändert von Sisamiwe; 27.01.2020, 20:21.

    #2
    Die Reihenfolge ist an erster Stelle durch die Dateinamen der Item Definitionsdateien in /items definiert (alphabetisch aufsteigend). An zweiter Stelle steht die Reihenfolge der Items in der jeweiligen Definitionsdatei.

    Beispiel:

    itemdatei1.yaml
    Code:
    c:
        c1:
    b:
        b2:
    itemdatei2.yaml
    Code:
    a:
        a1:
    b:
        b1:
    c:
        c2:
    ergibt:
    Code:
    c:
        c1:
        c2:
    b:
        b2:
        b1:
    a:
        a1:
    Teilbäume, die erst in späteren Dateien definiert werden kannst Du trotzdem einfach nach oben busieren, indem Du das oberste item des Teilbaums einfach als leeres Item (ohne Attribute) in einer Datei definierste, die weiter vorne im Alphabet steht.

    Im Beispiel oben kannst Du den a-Teilbaum nach oben sortieren, indem Du in der 1. Datei a: definierst:

    itemdatei1.yaml
    Code:
    a:
    c:
        c1:
    b:
        b2:
    ergibt:
    Code:
    a:
        a1:
    c:
        c1:
        c2:
    b:
        b2:
        b1:
    Zuletzt geändert von Msinn; 26.01.2020, 23:29.
    Viele Grüße
    Martin

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

    Kommentar


      #3
      Msinn

      Danke für die Erklärung.

      Werden Items mit Unterstrukturen anders behandelt, als welche ohne?
      Warum ich frage: In meinen Beispiel über stimmt die Reihenfolge im Item Baum nicht mit der aus der item.yaml überein.

      Wie ist es dann zu erklären?
      Ich habe meine item.yaml hier nochmal angehangen.
      Angehängte Dateien

      Kommentar


        #4
        Alle Items werden gleich behandelt. Wir ich bereits schrieb, werden die Items in der Reihenfolge in der sie eingelesen werden in den Itemtree eingehängt. Wenn es einen Teilpfad des Pfades des einzulesenden Items bereits gibt, wird der Yaml Node dort eingehängt, sonst wird der Node hinten angehängt. Das macht lib.config für alle Datein im Items Verzeichnis in alphabetischer Reihenfolge der Dateinamen. Auch die Dateinamen sind Groß-/Kleinschreib sensitiv.

        Das Handling ist nur leicht anders, wenn Du structs verwendest.

        Viele Grüße
        Martin

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

        Kommentar


          #5
          Zitat von Msinn Beitrag anzeigen
          Das Handling ist nur leicht anders, wenn Du structs verwendest.
          Bedeutet konkret, dass wenn structs verwendet werden, diese Items innerhalb einer item.yaml zu erst eingelesen werden, also Vorrang haben?
          Damit wäre zumindest der Unterschied zwischen der Reihenfolge in der item.yaml und der Darstellung im Admin ItemTree erklärbar.

          Wenn dem so ist, lässt sich das umgehen?

          Kommentar


            #6
            Sisamiwe Was genau stört Dich denn? Ist das nur die Anzeige in der Baumstruktur im Admin Interface?

            Kommentar


              #7
              Zitat von bmx Beitrag anzeigen
              Was genau stört Dich denn? Ist das nur die Anzeige in der Baumstruktur im Admin Interface?
              Im Prinzip, ja. Ich arbeite an den Viessmann Heizungsplugin, welches sehr viele Items hat. Nicht alle davon machen in der Visu Sinn. Ich wollte alle Items in einer gewissen Reihenfolge angezeigt bekommen. Schlussendlich ist es aber nur Kosmetik oder Gewöhnung.
              Passt schon.

              Kommentar


                #8
                Naja in dem Fall könnte man evtl. eine Sortierung im Admin Interface realisieren. Müßte sich dann Msinn anschauen ob das mit vertretbarem Aufwand möglich ist...

                Kommentar


                  #9
                  Eine Sortierung im Admin Interface wäre eine Kopie des Trees in alphabetisch sortiert. So wie ich Sisamiwe verstanden habe, möchte er jedoch die Reihenfolge festlegen:
                  Zitat von Sisamiwe Beitrag anzeigen
                  alle Items in einer gewissen Reihenfolge
                  Eine manuelle Sortierung im Admin Interface sehe ich jedoch nicht. Die wäre:
                  • aufwendig zu implementieren,
                  • aufwendig zu handhaben,
                  • statisch (was passiert, wenn man ein Item hinzufügt) und
                  • vermutlich sehr selten genutzt
                  Viele Grüße
                  Martin

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

                  Kommentar


                    #10
                    Msinn
                    Danke.
                    Ja, in definierter Reihenfolge wäre mir am liebsten. Ich bin aber auch Deiner Meinung, dass der Aufwand
                    Zitat von Msinn Beitrag anzeigen
                    • aufwendig zu implementieren,
                    • aufwendig zu handhaben,
                    • statisch (was passiert, wenn man ein Item hinzufügt) und
                    • vermutlich sehr selten genutzt
                    das nicht rechtfertigt.

                    Wie würde es denn mit einer streng alphabetischen Reihenfolge aussehen?




                    Kommentar


                      #11
                      Muss ich mal schauen
                      Viele Grüße
                      Martin

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

                      Kommentar


                        #12
                        Wobei ich Dein Sortier-Problem immer noch nicht verstehe. Ohne structs kannst Du beliebig sortieren (siehe Beschreibung oben).

                        Bei Verwendung von structs, werden diese in den jeweiligen Teilbaum der aus einer einzelnen item.yaml Datei entsteht gemerged bevor dieser Teilbaum in den Gesamtbaum gemerged wird. Auch hierbei sollte kein Problem entstehen.

                        Wenn Dir die Reihenfolge der Items innerhalb der struct nicht gefällt, müsstest Du Dich an den Plugin Autor wenden, dessen struct(s) Du nutzt. Alternativ müsstet Du auf die struct(s) verzichten und die Items vollständig in der jeweiligen item.yaml definieren.

                        Als letzte weitere Option kannst Du Dir selbst eine struct erstellen, die Du von der struct aus dem Plugin abschaust und in /etc/struct.yaml definierst.
                        Viele Grüße
                        Martin

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

                        Kommentar


                          #13
                          Zitat von Msinn Beitrag anzeigen
                          Ohne structs kannst Du beliebig sortieren (siehe Beschreibung oben).
                          Das verstehe ich und das klappt auch.

                          Zitat von Msinn Beitrag anzeigen
                          Bei Verwendung von structs, werden diese in den jeweiligen Teilbaum der aus einer einzelnen item.yaml Datei entsteht gemerged bevor dieser Teilbaum in den Gesamtbaum gemerged wird. Auch hierbei sollte kein Problem entstehen.
                          Das struct habe ich selbst bei einen von mir entwickelten Plugin definiert. Es ist also Bestandteil der (meiner) plugin.yaml

                          Bei der Anwendung passiert folgendes: Alle items sind in einer item.yaml definiert. Die Items, bei denen structs verwendet werden, werden unabhängig von der Position im der item.yaml im Baum immer zuerst eingehangen.

                          Ich mach mal ein Beispiel.
                          item.yaml
                          Code:
                          viessmann:
                            allgemein:
                              aussentemp:
                              aussentemp_gedaempft:
                            brenner:
                            heizkreis_a1m1:
                              schaltzeiten:
                                montag:
                                  struct: viessmann.timer
                          ergibt im Tree:

                          Code:
                          viessmann:
                            heizkreis_a1m1:
                              schaltzeiten:
                                montag:
                            allgemein:
                              aussentemp:
                              aussentemp_gedaempft:
                            brenner:
                          Die Itemsäste, in denen structs verwendet werden, werden scheinbar zuerst eingelesen und eingehangen.

                          Ist die Erklärung nun verständlicher?

                          PS: Wie bekommt man aktuell mit Copy&Paste die Formatierungen (Leerzeichen) mit ins den Thread übertragen?
                          Zuletzt geändert von Sisamiwe; 01.02.2020, 16:53.

                          Kommentar


                            #14
                            Zitat von Sisamiwe Beitrag anzeigen
                            Wie bekommt man aktuell mit Copy&Paste die Formatierungen (Leerzeichen) mit ins den Thread übertragen?
                            Ich nutze einfach Copy&Paste
                            Viele Grüße
                            Martin

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

                            Kommentar


                              #15
                              Zitat von Msinn Beitrag anzeigen
                              Ich nutze einfach Copy&Paste
                              Wenn ich das mache, werden alle Leerzeichen gelöscht am Zeilenanfang gelöscht, so dass die Strukturierung der Items verloren geht.
                              Es gibt noch andere Benutzer, die das Problem haben.

                              Im Thread aktiere ich erst die "Raute", also Code einfügen und dann füge ich mit STRG+V den Inhalt ein. Die Leerzeichen am Zeilenanfang sind alle weg.


                              Wie machst Du es konkret?

                              Kommentar

                              Lädt...
                              X