Ankündigung

Einklappen
Keine Ankündigung bisher.

Supportthread für UZSU Plugin

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

    wvhn

    Hab die Dateien ausgetauscht und nochmal getestet, jetzt scheint es zu funktionieren. Vielen Dank für deine Tests und Zeit.
    (Diese Funktion scheint wohl bisher nicht so oft benötigt zu werden, habs auch nur durch zufall entdeckt, und wollte es testen, da es sich anhand der beschreibung für den Springbrunnen direkt angeboten hat.)

    Gruß, Mike

    Kommentar


      Onkelandy

      Hey,
      ich habe beobachtet, dass UZSUhren, die Schalteinträgen haben, aber deactiviert sind, nach einem Neustart von shNG active sind.
      Ist das Verhalten normal / gewünscht?

      Kommentar


        Moin Michael Sisamiwe,

        Mit welcher Version tritt das auf? Hast Du ein Beispiel für ein Dict, mit dem das auftritt?
        Ich hab dies gerade mit v1.10 Master und Develop getestet und kann den Fehler nicht nachvollziehen.
        dabei habe ich das struct uzsu.child in den items verwendet.

        Gruß
        Wolfram

        Kommentar


          Zitat von Sisamiwe Beitrag anzeigen
          Onkelandy

          Hey,
          ich habe beobachtet, dass UZSUhren, die Schalteinträgen haben, aber deactiviert sind, nach einem Neustart von shNG active sind.
          Ist das Verhalten normal / gewünscht?
          definitiv nicht gewünscht, ist mir aber auch nie aufgefallen.. passiert das bei einem ganz neu aufgesetzten Item auch? Könnte es an einer Logik liegen, die da was ändert..?

          Kommentar


            Hallo,
            Onkelandy, wvhn
            Danke für Eure Rückmeldungen.
            Ich konnte es eben auch nicht reproduzieren.
            Hintergrund: Ich habe eine USZU, die meiner Heizung sagt, wann Brauchwasser erhitzt werden soll. Wenn wir im Urlaub sind, deaktiviere ich die UZSU. Nun ist es schon ein paar mal passiert, dass "irgendetwas" die deaktivierte UZSU wieder aktiviert. Und da hatte ich den Neustart im Verdacht, da dies das einzige war, was im Urlaub passiert ist.

            Kann ich sehen / nachvollziehen, war die UZSU aktiviert / deaktiviert? Ist das "Änderung durch" im Item "uzsu.active.status"?

            Kommentar


              Ich denke Änderung durch bei uzsu.active sollte Aufschluss geben.

              Kommentar


                Moin Onkelandy, AndreK,

                da immer mal wieder die Frage nach Einmal-Events bei der UZSU auftaucht, habe ich mal überlegt, wie das einfach realisiert werden kann.
                Die Grundidee ist, dem Plugin mitzuteilen, dass es sich bei einem Event um einen Einmal-Event handelt. Ist das der Fall, gibt das Plugin den Event zu gegebener Zeit an den Scheduler und setzt im Anschluss die Eigenschaft "active" für diesen Event (nicht für das ganze Dict!) auf "False".

                Das DIct eines UZSU-items ist wie folgt aufgebaut:
                Code:
                {
                    # Angaben zur Interpolation
                    'interpolation': {'type': 'none', 'initialized': False, 'itemtype': 'num', 'interval': 5, 'initage': 0},
                
                    # Liste der Schaltzeitpunkte
                    'list': [
                        {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,DI,MI', 'value': '1', 'time': '04:00'},
                        {'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,DI,MI', 'value': '0', 'calculated': '07:26', 'time': 'sunrise-15m'},
                        ...
                    ],
                
                    # Aktivierung der gesamten Zeitschaltuhr für das item
                     'active': True,
                
                    # Rückmeldungen aus dem Plugin, die für Widgets in der Visu benötigt werden
                    'SunCalculated': {
                        'sunrise': {'TU': '07:38', 'WE': '07:40', 'TH': '07:41', 'FR': '07:43', 'SA': '07:44', 'SU': '07:46', 'MO': '07:47'},
                        'sunset': {'TU': '16:39', 'WE': '16:38', 'TH': '16:37', 'FR': '16:36', 'SA': '16:35', 'SU': '16:34', 'MO': '16:33'}
                    },
                    'plugin_version': '2.0.2', 'sunrise': '07:40', 'sunset': '16:39'
                }

                Man könnte bei den einzelnen Schaltzeitpunkten "active":"Once" zulassen (wozu der Typ der Eigenschaft "active" geändert werden muss), oder eine weitere Eigenschaft "once": True / False einführen. In den UZSU-Widgets könnte die erste Lösung etwas schanker realisiert werden, weil die Struktur des Dicts nicht angepasst werden muss. Damit sind auch weniger Kompatibilitätsprobleme bei Versionsmix zu erwarten. Ob das UZSU-Widget die Funktion anbietet, kann man wieder über die Versionsnummer des Plugins steuern, die für solche Zwecke schon im Dict steht.

                Der Anwender kann entweder immer wieder dieselben Einträge verwenden und lediglich Zeiten und Werte ändern, oder er legt jedesmal einen neuen Eintrag an. Dann muss er die überflüssigen Einträge manuell (über das Widget) löschen.

                Was haltet Ihr davon?

                Gruß
                Wolfram

                Kommentar


                  Das Thema kommt mir bekannt vor, eigentlich wollte ich das eh mal angehen, hab ich aber offenbar nicht gemacht. Ich fände es prinzipiell schöner, den active Wert auf bool zu lassen und einen Once Parameter hinzu zu fügen. Im Widget könnte man neben dem Akt Button einen "Once" Button einführen..?
                  Die Umsetzung im Plugin erscheint auf die Schnelle recht einfach, man müsste in der _set Methode ein
                  if self._items[item].get('once'):
                  self.activate(False, item)
                  einsetzen und das WebIF aktualisieren.

                  Kommentar


                    Den "once"-buttun muss ich eh einführen. Ich schau mir mal an, wieviel Aufwand der zusätzliche Parameter "once" in der Bearbeitung des Dict macht.

                    Wie ist der Zeitplan? Ich könnte das im Widget noch vor dem nächsten smartVISU-Release umsetzen, das in den nächsten 2-3 Wochen kommen soll.

                    Kommentar


                      Kann ich zeitnah einrichten. Die Frage wäre grad ob wir es bei once belassen oder ob wir ein "repeat" einführen wollen, um es noch flexibler zu gestalten. Hm, wäre dann repeat=0 -> once oder repeat=1.. Vielleicht müsste man's anders nennen. Dann bräuchte es im dict halt noch einen Parameter, in dem hochgezählt wird, wie oft der Wert gesetzt wurde und wenn der Zielwert erreicht ist, schaltet es auf inaktiv. Wär dann kein Button, sondern ein Zahlenfeld. Standard könnte -1 für unlimited sein..?

                      Kommentar


                        Das Plugin ist durch die Serien-Funktion schon ziemlich komplex geworden. Das spricht aus meiner Sicht für ein einfaches "once". Wenn wir ein "repeat" machen, muss die verbleibende Anzahl der Schaltvorgänge im Dict übermittelt werden und sie muss in dem eh schon engen Popup angezeigt werden. Aus meiner Sicht hoher Aufwand für begrenzten Nutzen.

                        EDIT: Ich muss die Größe des Popups begrenzen, um es auf Smartphone-Displays anzeigen zu können. Dort werden sogar schon die Buttons für den Expertenmodus und die Serien ausgeblendet, damit das noch passt. Statt eines zusätzlichen Buttons muss ich wahrscheinlich den vorhandenen Button durch ein Select („akt“, “once“, „aus“) ersetzen.
                        Zuletzt geändert von wvhn; 20.11.2024, 09:52.

                        Kommentar


                          Wir streben hier ein "globales once" an, das prinzipiell in "Optionen" verschwinden könnte, oder? Und zusätzlich ein "Once" für jeden Eintrag in der Liste? Letzteres macht die Sache noch ein bisschen kompliziert, muss ich genauer anschauen. Aber spätestens ab dem Zeitpunkt, wo man das Liste im dict nicht einzeln ändert, sondern zB im Admin Interface 3 Einträge gleichzeitig durch andere ersetzt, wird es haarig.

                          Kommentar


                            Moin @onkelandy,

                            da jedes item nur ein UZSU-item haben kann, geht das mit dem globalen "once" IMHO nicht, denn Du kannst dann keine sich wiederholenden Zeiten mehr angeben.
                            Ich bin deshalb von einem "once" pro Eintrag ausgegangen und habe gerade den ersten funktionsfähigen Entwurf fertig: es wird jetzt doch ein zusätzlicher Button "1 x", denn das Select würde noch mehr Platz wegnehmen.
                            grafik.png

                            Mir ist noch aufgefallen, dass man hier eine Zeitserie aktivieren kann. Ich kann bei "once":true die Zeitserie löschen und den Button inaktiv schalten, wenn das Plugin dies nicht händeln kann, oder wir lassen das zu. Dann darf das Plugin die Eigenschaft "active" erst nach Abarbeiten der Zeitserie auf false setzen. Was meinst Du?

                            Gruß
                            Wolfram
                            Zuletzt geändert von wvhn; 21.11.2024, 16:48.

                            Kommentar


                              Hab's befürchtet Wir müssten nochmals den Use Case durchgehen, aber vermutlich hast du schon Recht.
                              Für mich wäre es noch eine Art "Wecker/Timer" Funktion gewesen, für ein eigenes Item, das eben quasi als Wecker oder Reminder oder was auch immer fungiert.
                              Insofern würde ich's schon auch global zulassen wollen.

                              Zeitserie ist dann nochmals was Besonderes ja, vermutlich 1 Mal abarbeiten und dann aus.
                              Interpolation ist dann auch noch ein Thema, was die Abarbeitung im Plugin nicht unbedingt einfacher macht.

                              Kommentar


                                Hab den Unterschied noch nicht ganz verstanden. Man muss eh eine Zeit für den Wecker einstellen, also eine Zeile mit der Schaltzeit anlegen. In dieser Zeile kann man dann "once" ("1 x") aktivieren. Welchen Zusatznutzen bringt eine globale "once"-Funktion noch?

                                Ich denke, ich lasse die Erweiterung des Widgets erstmal aus dem Release heraus. Dann können wir das in Ruhe gemeinsam entwickeln und machen uns jetzt keinen künstlichen Zeitdruck. Oder was meinst Du?

                                Kommentar

                                Lädt...
                                X