Ankündigung

Einklappen
Keine Ankündigung bisher.

Multiinstance-Plugins und Item-Structs

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

    Multiinstance-Plugins und Item-Structs

    Hallo zusammen,
    grundsätzlich sind structs eine tolle Sache, die wirklich vieles vereinfachen. Insbesondere in umfangreichen Plugins macht das schon einen Unterschied. Schwierig wird es allerdings dann, wenn man Plugins nutzen will, die mehrere Instanzen erlauben, denn dann kann ich die structs so nicht verwenden bzw. müsste ja für jede mögliche Instanz ein eigenes struct angelegen. Oder gibt es da eine Möglichkeit das anders zu lösen?

    #2
    Schau Dir mal in Multi Instance Plugins welche structs mitbringen an, wir as funktioniert (z.B. hue2, avm, rtr2). Dort sind in der plugin.yaml des Plugins jeweils structs definiert, die mehrere Instanzen unterstützen.
    Viele Grüße
    Martin

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

    Kommentar


      #3
      Danke für die Hinweise. Sieht irgendwie kompliziert aus. Zumindest sehe ich bei den unterschiedlichen Plugins auch unterschiedeliche Ansätze das zu lösen. Ich versuche mich da mal durchzuwurschteln.

      Kommentar


        #4
        Dort wo Du in einer normalen item Definition den Instanz Namen angibst das Wort instance einzutragen, erscheint mir erstmal nicht kompliziert.

        Unterschiedliche Ansätze dafür kann ich in den genannten Plugins erstmal nicht erkennen.
        Viele Grüße
        Martin

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

        Kommentar


          #5
          Ja, ist eigentlich simpel. In deiner items.yaml musst du dann zu struct einfach noch eine Zeile instance: xyz anfügen.
          Sollte bei allen plugins gleich implementiert sein, warum meinst du, dass da unterschiedliche Ansätze sind..?

          Kommentar


            #6
            Zitat von Onkelandy Beitrag anzeigen
            , ist eigentlich simpel. In deiner items.yaml musst du dann zu struct einfach noch eine Zeile instance: xyz anfügen.
            Sollte bei allen plugins gleich implementiert sein, warum meinst du, dass da unterschiedliche Ansätze sind..?
            Wahrscheinlich habe ich mich da geirrt und in der Doku finde ich nicht so viel zu der Multiinstanzfähigkeit. Was ich aber nun gefunden habe:

            Code:
                        rtr2_id@instance: ..:.
                        rtr2_function@instance: control_output​
            Das erste Attribut vererbt von dem übergeordneten Item die Attribute bzw. Werte. Das 2. habe ich nicht ganz verstanden.

            Das mit der Multiinstanz habe ich aber nicht so recht verstanden, bis auf den Teil in der Item.yaml mit der zusätzlichen Zeile. Woanders muss ich dann nichts machen. Außer in der plugin.yaml? Funktioniert bei mir irgendwie nicht:

            Code:
            huawei_sun2000_1:
                plugin_name: huawei_sun2000
                instance: wr_haus
                host: 192.168.1.7
                slave: 16
                smartmeter: True
                storage: True
            
            huawei_sun2000_2:
                plugin_name: huawei_sun2000
                instance: wr_garage
                host: 192.168.1.7
                slave: 1​
            item.yaml:

            Code:
                    Photovoltaik:
                        SUN2000_WR_Haus:
                            struct: huawei_sun2000.inverter
                            instance: wr_haus
                        SUN2000_WR_Garage:
                            struct: huawei_sun2000.inverter
                            instance: wr_garage
                        SUN2000_Meter:
                            struct: huawei_sun2000.meter
                            instance: wr_haus
                        SUN2000_Storage:
                            struct: huawei_sun2000.storage
                            instance: wr_haus​

            Kommentar


              #7
              Jetzt hat es, glaube ich, "klick" gemacht. das @instance gilt für Item-Attribute, auf die per Instanz zugegriffen werden soll. Alles was dann ohne @instanz ist, ist dann eben in allen Instanzen gleich.

              Kommentar

              Lädt...
              X