Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Beschattung

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

    bei mir läuft autoblind mit SH1.5 noch nicht. ich habe eval: true in der schnelle in den items in der datei jalousie_default hinzugefügt

    Code:
    Abenddaemmerung:
        as_use:Jalousie_default.Abenddaemmerung
    jalousie_default
    Code:
    Abenddaemmerung:
        type: foo
        name: Abenddämmerung
        eval: true
        as_set_suspend: False
    leider hatte ich noch keine Zeit für eine genauere Analyse, deswegen vorerst zurückrudern auf SH1.4.2

    Kommentar


      im SH1.5 fehlt bei mir im log die Zeile:
      Code:
      INFO     autoblind    Init AutoBlind items
      INFO     autoblind    Using AutoBlind for 39 items
      Code:
      2018-07-11  23:35:28 DEBUG    Main         Plugins, section: autoblind
      2018-07-11  23:35:28 DEBUG    Main         Plugins __init__: pluginname = 'autoblind', classpath 'plugins.autoblind'
      2018-07-11  23:35:28 INFO     Main         Loading '/usr/local/smarthome/plugins/autoblind/plugin.yaml' to 'OrderedDict'
      2018-07-11  23:35:28 WARNING  Main         YAML-file not found: /usr/local/smarthome/plugins/autoblind/plugin.yaml
      2018-07-11  23:35:28 DEBUG    Main         PluginWrapper __init__: Section autoblind, classname AutoBlind, classpath plugins.autoblind
      2018-07-11  23:35:28 INFO     Main         Loading '/usr/local/smarthome/plugins/autoblind/locale.yaml' to 'dict'
      2018-07-11  23:35:28 INFO     Main         plugin 'autoblind': No metadata found
      2018-07-11  23:35:28 INFO     Main         plugin 'autoblind' metadata contains no version number
      2018-07-11  23:35:28 DEBUG    Main         Plugins: Loaded plugin 'autoblind' (class 'AutoBlind') v1.1.1: 
      2018-07-11  23:35:28 INFO     Main         Initialized plugin 'autoblind' from from section 'autoblind'
      2018-07-11  23:35:35 DEBUG    Main         Starting plugin 'autoblind'

      Kommentar


        Trag mal in der etc/logging.yaml in der logger: Section folgendes ein:

        Code:
        loggers:
            plugins.autoblind:
            handlers: [file]
            level: INFO
        Falls bei Dir der Handler nicht file heißt, ersetzte file durch den Namen des bei Dir zu verwendenden Handlers.
        Viele Grüße
        Martin

        Kommentar


          Das eval muss direkt in rules: gesetzt werden, dort wo die eval_trigger drin sind, die für die Evaluierung des Zustandes sorgen

          Kommentar


            Zitat von Onkelandy Beitrag anzeigen
            Das eval muss direkt in rules: gesetzt werden, dort wo die eval_trigger drin sind, die für die Evaluierung des Zustandes sorgen
            DANKE- jetzt beschattet die Beschattung (autoblind) auch mit SH1.5 :-)

            Code:
                                Rules:
                                    type: bool
                                    as_plugin: active
                                    eval: True
                                    name: Dg Wohnzimmer Terrasse
                                    eval_trigger:
                                      - Dg.Trigger

            Kommentar


              Kurz zum Thema Trigger:

              Hat jemand von Euch autoblind ohne einen zyklischen trigger (z.B. alle 300s) und nur mit items im eval_trigger laufen, sodass autoblind nicht alle 5 Minuten aufgerufen wird, sondern nur, wenn sich ein item ändert?

              Der Grund dafür war, dass die Wetterdaten alle 5 Minuten abgetastet werden sollen - glaube ich mal gelesen zu haben....

              Grüße
              Markus

              Kommentar


                Hi,

                natürlich. Aber ich verstehe die Frage nicht. Trigger für eine SM müssen ja entsprechend der Aufgabe der SM gewählt werden.

                Gruß Waldemar

                Kommentar


                  Den "Grund" hab ich jetzt gar nicht verstanden..?
                  Bei mir triggern die Zustände sowohl durch Item-Änderung als auch durch zyklischen Trigger. Theoretisch könnte man sich das Zyklische wirklich sparen, aber stören tut es ja auch nicht.

                  Kommentar


                    Der Grund ist folgende Optimierungsidee für die automatische Beschattung:
                    Für manche Storen (meist im Wohnbereich) möchte meine Frau tagsüber die "Kontrolle" behalten.

                    Das Problem von Standby ist, dass hier ein Timer läuft. Setzt man den Timer zu lang, gehen Abend lange die Storen nicht zu, ist er zu kurz fällt er zu früh in den Status den die Statemachine ermittelt zurück.

                    Zuerst dachte ich, ich könnte das zyklische Retriggern optimieren, aber ich glaube das wird schwierig, da ich jedes Signal welches zur Zustandswahl "entprellen" müsste. Wahrscheinlich ist zyklisches "Abtasten" auch Performance Optimal.

                    Nun noch einmal zum eigentlichen Problem:
                    Kurzerhand habe ich den Status "FREE" eingeführt, der keine Position / keinen Winkel vorgibt. Somit kann in diesem Modus frei eingestellt werden.
                    Weiterhin besteht die Möglichkeit eine "Zwangsführung" drüber zu legen und die Zustände "Nacht" oder "Abwesend" einzustellen.

                    Nur Morgens müsste zunächst der Zustand "OPEN" angefahren werden und dann in den Zustand "FREE" gewechselt werden, also wäre dann "OPEN" die Bedingung für "FREE". Ebenso sollte nach dem Heimkehren zunächst "OPEN" angefahren werden und danach in "FREE" gewechselt werden.

                    Alternativ könnte eventuell Standby sehr lange gesetzt werden und bei "NACHT" wird Standby einfach ignoriert. Hier bin ich mir noch nicht klar, wie das aussehen könnte.

                    Habt Ihr bereits Erfahrungen oder Lösungsansätze wie so ein "Vorübergehend-Manueller-Modus" funktionieren könnte?

                    Grüße
                    Markus

                    Kommentar


                      Relevant ist eigentlich nur die Reihenfolge....
                      Nacht muss einfach vor dem supsend evaluiert werden..dann fahren die Jalousien auch zu, selbst wenn noch der Manuell-Modus laufen würde. Oder ich versteh's Problem immer noch nicht ?

                      Code:
                                          lock:
                                              type: foo
                                              as_use: jalousien.autoblind.default.lock
                      
                                          suspend_night:
                                              type: foo
                                              as_use: jalousien.autoblind.default.suspend_night
                      
                                          night:
                                              type: foo
                                              as_use: jalousien.autoblind.default.night
                      
                                          suspend:
                                              type: foo
                                              as_use: jalousien.autoblind.default.suspend
                      
                                          morning:
                                              type: foo
                                              as_use: jalousien.autoblind.default.morning
                      
                                          suntrack:
                                              type: foo
                                              as_use: jalousien.autoblind.default.suntrack_east
                      
                                          day:
                                              type: foo
                                              as_use: jalousien.autoblind.default.day
                      Suspend_night overrulet die Nacht-Regel, falls man dort mal die Jalousien für ne Zeit ändern möchte.
                      Day-Zustand ist der "Standard", Jalousien sind oben.

                      Die Regel für suspend_night:
                      Code:
                                  suspend_night:
                                      type: foo
                                      name: Ausgesetzt
                                      enforce_updates: 'yes'
                      
                                      on_enter_or_stay:
                                          as_action_suspend:
                                            - 'function: special'
                                            - 'value: suspend:..suspend, ..manuell'
                                            - 'repeat: True'
                                            - 'order: 1'
                                          as_action_suspend_end:
                                            - 'function: set'
                                            - "to: eval:autoblind_eval.insert_suspend_time('..suspend', suspend_text='%X')"
                                            - 'repeat: True'
                                            - 'order: 2'
                                          as_action_retrigger:
                                            - 'function: set'
                                            - 'to: true'
                                            - 'delay: var:item.suspend_remaining'
                                            - 'repeat: True'
                                            - 'order: 3'
                      
                                      on_leave:
                                          as_action_suspend:
                                            - 'function: set'
                                            - 'to: False'
                                          as_action_suspend_end:
                                            - 'function: set'
                                            - 'to: '
                      
                                      enter_manuell:
                                          type: foo
                                          as_value_night_active: 'True'
                                          #as_max_time: item:jalousien.autoblind.settings.night.max_time
                                          #as_negate_time: 'True'
                                          as_max_brightness: item:jalousien.autoblind.settings.night.max_brightness
                                          as_value_trigger_source: eval:autoblind_eval.get_relative_itemid('..manuell')
                                          #as_value_suspend_active: 'True'
                      
                                      enter_stay:
                                          type: foo
                                          as_value_laststate: var:current.state_id
                                          # 'as_agemax_suspend: var:item.suspend_time'
                                          as_agemax_suspend: eval:autoblind_eval.get_relative_itemvalue('..settings.suspendduration') * 60
                                          as_value_suspend: 'True'
                                          #as_value_suspend_active: 'True'
                      Regel für das normale Suspend:
                      Code:
                                  suspend:
                                      type: foo
                                      name: Ausgesetzt
                      
                                      on_enter_or_stay:
                                          as_action_suspend:
                                            - 'function: special'
                                            - 'value: suspend:..suspend, ..manuell'
                                            - 'repeat: True'
                                            - 'order: 1'
                                          as_action_suspend_end:
                                            - 'function: set'
                                            - "to: eval:autoblind_eval.insert_suspend_time('..suspend', suspend_text='%X')"
                                            - 'repeat: True'
                                            - 'order: 2'
                                          as_action_retrigger:
                                            - 'function: set'
                                            - 'to: true'
                                            - 'delay: var:item.suspend_remaining'
                                            - 'repeat: True'
                                            - 'order: 3'
                      
                                      on_leave:
                                          as_action_suspend:
                                            - 'function: set'
                                            - 'to: False'
                                          as_action_suspend_end:
                                            - 'function: set'
                                            - 'to:  '
                      
                                      enter_manuell:
                                          type: foo
                                          as_value_trigger_source: eval:autoblind_eval.get_relative_itemid('..manuell')
                                          #as_value_suspend_active: 'True'
                      
                      
                                      enter_stay:
                                          type: foo
                                          as_value_laststate: var:current.state_id
                                          as_agemax_suspend: eval:autoblind_eval.get_relative_itemvalue('..settings.suspendduration') * 60
                                          as_value_suspend: 'True'
                                          #as_min_height: 15
                                          #as_value_suspend_active: 'True'
                      Regel für Nacht:
                      Code:
                                  night:
                                      type: foo
                                      name: Nacht
                      
                                      on_enter_or_stay:
                                          as_action_height:
                                            - 'function: set'
                                            - 'to: item:..settings.hoehe.night'
                                            - 'order: 1'
                                          as_action_lamella:
                                            - 'function: set'
                                            - 'to: item:jalousien.autoblind.settings.night.lamella'
                                            - 'order: 2'
                      
                                      enter:
                                          type: foo
                                          as_max_brightness: item:jalousien.autoblind.settings.night.max_brightness
                                          as_min_time: item:jalousien.autoblind.settings.night.min_time
                                          as_max_time: item:jalousien.autoblind.settings.night.max_time
                                          as_negate_time: 'True'
                                          #as_value_night_active: 'True'

                      Kommentar


                        Hm,

                        ich versuche es mal zu verstehen:

                        Autoblind ist im modus "day" und meine Frau möchte trotzdem beschatten, dann setzt Autoblind den Status Standby z.B. für die nächsten 12h.
                        Werden die Bedingung für Nacht oder Nacht-Standby erfüllt, so wird Standby nicht "erreicht" und der Nacht Modus geht aktiv (Standby Signal wird über on_leave deaktiviert).

                        Soll nun ein weiterer Status "Abwesend" eingebaut werden, so müsste auch dieser Status von dem eigentlichen Standby kommen und ggf. mit einem eigenen Status-Standby ergänzt werden, oder?

                        Kommentar


                          Von=vor. Dann passts

                          Kommentar


                            Was ist eigentlich genau der Unterschied zwischen den Zuständen suspend und suspend_night, ausser das es an unterschiedlichen Stellen vorkommt?
                            Könnte man nicht per as_use 2x das Default-Suspend verwenden?

                            Code:
                                                    LOCK:
                                                        as_use: HOME.shutter.default.LOCK
                            
                                                    SUSPEND_NIGHT:
                                                        as_use: HOME.shutter.default.SUSPEND
                                                        enter_manuell:
                                                          as_value_night_active: 'True'
                            
                                                    NIGHT:
                                                        as_use: HOME.shutter.default.NIGHT
                            
                                                    SUSPEND:
                                                        as_use: HOME.shutter.default.SUSPEND
                            
                                                    OPEN:
                                                        as_use: HOME.shutter.default.OPEN
                            
                                                    TRACKING:
                                                        as_use: HOME.shutter.default.TRACKING
                            
                            ...

                            Kommentar


                              Oder vielleicht so:

                              Code:
                              SUSPEND_NIGHT:                            
                                as_use: HOME.shutter.default.SUSPEND
                                enter_manuell:
                                  as_value_laststate: item.path.to.state.NIGHT

                              Kommentar


                                Habe es gerade getestet und es funktioniert.

                                Ein Problem bleibt: die Standby Zeit wird aufgrund der internen Variable "suspend_time" berechnet. Das Plugin bekommt diese per as_suspend_time übergeben.

                                Ich habe eine Workaround, da meine normale Standby Zeit größer ist als die Nacht-Standbyzeit, indem ich

                                enter_stay:
                                as_agemax_suspend: 300

                                ergänzt habe. Somit funktioniert es, auch wenn die Zeit noch als "alter" Suspend Time berechnet wird und Autoblind nur im Tigger-Rythmus (5 Minuten) den Standby Zustand deaktiviert.

                                Gibt es ein "Action-Function-Set-..." Aufruf, mit dem man diese suspend_time Variable schreiben kann? Dann wäre es "sauber"...

                                Kommentar

                                Lädt...
                                X