Ankündigung

Einklappen
Keine Ankündigung bisher.

Stateengine Plugin Support

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

    #46
    Bitte genau lesen. Danach können wir über Optimierung der doku diskutieren
    https://www.smarthomeng.de/user/plug...user_doc5.html

    https://www.smarthomeng.de/user/plug...ser_doc10.html

    ​​​​​​​https://www.smarthomeng.de/user/plug...ateengine.html

    Kommentar


      #47
      so. Ich bin weiter gekommen. Und vielen Dank für die Hinweise. Die haben natürlich ins Schwarze getroffen. Ich schreibe zu den einzelnen Punkten mal ein kleines Beispiel. Vielleicht kann jemand nach mir davon profitieren.
      Zitat von Onkelandy Beitrag anzeigen
      Bitte genau lesen. Danach können wir über Optimierung der doku diskutieren
      https://www.smarthomeng.de/user/plug...user_doc5.html
      Dieser Punkt ist einfach und eindeutig. Hab bei 2 Bedingungen das item: vergessen.
      Code:
      rules:
          # Item das anzeigt, ob die Helligkeit außen mehr als 43kLux beträgt
          se_item_brightnessGTmaxK: Zentral.Wetterdaten.Helligkeit.Sueden.GTmaxK
      
      Clouding:
          enter:
              se_agemin_brightnessGTmaxK: item:Zentral.Beschattung.Setup.Sueden.MinAgeBrightness

      Dynamisch, mit relativen items geht natürlich auch, hier mal 3 Beispiele wie...:
      Code:
      rules:
          se_item_twilight: Zentral.Wetterdaten.Daemmerung
      
      Nacht:
          enter:
              se_max_twilight: eval:se_eval.get_relative_itemvalue('Zentral.Beschattung.Setup.Sueden.MinTwilight')
      Da aber das Ziel sein soll, das Coding nur 1-mal zu schreiben und dann dynamisch auf jede Seite anwenden kann:

      Code:
      settings:
          direction:
              name: Hausseite zur dynamischen Wertermittlung
              type: str
              value: 'Zentral.Beschattung.Setup.Sueden.MinTwilight'
      
      Nacht:
          enter:
              se_max_twilight: eval:se_eval.get_relative_itemvalue(se_eval.get_relative_itemvalue('..settings.direction'))
      Die einzelnen Einstellungswerte werden dann über ein eigenes struct, dass nur die settings.direction enthält, eingebunden. Dieses Struct gibt es dann pro Seite (Osten, Süden, Westen) 1-mal. Über ..settings.direction wird dann der jeweils richtige Wert gezogen.

      Hier als letztes Beispiel und meine Wunschvorstellung erfolgreich umgesetzt, angelehnt an dem Beispiel:
      Code:
      se_max_brightness: eval:se_eval.get_relative_itemvalue('..settings.{} .max_bright'.format(se_eval.get_variable('current. state_name'))
      Meine Interpretation dazu:

      Code:
      settings:
          direction:
              name: Hausseite zur dynamischen Wertermittlung
              type: str
              value: 'Sueden'
      
      Nacht:
          enter:
              se_max_twilight: eval:se_eval.get_relative_itemvalue('Zentral.Beschattung.Setup.{}.MinTwilight'.format(se_eval.get_relative_itemvalue('..settings.direction')))
      Ich kann zwar auf keinen Fall erklären, was hier z.B. {} mit den geschweiften Klammern passiert oder für was ich .format() benötige. Das versuche ich mir noch mal durch Lesen der Doku näher zu bringen. Laufen tut es jedenfalls wie Hölle.


      Auch hier Danke für den dezenten Hinweis - wer Lesen kann, ist klar im Vorteil. Steht alles da und wenn man das macht, dann klappt es auch. Über die verlinkte Seite bin ich vorher noch nicht gestolpert. Entweder hab ich es tatsächlich einfach überlesen oder ich hatte einen anderen Einstieg, da ich ja grundsätzlich Umsteiger von autoblind bin und auch die 1.6.1 als Update installiert habe.

      Ich kann jetzt jedenfalls Gas geben und will heute Abend zum Test eine Terrassentür einbinden (zusätzliche Bedingungen wegen Tür auf!) und eine 2. Seite. Wenn das problemlos klappt, gibt es den Update auf QAS...

      Vielen Dank noch mal für die Hinweise.
      Viele Grüße
      Marco

      Kommentar


        #48
        Zitat von EIB@Home Beitrag anzeigen
        Ich kann zwar auf keinen Fall erklären, was hier z.B. {} mit den geschweiften Klammern passiert oder für was ich .format() benötige. Das versuche ich mir noch mal durch Lesen der Doku näher zu bringen. Laufen tut es jedenfalls wie Hölle.
        Notwendig ist relativ. Es ist halt klassische Python Nomenklatur, wenn du einen String hast, in den du was einfügen willst. Ginge sicher auch anders, bin kein Python Pro.
        Zitat von EIB@Home Beitrag anzeigen
        Auch hier Danke für den dezenten Hinweis - wer Lesen kann, ist klar im Vorteil. Steht alles da und wenn man das macht, dann klappt es auch. Über die verlinkte Seite bin ich vorher noch nicht gestolpert.
        Ich denke auch, dass diese Seite sehr leicht zu übersehen ist. Msinn können wir das direkt in der Dokuwebseite optimieren?

        Du kannst übrigens auch templates nutzen, um noch wildere Dinge zu machen. Sehr cool wäre, wenn du dann einen Blogbeitrag schreiben würdest. Hab ich schon lange auf dem Radar, hier einen advanced zu schreiben, aber das wär eh besser, wer anderes macht es.
        Mit shng 1.7 gibt es übrigens nested structs und die Möglichkeit, Listen innerhalb von structs zu mergen. Besonders cool für eval_trigger für das "Stateengine Item" (= rules). Vielleicht mal in templates rein schnuppern und auf 1.7 warten..?

        Kommentar


          #49
          Da die Seiten aus den Plugindaten generiert werden, sehe ich im Moment keine Möglichkeit die Seite hervorzuheben. Die Seite ist außer in der Doku selbst auch noch aus der Plugin Liste im Admin Interface erreichbar.Onkelandy Du könntest höchstens einen Blog Artikel verfassen und aus dem auf alle relevanten Doku Seiten verlinken.
          Viele Grüße
          Martin

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

          Kommentar


            #50
            Es wäre vermutlich schon hier hilfreich, in der zweiten Spalte "Plugin Konfiguration" hinzuzufügen, also entweder zusätzlich oder besser anstatt dem Link auf dem Pluginnamen:
            https://www.smarthomeng.de/user/plug...ns_system.html

            Ansonsten ist sicher schon viel gewonnen, wenn ich auf die erste Seite der stateengine Plugin darauf verlinke wie es bei den anderen Plugins eh schon passiert.

            Kommentar


              #51
              Wärs vielleicht noch ne Idee, in der Pluginübersicht einen Hinweis auf etwaige vorhandene Structs zu machen? Icon mit Link auf admin/items/structs, vielleicht sogar mit aktiviertem Filter? Problem auf jener Seite ist, dass sie rein zufällig sortiert scheint und man auch nicht zwingend dran denkt, dort nach Templates der Plugins zu suchen.

              Kommentar


                #52
                Ich werde da erstmal nichts tun. Ich kann schon das März Release Datum für die v1.7 nicht halten, da mich durch die Corona Themen die Firma stark in Anspruch nimmt. Wenn ich jetzt noch ein Thema angehe (das überarbeiten des Generators für die Plugin Doku), reden wir von frühestens Mai für ein Release.
                Viele Grüße
                Martin

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

                Kommentar


                  #53
                  Zitat von Onkelandy Beitrag anzeigen
                  Du kannst übrigens auch templates nutzen, um noch wildere Dinge zu machen. Sehr cool wäre, wenn du dann einen Blogbeitrag schreiben würdest. Hab ich schon lange auf dem Radar, hier einen advanced zu schreiben, aber das wär eh besser, wer anderes macht es.
                  Ich kann gerne einen Blogbeitrag schreiben. Von advanced können wir da aber nicht sprechen. Sobald mein Setup läuft, kann ich mich da mal dran machen. Gibt es Vorlagen oder HowTo's zum Erstellen des Blogeintrags?

                  Kommentar


                    #54
                    ne, kannst dich an den bestehenden Beiträgen orientieren:
                    https://www.smarthomeng.de/blog

                    Bzw. hier, wobei es wohl eher deutsch sein sollte: https://www.smarthomeng.de/starting-...toblind-plugin

                    Kommentar

                    Lädt...
                    X