Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Beschattung

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

    Hallo @offline,

    Laut Deiner recht ausführlichen Anleitung kann ich eine Aktion verzögert ausführen. Kann ich damit auch verzögert ein Item auf einen bestimmten Wert setzen? Ich scheitere noch an der Umsetzung..

    Code:
     
     as_item_Referenzfahrt = eg.kueche.jalousie.tuer.referenzfahrt  [[[[[Referenzfahrt]]]]]   <...>   as_delay_Referenzfahrt  <<< um 60Sekunden Verzögert auf 0 Setzen..   <...>


    kann ich ähnlich dem "Suspend-Ende in einen Text einsetzen" dies auch mit einer Anderen Aktion machen? Ich habe einen Status manuelles Beschatten, dieser soll für z.B. 1h aktiv bleiben und dann wieder in den normalen auto-Modus wechseln.. funktioniert soweit, nur über die Anzeige der Rest-Zeit bin ich mir nicht sicher?

    Code:
      
     [[[[[[[Beschatten_manuell]]]]]]]   type = foo   name = Beschatten manuell   as_set_Position = 100   as_set_Lamellenposition = eval:int((sh.System.Sonne.Hoehe())*90/45)   as_name = eval: autoblind_eval.insert_suspend_time('..State.beschatten', suspend_text='Beschatten bis %X')   [[[[[[[[enter]]]]]]]]     as_value_beschatten = True     as_agemax_beschatten = 3600   [[[[[[[Beschatten_manuell_end]]]]]]]     #$order = 21     type = foo     name = Beschatten manuell Ende     as_set_beschatten = False   [[[[[[[[enter]]]]]]]]   as_value_beschatten = True   as_agemin_beschatten = 3600
    Gruß Ivan

    Kommentar


      ivande
      Das mit dem verzögerten Schalten funktioniert so:
      Code:
      as_set_sequencer_sperren = item:..settings.sperren.party
      as_delay_sequencer_sperren = value:15
      Die Sache mit dem Suspend_Ende für ein anderes Items hätte ich mir auch gewünscht.. funzt aber momentan wohl nicht.

      Kommentar


        Hi @offline!

        Danke für das Update. Hier ist mal das Log nach dem vorhin beschriebenen Prozedere. Nach dem Init fahre ich die Jalousie nach oben und es passiert nix. Laut Log meint Autoblind/Smarthome, dass die Aktion von Init getriggert wurde. Wohl, weil das Manuell-Item eben nicht evaluiert wird. Das erklärt dann, dass der Suspend Mode nicht aktiviert wird.
        Code:
        2016-01-19 20:13:02,227 DEBUG    Main         10.0.0.86:56636 sent '{"cmd":"item","id":"screens.sueden_s2.kz","val":"0"}' -- __init__.py:json_parse:272
        2016-01-19 20:13:02,237 DEBUG    Main         Triggering screens.sueden_s2.automatik.manuell - by: Visu source: 10.0.0.86:56636 dest: None value: {'source': 'screens.sueden_s2.kz', 'valu -- scheduler.py:trigger:164
        2016-01-19 20:13:02,241 DEBUG    Main         knx: 0.0.0 set 4/1/3 to False -- __init__.py:parse_telegram:198
        2016-01-19 20:13:02,247 DEBUG    Main         Triggering screens.sueden_s2.automatik.manuell - by: KNX source: 0.0.0 dest: 4/1/3 value: {'source': 'screens.sueden_s2.kz', 'valu -- scheduler.py:trigger:164
        2016-01-19 20:13:02,244 DEBUG    screens.sueden_s2.automatik.manuell running manual_item_update_eval for item 'screens.sueden_s2.automatik.manuell' source 'Eval caller 'screens.sueden_s2.kz' -- AutoBlindFunctions.py:manual_item_update_eval:41
        2016-01-19 20:13:02,255 DEBUG    screens.sueden_s2.automatik.manuell original trigger by caller 'Init' source 'None' -- AutoBlindFunctions.py:manual_item_update_eval:47
        2016-01-19 20:13:02,260 DEBUG    screens.sueden_s2.automatik.manuell Current value of item screens.sueden_s2.automatik.manuell is False -- AutoBlindFunctions.py:manual_item_update_eval:49
        2016-01-19 20:13:02,263 DEBUG    screens.sueden_s2.automatik.manuell checking exclude values: ['Init:*', 'SQLite:*', 'KNX:1.1.5', 'KNX:1.1.26'] -- AutoBlindFunctions.py:manual_item_update_eval:63
        2016-01-19 20:13:02,259 DEBUG    screens.sueden_s2.automatik.manuell running manual_item_update_eval for item 'screens.sueden_s2.automatik.manuell' source 'Eval caller 'screens.sueden_s2.kz' -- AutoBlindFunctions.py:manual_item_update_eval:41
        2016-01-19 20:13:02,265 DEBUG    screens.sueden_s2.automatik.manuell Init:*: matching. Writing value False -- AutoBlindFunctions.py:manual_item_update_eval:70
        2016-01-19 20:13:02,271 DEBUG    screens.sueden_s2.automatik.manuell original trigger by caller 'Init' source 'None' -- AutoBlindFunctions.py:manual_item_update_eval:47
        2016-01-19 20:13:02,276 DEBUG    screens.sueden_s2.automatik.manuell Current value of item screens.sueden_s2.automatik.manuell is False -- AutoBlindFunctions.py:manual_item_update_eval:49
        2016-01-19 20:13:02,279 DEBUG    screens.sueden_s2.automatik.manuell checking exclude values: ['Init:*', 'SQLite:*', 'KNX:1.1.5', 'KNX:1.1.26'] -- AutoBlindFunctions.py:manual_item_update_eval:63
        2016-01-19 20:13:02,281 DEBUG    screens.sueden_s2.automatik.manuell Init:*: matching. Writing value False -- AutoBlindFunctions.py:manual_item_update_eval:70

        Habe das nun mit anderen Jalousien getestet. Wenn ich rauf fahre, kein Suspend. Wenn ich runter fahre, funktioniert es. Und dann auch immer. Aber wenn ich nie manuell runter fahre, komm ich auch nie in den Suspend Mode.

        Kommentar


          Hallo @Onkelandy

          vielen danke für den Tipp.

          Code:
          as_value_ReferenPruefen = False
          as_delay_ReferenPruefen = 60

          Kommentar


            Hi Onkelandy
            Zitat von Onkelandy Beitrag anzeigen

            Danke für das Update. Hier ist mal das Log nach dem vorhin beschriebenen Prozedere. Nach dem Init fahre ich die Jalousie nach oben und es passiert nix. Laut Log meint Autoblind/Smarthome, dass die Aktion von Init getriggert wurde. Wohl, weil das Manuell-Item eben nicht evaluiert wird. Das erklärt dann, dass der Suspend Mode nicht aktiviert wird.
            (..)
            Habe das nun mit anderen Jalousien getestet. Wenn ich rauf fahre, kein Suspend. Wenn ich runter fahre, funktioniert es. Und dann auch immer. Aber wenn ich nie manuell runter fahre, komm ich auch nie in den Suspend Mode.
            Das Log zeigt, dass das manuell-Item zweimal angetriggert wurde. Einmal, weil das Item screens.sueden_s2.kz über die VIsu geschrieben wurde und ein weiteres mal, weil das Item screens.sueden_s2.kz über die PA 0.0.0 (das KNX IP Interface?) geschrieben wurde.
            In beiden Fällen schlägt jedoch die Ermittlung des ursprünglichen Änderers des Manuell-Items fehl. Es wird beide Male "Init" als eigentlicher Änderer ermittelt und das ist in den Ausschlusswerten enthalten. Ich habe daher gerade einen neuen Commit auf GitHub gepusht, der auch die Ermittlung des eigentlichen Änderers detailliert im sh.py Debug Log protokolliert. Bitte reproduziere das Problem damit nochmal und poste das log.

            Grüße
            offline

            Kommentar


              Code:
              2016-01-21 09:37:23,676 DEBUG    Main         10.0.0.88:51475 sent '{"cmd":"item","id":"screens.westen_s3.kz","val":"0"}' -- __init__.py:json_parse:272
              2016-01-21 09:37:23,681 DEBUG    Main         Triggering screens.westen_s3.automatik.manuell - by: Visu source: 10.0.0.88:51475 dest: None value: {'source': 'screens.westen_s3.kz', 'valu -- scheduler.py:trigger:164
              2016-01-21 09:37:23,684 DEBUG    screens.westen_s3.automatik.manuell running manual_item_update_eval for item 'screens.westen_s3.automatik.manuell' source 'Eval' caller 'screens.westen_s3.kz' -- AutoBlindFunctions.py:manual_item_update_eval:41
              2016-01-21 09:37:23,687 DEBUG    screens.westen_s3.automatik.manuell get_original_caller(Eval, screens.westen_s3.kz): changed by Init, None -- AutoBlindFunctions.py:get_original_caller:126
              2016-01-21 09:37:23,688 DEBUG    screens.westen_s3.automatik.manuell get_original_caller: returning Init, None -- AutoBlindFunctions.py:get_original_caller:129
              2016-01-21 09:37:23,690 DEBUG    screens.westen_s3.automatik.manuell original trigger by caller 'Init' source 'None' -- AutoBlindFunctions.py:manual_item_update_eval:48
              2016-01-21 09:37:23,692 DEBUG    Main         knx: 0.0.0 set 4/1/5 to False -- __init__.py:parse_telegram:198
              2016-01-21 09:37:23,693 DEBUG    screens.westen_s3.automatik.manuell Current value of item screens.westen_s3.automatik.manuell is True -- AutoBlindFunctions.py:manual_item_update_eval:50
              2016-01-21 09:37:23,697 DEBUG    screens.westen_s3.automatik.manuell checking exclude values: ['Init:*', 'SQLite:*', 'KNX:1.1.5', 'KNX:1.1.26'] -- AutoBlindFunctions.py:manual_item_update_eval:64
              2016-01-21 09:37:23,700 DEBUG    Main         Triggering screens.westen_s3.automatik.manuell - by: KNX source: 0.0.0 dest: 4/1/5 value: {'source': 'screens.westen_s3.kz', 'valu -- scheduler.py:trigger:164
              2016-01-21 09:37:23,702 DEBUG    screens.westen_s3.automatik.manuell Init:*: matching. Writing value True -- AutoBlindFunctions.py:manual_item_update_eval:71
              2016-01-21 09:37:23,704 DEBUG    screens.westen_s3.automatik.manuell running manual_item_update_eval for item 'screens.westen_s3.automatik.manuell' source 'Eval' caller 'screens.westen_s3.kz' -- AutoBlindFunctions.py:manual_item_update_eval:41
              2016-01-21 09:37:23,709 DEBUG    screens.westen_s3.automatik.manuell get_original_caller(Eval, screens.westen_s3.kz): changed by Init, None -- AutoBlindFunctions.py:get_original_caller:126
              2016-01-21 09:37:23,711 DEBUG    screens.westen_s3.automatik.manuell get_original_caller: returning Init, None -- AutoBlindFunctions.py:get_original_caller:129
              2016-01-21 09:37:23,713 DEBUG    screens.westen_s3.automatik.manuell original trigger by caller 'Init' source 'None' -- AutoBlindFunctions.py:manual_item_update_eval:48
              2016-01-21 09:37:23,714 DEBUG    screens.westen_s3.automatik.manuell Current value of item screens.westen_s3.automatik.manuell is True -- AutoBlindFunctions.py:manual_item_update_eval:50
              2016-01-21 09:37:23,716 DEBUG    screens.westen_s3.automatik.manuell checking exclude values: ['Init:*', 'SQLite:*', 'KNX:1.1.5', 'KNX:1.1.26'] -- AutoBlindFunctions.py:manual_item_update_eval:64
              2016-01-21 09:37:23,718 DEBUG    screens.westen_s3.automatik.manuell Init:*: matching. Writing value True -- AutoBlindFunctions.py:manual_item_update_eval:71
              2016-01-21 09:37:34,592 DEBUG    Main         knx: 1.1.5 set 4/1/17 to 43.5 -- __init__.py:parse_telegram:198
              2016-01-21 09:37:34,595 DEBUG    Main         Item screens.westen_s3.hoehe = 43.5 via KNX 1.1.5 4/1/17 -- item.py:__update:373
              2016-01-21 09:37:34,838 DEBUG    Main         Triggering screens.westen_s3.automatik.manuell - by: KNX source: 1.1.5 dest: 4/1/17 value: {'source': 'screens.westen_s3.hoehe', 'v -- scheduler.py:trigger:164
              2016-01-21 09:37:34,841 DEBUG    screens.westen_s3.automatik.manuell running manual_item_update_eval for item 'screens.westen_s3.automatik.manuell' source 'Eval' caller 'screens.westen_s3.hoehe' -- AutoBlindFunctions.py:manual_item_update_eval:41
              2016-01-21 09:37:34,843 DEBUG    screens.westen_s3.automatik.manuell get_original_caller(Eval, screens.westen_s3.hoehe): changed by KNX, 1.1.5 -- AutoBlindFunctions.py:get_original_caller:126
              2016-01-21 09:37:34,845 DEBUG    screens.westen_s3.automatik.manuell get_original_caller: returning KNX, 1.1.5 -- AutoBlindFunctions.py:get_original_caller:129
              2016-01-21 09:37:34,847 DEBUG    screens.westen_s3.automatik.manuell original trigger by caller 'KNX' source '1.1.5' -- AutoBlindFunctions.py:manual_item_update_eval:48
              2016-01-21 09:37:34,849 DEBUG    screens.westen_s3.automatik.manuell Current value of item screens.westen_s3.automatik.manuell is True -- AutoBlindFunctions.py:manual_item_update_eval:50
              2016-01-21 09:37:34,851 DEBUG    screens.westen_s3.automatik.manuell checking exclude values: ['Init:*', 'SQLite:*', 'KNX:1.1.5', 'KNX:1.1.26'] -- AutoBlindFunctions.py:manual_item_update_eval:64
              2016-01-21 09:37:34,852 DEBUG    screens.westen_s3.automatik.manuell Init:*: not matching -- AutoBlindFunctions.py:manual_item_update_eval:73
              2016-01-21 09:37:34,854 DEBUG    screens.westen_s3.automatik.manuell SQLite:*: not matching -- AutoBlindFunctions.py:manual_item_update_eval:73
              2016-01-21 09:37:34,855 DEBUG    screens.westen_s3.automatik.manuell KNX:1.1.5: matching. Writing value True -- AutoBlindFunctions.py:manual_item_update_eval:71
              0.0.0 ist vermutlich IP Router, wobei der eigtl. 1.0.0 hat, aber okay.

              Kommentar


                Kann ich hier noch irgendwas Sinnvolles testen? Dachte mir, dass ich das gleiche Problem wohl auch mit Lichtern haben müsste.. Dass beim ersten Ausschalten nach Init auch nichts passiert.. Werde ich noch checken. Aber kann sonst niemand obiges Phänomen reproduzieren?

                Kommentar


                  Hi Onkelandy

                  ich hatte mir dein Log mal angeschaut, habe aber bisher leider keine Zeit gehabt, in die Richtung mal ein paar Sachen auszuprobieren. Die Zeit werde ich vermutlich erst wieder nächste Woche finden ...

                  Grüße
                  offline

                  Kommentar


                    gibt es eigentlich eine Beschreibung/Ergänzung für den Fall, das man Rolladen fahren möchte,
                    die Rolladenaktoren jedoch nur zusätzlich 2 Festpositionen anfahren können ?

                    Kommentar


                      Hi,

                      ich verstehe Deine Frage nicht. Bei Autoblind bestimmst Du selber, welche Aktionen bei welchem Zustand ausgelöst werden. Natürlich kannst Du dann auch je nach Zustand eine Deiner beiden Festpositionen wählen.

                      Am besten Du beschreibst Dein konkretes Problem, mit conf-File, dann können wir wahrscheinlich helfen.

                      Gruß, Waldemar
                      OpenKNX www.openknx.de

                      Kommentar


                        Sry, stand aufem Schlauch nach nochmaligem lesen der Doku hab ichs verstanden
                        man kann jeweils die Items und den Wert auf welchen diese gesetzt werden sollen vorgeben.
                        Dann kann die Migration von Logiken auf das Plugin ja beginnen...

                        Kommentar


                          Viel Erfolg damit. Bei konkreten fragen kann dir hier sicherlich geholfen werden. Gruß Waldemar
                          OpenKNX www.openknx.de

                          Kommentar


                            Hallo Kollegen,
                            drei Monate keine Zeit für Autoblind und ich brauch fast einen ganzen Tag um wieder auf dem Laufenden zu sein ... An der Produktivität könnte sich so manches Unternehmen eine Scheibe abschneiden ... also mal ein ganz dickes und .

                            Kommentar


                              irgendwie bin ich wohl doch zu blöde... hab mal das Beispiel kopiert und angepasst:
                              um einfach den rolladen auf zeit abzufahren(erstmal)
                              autoblind.py items
                              Code:
                              [autoblind]
                              type=foo
                                  [[trigger]]
                                      [[[rollladen]]]
                                          type = bool
                                          name = Gemeinsamer Trigger für alle Raffstores
                                          enforce_updates = yes
                                          cycle = 300 = 1
                                          
                                  [[default]]
                                      [[[automatik]]]
                                              type = bool
                                              name = Automatik
                                              as_plugin = active
                                              as_startup_delay = 30
                                              as_item_brightness = dg.diele.helligkeit*15
                                              # Item für Temperatur außen
                                              as_item_temperature = Wetter.Temperatur
                                              # Item für Luftdruck aussen
                                              as_item_luftdruck = Wetter.Luftdruck
                                              
                                
                                          # Zustand "Nacht"
                                          [[[[Nacht]]]]
                                              type = foo
                                              name = Nacht
                                              # Aktionen:
                                              # - "Suspend"-Item ggf. zurücksetzen              
                                              as_set_suspend = False
                              
                                              # Einstieg in "Nacht": Wenn
                                              [[[[[enter]]]]]
                                                  # - es zwischen 16:00 und 08:00 Uhr ist
                                                  as_min_time = 08:00
                                                  as_max_time = 16:00
                                                  as_value_time = 19:30
                                                  as_negate_time = True
                                                  # - die Helligkeit höchstens 90 Lux beträgt
                                                  #as_max_brightness = 90
                              
                                          # Zustand "Morgens"
                                          [[[[Morgens]]]]
                                              type = foo
                                              name = Dämmerung Morgens
                                              # Aktionen:
                                              # behang auf 75% fahren
                                              # - "Suspend"-Item ggf. zurücksetzen              
                                              as_set_suspend = False
                              
                                              # Einstieg in "Morgens": Wenn
                                              [[[[[enter]]]]]
                                                  # - die Helligkeit zwischen 90 und 250 Lux beträgt
                                                  #as_min_brightness = 90
                                                 # as_max_brightness = 250
                                                  # - es zwischen 08:00 und 12:00 Uhr ist
                                                  as_min_time = 08:00
                                                  as_max_time = 12:00
                                                  as_value_time = 8:30
                              items.py
                              Code:
                              [esszimmer]
                              [[rollladen]]
                              name = rollladen
                              value = osten
                              [[[automatik]]]
                              [[[[rules]]]]
                              type = bool
                              name = Automatik Esszimmer
                              as_plugin = active
                              as_startup_delay = 30
                              as_item_brightness = dg.diele.helligkeit
                              as_item_pos = esszimmer.rollladen.automatik.pos
                              as_item_fahren = esszimmer.rollladen.automatik.fahren
                              as_laststate_item_id = esszimmer.rollladen.automatik.state_id
                              as_laststate_item_name = esszimmer.rollladen.automatik.state_name
                              as_repeat_actions = true
                              as_plugin = active
                              as_item_manuell = esszimmer.rollladen.automatik.manuell
                              as_item_suspend = esszimmer.rollladen.automatik.suspend
                              # Erste Zustandsermittlung nach 30 Sekunden
                              as_startup_delay = 30
                              # Über diese Items soll die Statusermittlung ausgelöst werden
                              eval_trigger = autoblind.trigger.rollladen | esszimmer.rollladen.automatik.manuell | esszimmer.rollladen.automatik.lock | esszimmer.rollladen.automatik.suspend
                              # In dieses Item soll die Id des aktuellen Zustands geschrieben werden
                              as_laststate_item_id = esszimmer.rollladen.automatik.state_id
                              # In dieses Item soll der Name des aktuellen Zustands geschrieben werden
                              as_laststate_item_name = esszimmer.rollladen.automatik.state_name
                              [[[[[lock]]]]]
                              type = bool
                              name = Sperr-Item
                              visu_acl = rw
                              cache = on
                              as_use = autoblind.default.automatik.Lock
                              [[[[[suspend]]]]]
                              type = bool
                              name = Suspend-Item
                              visu_acl = rw
                              as_use = autoblind.default.automatik.Suspend
                              # Achtung: Beim "Suspend"-Item niemals "enforce_updates = yes" setzen! Das führt dazu dass das Setzen des
                              # Suspend-Items bei der Initialisierung zu einem endlosen sofortigen Wiederaufruf der Statusermittlung führt!
                              [[[[[state_id]]]]]
                              type = str
                              name = Id des aktuellen Zustands
                              visu_acl = r
                              cache = on
                              [[[[[state_name]]]]]
                              type = str
                              name = Name des aktuellen Zustands
                              visu_acl = r
                              cache = on
                              [[[[[manuell]]]]]
                              type = bool
                              name = Manuelle Bedienung
                              # Änderungen dieser Items sollen als manuelle Bedienung gewertet werden
                              eval_trigger = esszimmer.rollladen.fahren | esszimmer.rollladen.stop
                              # Änderungen, die ursprünglich von diesen Triggern (<caller>:<source>) ausgelöst wurden, sollen nicht als manuelle Bedienung gewertet werden
                              #as_manual_exclude = KNX:y.y.y | Init:*
                              [[[[[Nacht]]]]]
                              # Zustand "Nacht": Nur die Vorgabeeinstellungen übernehmen
                              as_use = autoblind.default.automatik.Nacht
                              as_item_fahren = value:1
                              
                              [[[[[Morgens]]]]]
                              # Zustand "Morgens": Nur die Vorgabeeinstellungen übernehmen
                              as_use = autoblind.default.automatik.Morgens
                              as_item_fahren = value:0
                              
                              [[[fahren]]]
                              enforce_updates = On
                              type = bool
                              visu_acl = rw
                              knx_dpt = 1
                              knx_send = 2/1/3
                              [[[stop]]]
                              enforce_updates = On
                              type = bool
                              visu_acl = rw
                              knx_dpt = 1
                              knx_send = 2/1/4
                              [[[status]]]
                              enforce_updates = On
                              type = num
                              visu = yes
                              knx_dpt = 5
                              sqlite = true
                              visu_acl = rw
                              knx_cache = 2/1/5
                              knx_listen = 2/1/5
                              knx_send = 2/1/5
                              geht das überhaupt so ? oder hab ich etwas vergessen?
                              mir kommt vor, als wäre das ziemlich viel code....

                              Kommentar


                                Hi Onkelandy

                                ich hatte in den letzten Tagen auch bei meinen Jalousien seltsame Verhaltensmuster mit dem Plugin festgestellt und habe das daher direkt bei mir untersucht. So wie es ausschaut liegt das Problem darin, dass das mehrere dem manuell-Item zugeordneten eval_trigger so kurz hintereinander ausgelöst werden, dass die vorherige Auswertung noch nicht abgeschlossen ist. Dadurch ändern sich die "changed_by" Werte, die ich zu Ermittlung des Original-Triggers verwende, während der Auswertung. Das führt zum seltsamen Verhalten der Funktion.
                                Ich habe versuchsweise eine Änderung bei mir eingebaut, die verhindern soll, dass die Auswertung des manuell-Items zu schnell hintereinander einfach abbricht. Wenn das bei mir hilft, werde ich das am WE auf GitHub pushen.

                                Grüße
                                offline


                                Kommentar

                                Lädt...
                                X