Ankündigung

Einklappen
Keine Ankündigung bisher.

Supportthread für UZSU Plugin

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

    #31
    So meinte ich das danke

    Kommentar


      #32
      Danke Onkelandy & auch Msinn für die näherer Ausführung - mit beiden Info´s war es nun ein Kinderspiel und UZSU funkt nun tadellos. :-)
      Da es ein genereller Konfig-Schritt während des Scipy Updates ist, macht es vielleicht Sinn Onkelandy´s Eingangsbeschreibung (#1) mit dem Hinweis auf die requirement.txt Änderung zu ergänzen? Hätte dies wohl kaum selbst rausgefunden...
      Wie auch immer, Vielen Dank & LG!

      Kommentar


        #33
        Hallo,

        ich möchte den Anwendungsfall umsetzen, bei dem ich durch ein (zentrales) Bool-Item diverse UZSUs deaktivieren will.

        Alle UZSUs sind mit dem struct
        Code:
        struct: uzsu.child
        angelegt.

        Ich möchte das Aktivieren/Deaktivieren mit on_change bei dem Bool Item umsetzen und von dort das ...uzsu.active umstellen.
        Das sieht dann aktuell so aus:
        Code:
        %YAML 1.1
        ---
        raumtemp:
            anwesend:
                type: bool
                cache: true
                on_change:
                  - raumtemp.eg.wohnen.soll.uzsu.active = value
                  - raumtemp.eg.diele.soll.uzsu.active = value
        Folgendes passiert:
        • Nutze ich das Bool-Item (wie oben beschrieben), werden die beiden Items ...uzsu.active auch gemäß dem Status des Bool-Items geändert. Die UZSU selbst wird aber nicht aktiviert/deaktiviert.
        • Ändere ich im Backend das Item ...uzsu.active direkt, wird auch die UZSU aktiviert/deaktiviert.
        Was mache ich falsch?
        Bzw. verstehe ich das Verhalten nicht.
        Zuletzt geändert von Sisamiwe; 29.12.2019, 14:20.

        Kommentar


          #34
          Zitat von jhw75 Beitrag anzeigen
          Da es ein genereller Konfig-Schritt während des Scipy Updates ist, macht es vielleicht Sinn Onkelandy´s Eingangsbeschreibung (#1) mit dem Hinweis auf die requirement.txt Änderung zu ergänzen? Hätte dies wohl kaum selbst rausgefunden..
          Im develop Branch waren die Requirements bereits geändert. In den Requirements der Plugins sollte eigentlich nur der Entwickler des Plugins rum pfuschen (müssen), der ja hoffentlich weiss was er tut
          Viele Grüße
          Martin

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

          Kommentar


            #35
            Ich habe noch etwas weiter versucht.
            Mit
            Code:
            %YAML 1.1
            ---
            raumtemp:
                anwesend:
                    type: bool
                    cache: true
                    on_change:
                      - sh.raumtemp.eg.wohnen.soll.uzsu.active(True) if value == 1 else sh.raumtemp.eg.wohnen.soll.uzsu.active(False)
            Geht es.
            Komisch ist es trotzdem.

            Kommentar


              #36
              Onkelandy

              Ich habe zum UZSU Plugin eine Frage: Ist es möglich, dass die die Items mit UZSU beim Aktivieren der UZSU auf den Wert zu dieser Zeit geplanten Wert gesetzt werden?
              Ich kenne das Back in Time (was gut für einen Systemneustart ist), ich suche aber explizit die Möglichkeit, das Item auf den zu am Anschaltzeitpunkt geplanten Wert zu setzen?

              Kommentar


                #37
                Ad requirements: das war mein kläglicher Versuch, Updates der Pythonmodule laufen lassen zu können, ohne dass SciPy auch aktualisiert werden will. Inzwischen löse ich das im Image anders. Fakt bleibt, dass ein normales Update von scipy über pip am Raspi einfach nicht machbar ist.

                Sisamiwe Nützt dir das Beispiel hier am Ende vielleicht was, sprich das "planned()"? https://www.smarthomeng.de/using-the...-light-control
                Ansonsten könntest du bei aktiviertem backintime Feature die Zeile 529 vom Plugin wie folgt ändern:
                Code:
                if not cond2 and cond4:

                Bezüglich on_change: Das active Item ist mit einem eval versehen, ohne enforce_update, vielleicht ist das das Problem...?
                Code:
                eval: sh...activate(value)

                Kommentar


                  #38
                  Onkelandy

                  Danke für deine Hinweise.
                  Könnte man im UZSU Plugin noch eine Funktion "last" implementieren, also UZSU.last(), mit der man den letzten Zustand erfragen kann?
                  Damit könnte man auf den aktuell geplanten Zustand bei Einschalten setzen.
                  Was meinst Du?

                  Kommentar


                    #39
                    Gute Idee. Probier doch bitte mal diesen PR: https://github.com/smarthomeNG/plugins/pull/314
                    uzsu.lastvalue() liefert den letzten gültigen Wert, sofern die UZSU aktiv ist. Wenn sie inaktiv ist, kommt "None". Musst also den Wert nach dem Aktivieren und nicht davor abfragen.

                    Kommentar


                      #40
                      Onkelandy

                      Das mach ich gern ab dem 3.1.20
                      Verrätst du mir noch, wie ich an den PR komme?
                      Ich bin mit git noch nicht so fit. Danke.

                      Wenn man mal die Idee weiter spinnt, könnte im plugin bzw auch der Visu eine Funktion "resume" gut sein.
                      Wenn man dies aktiviert, wird beim Einschalten der UZSU der zu diesem Zeitpunkt geplante Wert gesetzt.
                      Aber wie gesagt, teste ich gern erstmal.

                      Guten Rutsch

                      Kommentar


                        #41
                        am einfachsten im browser den raw inhalt der files anzeigen lassen und copy/paste
                        https://raw.githubusercontent.com/sm...su/__init__.py
                        https://raw.githubusercontent.com/sm...su/plugin.yaml

                        Die Resume Idee find ich gut - daher hab ich sie auch gleich eingebaut. Hoffe, es klappt alles.
                        Zuletzt geändert von Onkelandy; 01.01.2020, 11:28.

                        Kommentar


                          #42
                          Zitat von Onkelandy Beitrag anzeigen
                          Die Resume Idee find ich gut - daher hab ich sie auch gleich eingebaut. Hoffe, es klappt alles.
                          So, ich habe den Test gemacht. Das klappt alles, zumindest aus einer Logik heraus.

                          logik.yaml
                          Code:
                          if sh.raumtemp.anwesend() == 0:
                              logger.info('Abwesend')
                              sh.raumtemp.eg.wohnen.soll.uzsu.active(False)
                              sh.raumtemp.eg.wohnen.soll(sh.raumtemp.anwesend.temp_abwesend())
                          else:
                              logger.info('Anwesend')
                              sh.raumtemp.eg.wohnen.soll.uzsu.active(True)
                              sh.raumtemp.eg.wohnen.soll(sh.raumtemp.eg.wohnen.soll.uzsu.lastvalue())
                          mit on_update in der item.yaml habe ich es noch hinbekommen:

                          Code:
                          %YAML 1.1
                          ---
                          raumtemp:
                              anwesend:
                                  remark: 0-abwesend (RTR dauerhaft auf Nacht) 1-anwesend (RTR auf Comfort mit jeweiliger UZSU)
                                  type: bool
                                  cache: true
                                  on_change:
                                    - sh.raumtemp.eg.wohnen.soll.uzsu.active(True) if value == 1 else sh.raumtemp.eg.wohnen.soll.uzsu.active(False)
                                    - raumtemp.eg.wohnen.soll = sh.raumtemp.eg.wohnen.soll.uzsu.lastvalue() if value == 1 else sh.raumtemp.anwesend.temp_abwesend()
                          Hier wird zwar die UZSU an bzw ausgeschaltet und der Soll-Wert auf den Abwesenheitswert gesetzt, aber bei Wiedereinschalten nicht auf den lastvalue.
                          Ich bin mit aber auch nicht sicher, wie ich die UZSU-Funktion im on_update aufrufe.

                          Kann ich noch weiter unterstützen? bzw. Hast Du eine Idee für on_update?
                          Danke

                          Kommentar


                            #43
                            Mir ist auch schon aufgefallen, dass das lastvalue() nicht mit evals oder on_update funktioniert. Noch nicht klar, warum. Eventuell muss hier ein Wert mitgesendet werden, damit was passiert.
                            Hast du es schon mit resume probiert?

                            Kommentar


                              #44
                              Zitat von Onkelandy Beitrag anzeigen
                              Hast du es schon mit resume probiert?
                              Nein, das habe ich noch nicht. Ich konnte im plugin bzw. dem PR auch keinen Hinweis finden, dass die Funktion schon drin ist.
                              Wie muss ich das resume anwenden?

                              Kommentar


                                #45
                                Einfach die Funktion resume() aufrufen, also zB
                                sh.raumtemp.eg.wohnen.soll.uzsu.resume() https://github.com/smarthomeNG/plugi...b5da9bad16eae6

                                Kommentar

                                Lädt...
                                X