Ankündigung

Einklappen
Keine Ankündigung bisher.

Supportthread für UZSU Plugin

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

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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • jhw75
    antwortet
    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!

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    So meinte ich das danke

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Onkelandy Du meintest sicher in der requirements.txt des Plugins die Zeile
    Code:
    scipy>=1.1.0,<=1.2.1
    durch
    Code:
    scipy>=1.1.0
    ersetzen.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Passt alles. Bitte lösch einfach das <1.2 im plugin.yaml vom uzsu plugin

    Einen Kommentar schreiben:

Lädt...
X