Ankündigung

Einklappen
Keine Ankündigung bisher.

Supportthread für UZSU Plugin

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

  • manhartm
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Wäre cool, wenn's funzt. Gerne Ergebnisse hier teilen
    Ich habe eine erste Version mit dem Stateengine Plugin in Betrieb. Die Aufgabenstellung für unsere Aussenbeleuchtung ist:
    • Morgen: 0600 einschalten, Sonnenaufgang oder spätestens 0800 ausschalten
    • Abends: Sonnenuntergang oder spätestens 1800 einschalten und 2230 ausschalten
    Eine Lampe als Beispiel in meiner "light.yaml":

    Code:
    Licht:
    
        Trigger:
            type: bool
            enforce_updates: yes
            cycle: 60 = 1
    
        Aussen:
    
            Weichenlaterne:
                Licht:
                    type: bool
                    visu_acl: rw
                    knx_dpt: 1
                    knx_init: 1/0/131
                    knx_send: 1/0/130
                Automatik:
                    struct:
                      - stateengine.general
                      - stateengine.state_lock
                      - stateengine_light_outside
                    rules:
                        se_plugin: active
                        eval_trigger:
                          - Licht.Trigger
    In der Datei "struct.yaml" findet sich der Struct "stateengine_light_outside":

    Code:
    stateengine_light_outside:
        settings:
            lock:
                type: bool
                initial_value: true
                
            VorSonnenaufgang:
                type: bool
                eval: 1 if (sh.env.location.sunrise().time() > sh.shtime.now().time()) else 0
                cycle: 60
                
            NachSonnenuntergang:
                type: bool
                eval: 1 if (sh.env.location.sunset().time() < sh.shtime.now().time()) else 0
                cycle: 60
                
        rules:
            se_item_licht: ...Licht
            se_item_vorsonnenaufgang: ..settings.VorSonnenaufgang
            se_item_nachsonnenuntergang: ..settings.NachSonnenuntergang
    
            eval_trigger:
              - ..settings.VorSonnenaufgang
              - ..settings.NachSonnenuntergang
              - ..settings.lock
                        
            Morgen:
                name: Licht am Morgen von 0600 bis Sonnenaufgang oder spaetestens 0800
                se_action_licht:
                  - 'function: set'
                  - 'to: True'
                
                enter_start:
                    se_value_vorsonnenaufgang: true
                    se_min_time: '06:00'
                    se_max_time: '08:00'
    
            Abend:
                name: Licht am Abend von Sonnenuntergang oder ab 1800 bis 2230
                se_action_licht:
                  - 'function: set'
                  - 'to: True'
                
                enter_start:
                    se_value_nachsonnenuntergang: true
                    se_min_time: '18:00'
                    se_max_time: '22:30'
    
            Default:
                se_action_licht:
                  - 'function: set'
                  - 'to: False'
                enter:
                    type: foo
    Vermutlich könnte diese Geschichte noch etwas optimiert werden. Diese Stateengine funktioniert auf jeden Fall wie gewünscht. In einem nächsten Schritt werde ich vermutlich die fixen Zeiten im Struct mit Items verbinden, so dass ich diese Zeiten einfach in der Visu ändern kann.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Wäre cool, wenn's funzt. Gerne Ergebnisse hier teilen

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Stateengine Plugin sag ich da nur
    Danke für den Hinweis. Habe bereits einen Test am Laufen. Das GUI dazu muss ich mir dann in SmartVisu noch erstellen.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Stateengine Plugin sag ich da nur

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Für deinen Anwendungsfall wird das mit Uzsu nicht so einfach funktionieren. Da müsste man dann ein Eval im Item oder eine Logik basteln.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von stoepf Beitrag anzeigen
    Mit einer UZSU meines Erachtens nicht, lasse mich aber gerne eines besseren belehren.
    Ich weiß nicht, was du für ein System hinter der UZSU hast. Falls es KNX sein sollte, könntest du z.B. das Einschalten direkt im Aktor mit dem Sonnenaufgang sperren.
    Alternativ eine Logik oder direktes eval beim Item.
    Danke für Deine Ausführungen. Habe es fast befürchtet. Im Hintergrund verwende ich smarthomeng mit KNX. Vermutlich baue ich mir dazu ein eigenes Plugin. So lassen sich solche Probleme einfach in Python lösen.

    Einen Kommentar schreiben:


  • stoepf
    antwortet
    Mit einer UZSU meines Erachtens nicht, lasse mich aber gerne eines besseren belehren.
    Ich weiß nicht, was du für ein System hinter der UZSU hast. Falls es KNX sein sollte, könntest du z.B. das Einschalten direkt im Aktor mit dem Sonnenaufgang sperren.
    Alternativ eine Logik oder direktes eval beim Item.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von schuma Beitrag anzeigen
    Schalte jeden Tag in der Woche bei SONNENAUFGANG auf AUS aber frühestens um 6:00 Uhr.

    Das heißt aktuell, da der Sonnenaufgang aktuell vor 6:00Uhr ist, wird die Lampe immer um 6:00 Uhr ausgeschaltet. Und gleichzeitig durch den ersten Eintrag eingeschaltet. Was ja erstmal so keinen Sinn ergibt.
    Also müsste ich für meinen Ansatz die Expertenzeile so ändern, dass die Lampe mit "Sonnenaufgang aber frühstens 0601 Uhr" ausgeschaltet wird ?

    So würde die Lampe aber immer 1 Minute von 0600-0601 brennen, wenn die Sonne vor 0600 aufgeht. Lässt sich das nicht vermeiden ?

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Vielleicht noch eins zur Erklärung:

    Jede Zeile ist ein Schaltvorgang!
    Wenn du also die Lampe bei Sonnenaufgang einschalten möchtest dann muss deine Zweite Zeile einen on Befehl haben.
    Dann brauchst du noch eine zweite Zeile die die Lampe zu dem definierten Zeitpunkt wieder ausschaltet wenn du es wünscht.

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Der untere Eintrag, mit Experten Modus, ist so zu verstehen:

    Schalte jeden Tag in der Woche bei SONNENAUFGANG auf AUS aber frühestens um 6:00 Uhr.

    Das heißt aktuell, da der Sonnenaufgang aktuell vor 6:00Uhr ist, wird die Lampe immer um 6:00 Uhr ausgeschaltet. Und gleichzeitig durch den ersten Eintrag eingeschaltet. Was ja erstmal so keinen Sinn ergibt.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von schuma Beitrag anzeigen
    Den unteren Eintrag auf on stellen und den oberen deaktivieren.
    das sollte es sein…
    Das wäre korrekt wenn die Sonne vor 0600 aufgeht. Wenn die Sonne nach 0600 aufgeht, dann habe ich das umgekehrte Problem.

    Warum schaltet diese Uhr das Licht ein, obwohl das "On"-Kriterium direkt mit dem "Off"-Kriterium aufgelöst wird ?

    Einen Kommentar schreiben:


  • schuma
    antwortet
    Den unteren Eintrag auf on stellen und den oberen deaktivieren.
    das sollte es sein…

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Ich möchte unsere Aussenbeleuchtung zwischen 0600 und Sonnenaufgang einschalten. Dazu habe ich folgende Zeitschaltuhr eingerichtet:

    s1.jpg
    In der Admin-Oberfläche sieht das heute morgen so aus:

    s2.jpg Heute um 0630 brannte diese Lampe, obwohl der Sonnenaufgang aktuell vor 0600 liegt.

    Was habe ich falsch definiert ? Gibt es eine Konfiguration, die verhindert, dass die Lampe eingeschaltet wird, wenn der Sonnenaufgang vor 0600 liegt ?

    Danke für Eure Hilfe.

    Ich verwende die aktuellen Develop von smarthomeng, Plugins und Smartvisu auf einem Testsystem.

    Einen Kommentar schreiben:


  • stoepf
    antwortet
    Ein erster Versuch hat funktioniert.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Vielleicht mag mal jemand das "once" Feature ausprobieren.. Funktioniert aktuell nur mit "normalen" Einträgen. Ob es für Interpolationen überhaupt Sinn macht, bezweifle ich. Bei Serien könnte man theoretisch sagen, sie gilt dann für einen Tag, wird also 1 Mal zwischen 0 und 24 Uhr durchgespielt. Aber auch da vermutlich bedingt sinnvoll und zuverlässig.. !?

    https://github.com/onkelandy/plugins/tree/uzsu/uzsu

    Man muss manuell zu den Listeneinträgen zB im Admintool ein 'once': True einfügen, um es zu testen. Nach einmaligem Ansteuern des eingestellten Wertes wird der UZSU Eintrag deaktiviert. z.B. hilfreich, wenn ich manuell fürs Wochenende die Bewässerung aktivieren will, weil es grad länger nicht geregnet hat, etc. (automatisierte Bewässerung war bei mir nur bedingt brauchbar..). Oder Einstellen eines (Licht)Weckers, etc...

    Einen Kommentar schreiben:

Lädt...
X