Ankündigung

Einklappen
Keine Ankündigung bisher.

Supportthread für UZSU Plugin

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

  • wvhn
    antwortet
    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.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    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.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    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.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    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..?

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    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.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    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.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    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"?

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    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..?

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    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

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    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?

    Einen Kommentar schreiben:


  • Mike01
    antwortet
    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

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Mike01

    Du kannst den korrigierten Stand hier herunterladen und die Dateien im Ordner „./plugins/uzsu“ ersetzen. (Vorher vlt. den bestehenden Ordner als Backup umbenennen,) Diese Version sollte noch mit v1.10 kompatibel sein).

    Gruß
    Wolfram

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Hab’s jetzt auch mal getestet. Im Master v1.10 schmeißt das Plugin tatsächlich Fehler. Die sind im Develop aber bereits korrigiert. Damit funktioniert die Serie dann wieder.

    Gruß
    Wolfram
    Zuletzt geändert von wvhn; 08.09.2024, 08:00.

    Einen Kommentar schreiben:

Lädt...
X