Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Beschattung

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

  • offline
    antwortet
    Hi arnix

    ohne den zusätzlichen "Ich weiß nicht, was ich tun soll"-Zustand läufst du im Prinzip genau auf das Problem, dass onkelandy als Issue auf GitHub erfasst hat.

    Kurzversion der Lösung:
    • AutoBlind-Version aus dem Develop-Zweig verwenden
    • ggf. im Suspend-Zustand das as_set_suspend durch as_force_suspend ersetzen


    Grüße
    offline

    Einen Kommentar schreiben:


  • arnix
    antwortet
    Hi offline,

    danke für die Antwort. Die Lösung habe ich bereits eingebaut und dann tritt dieses Problem nicht mehr auf.
    Wäre es aber nicht dennoch sinnvoll, das Suspend-Age bei erneuter manueller Betätigung auf 0 zu setzen? Ansonsten müsste doch bei mehrfacher manueller Betätigung irgendwann auch ein negativer Wert anfallen, oder nicht?

    Grüße

    Arne

    Einen Kommentar schreiben:


  • offline
    antwortet
    Zitat von arnix Beitrag anzeigen
    bei mir ergibt sich das Phänomen der negativen Supend-Time, wenn noch ein alter Suspend-Zustand anhängig ist:

    1. manuelle Bedienung > Suspend-Time minus Suspend-Age ergibt die verbleibende Zeit
    2. Supend-Time ist abgelaufen, aber es findet sich kein neuer Zustand (aufgrund meiner Item-Vorgaben in diesem speziellen Fall)
    3. erneute manuelle Bedienung > Suspend-Age ist die ganze Zeit weiter gelaufen. Die Rechnung (neue) Suspend-Time minus Suspend-Age wird jetzt negativ

    @offline: ist es möglich, mit bei einer neuen manuellen Bedienung das Suspend-Age wieder auf 0 zu setzen?
    Das Hauptproblem ist hier, dass er nach dem Suspend keinen definierten Zustand hat, also eigentlich "in der Luft hängt". Die einfachste Lösung dürfte hier sein, wenn du als letzten Zustand einen Zustand ohne Bedingungen definierst, der als einzige Aktion das Suspend-Item auf "false" setzt.

    Grüße
    offline

    Einen Kommentar schreiben:


  • offline
    antwortet
    Zitat von firefox Beitrag anzeigen
    Hallo zusammen,

    hab hier wieder ein manuell Item Phänomen, dass ich mir nicht erklären kann.

    [..]

    Caller KNX und Source 1.2.6 sind doch explizit heraus genommen. Suspend wird aber trotzdem angelaufen. Übersehe ich etwas?
    Aktiviere mal das Erweiterte Logging zum Manuell-Item (im Wiki beschrieben) und schau mal, was da ausgewertet wird ..

    Grüße
    offline

    Einen Kommentar schreiben:


  • arnix
    antwortet
    Code:
    Hallo,
    mir war auch schon einige Male aufgefallen dass die Suspend_time negativ war. Grund und Zusammenhang konnte ich leider auch nicht herausfinden..
    Gruß Ivan
    Hi,

    bei mir ergibt sich das Phänomen der negativen Supend-Time, wenn noch ein alter Suspend-Zustand anhängig ist:

    1. manuelle Bedienung > Suspend-Time minus Suspend-Age ergibt die verbleibende Zeit
    2. Supend-Time ist abgelaufen, aber es findet sich kein neuer Zustand (aufgrund meiner Item-Vorgaben in diesem speziellen Fall)
    3. erneute manuelle Bedienung > Suspend-Age ist die ganze Zeit weiter gelaufen. Die Rechnung (neue) Suspend-Time minus Suspend-Age wird jetzt negativ

    @offline: ist es möglich, mit bei einer neuen manuellen Bedienung das Suspend-Age wieder auf 0 zu setzen?

    Unten noch das Protokoll.

    Viele Grüße

    Arne

    Am 26.12.2016 um 20:30 Uhr ist noch ein regulärer Suspend-Zustand vorhanden. Ab 20:35 Uhr ist dieser ausgelaufen, es wird aber (aufgrund meiner Konfig) kein neuer Zustand gefunden.
    Code:
    2016-12-29 20:30:00.423635 Update state of item Automatik Rollladen Flur Nebenausgang =====================
    2016-12-29 20:30:00.434458 Update triggered by Eval (item=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules source=Autoblind_Trigger.Trigger_1 dest=None)
    2016-12-29 20:30:00.448469 Eval initially triggered by Scheduler (item=Autoblind_Trigger.Trigger_1 source=None)
    2016-12-29 20:30:00.460589 Last state: Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend ('aufgrund manueller Aktion zeitweise ausgesetzt')
    2016-12-29 20:30:00.472403 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend' ('aufgrund manueller Aktion zeitweise ausgesetzt') can be left:
    2016-12-29 20:30:00.473553     No condition sets defined -> matching
    2016-12-29 20:30:00.479245 State can be left
    2016-12-29 20:30:00.485226 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Lock' ('Automatik ausgeschaltet') can be entered:
    2016-12-29 20:30:00.488476     Check condition set 'enter':
    2016-12-29 20:30:00.500319         Condition 'lock': value=True negate=False current=False
    2016-12-29 20:30:00.504659             not OK -> not matching
    2016-12-29 20:30:00.513733 State can not be entered
    2016-12-29 20:30:00.522440 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend' ('aufgrund manueller Aktion zeitweise ausgesetzt') can be entered:
    2016-12-29 20:30:00.524651     Check condition set 'enter_stay':
    2016-12-29 20:30:00.526691         Condition 'laststate': value=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend negate=False current=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend
    2016-12-29 20:30:00.539908             OK -> matching
    2016-12-29 20:30:00.541939         Age of 'laststate': No limits given
    2016-12-29 20:30:00.542499         Condition 'manuell': min=None max=None negate=False current=True
    2016-12-29 20:30:00.545452             no limit given -> matching
    2016-12-29 20:30:00.554125         Age of 'manuell': min=None max=7200 negate=None current=7013.395004
    2016-12-29 20:30:00.561259             given age limits ok -> matching
    2016-12-29 20:30:00.568755         Condition 'suspend': value=True negate=False current=True
    2016-12-29 20:30:00.571369             OK -> matching
    2016-12-29 20:30:00.574211         Age of 'suspend': No limits given
    2016-12-29 20:30:00.583509 State can be entered
    2016-12-29 20:30:00.593794 Executing method 'insert_suspend_time(..suspend, Automatik aufgrund manueller Aktion ausgesetzt bis %X)'
    2016-12-29 20:30:00.608509     Suspend time is 7200
    2016-12-29 20:30:00.614078     Suspend item is Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.suspend
    2016-12-29 20:30:00.621964     Current suspend age: 7013.584883
    2016-12-29 20:30:00.623013     Remaining suspend time: 186.41511699999955
    2016-12-29 20:30:00.633616     Suspend finished at 2016-12-29 20:33:07.047881+01:00
    2016-12-29 20:30:00.643982 Staying at Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend ('aufgrund manueller Aktion zeitweise ausgesetzt')
    2016-12-29 20:30:00.645840     Action 'suspend': Set 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.suspend' to 'True'
    2016-12-29 20:35:00.348909 Update state of item Automatik Rollladen Flur Nebenausgang =====================
    2016-12-29 20:35:00.359122 Update triggered by Eval (item=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules source=Autoblind_Trigger.Trigger_1 dest=None)
    2016-12-29 20:35:00.362778 Eval initially triggered by Scheduler (item=Autoblind_Trigger.Trigger_1 source=None)
    2016-12-29 20:35:00.375983 Last state: Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend ('aufgrund manueller Aktion zeitweise ausgesetzt')
    2016-12-29 20:35:00.378974 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend' ('aufgrund manueller Aktion zeitweise ausgesetzt') can be left:
    2016-12-29 20:35:00.396571     No condition sets defined -> matching
    2016-12-29 20:35:00.406540 State can be left
    2016-12-29 20:35:00.415861 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Lock' ('Automatik ausgeschaltet') can be entered:
    2016-12-29 20:35:00.419009     Check condition set 'enter':
    2016-12-29 20:35:00.421034         Condition 'lock': value=True negate=False current=False
    2016-12-29 20:35:00.429854             not OK -> not matching
    2016-12-29 20:35:00.441204 State can not be entered
    2016-12-29 20:35:00.455924 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend' ('aufgrund manueller Aktion zeitweise ausgesetzt') can be entered:
    2016-12-29 20:35:00.459555     Check condition set 'enter_stay':
    2016-12-29 20:35:00.461101         Condition 'laststate': value=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend negate=False current=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend
    2016-12-29 20:35:00.462664             OK -> matching
    2016-12-29 20:35:00.470460         Age of 'laststate': No limits given
    2016-12-29 20:35:00.475793         Condition 'manuell': min=None max=None negate=False current=True
    2016-12-29 20:35:00.485248             no limit given -> matching
    2016-12-29 20:35:00.495775         Age of 'manuell': min=None max=7200 negate=None current=7313.336642
    2016-12-29 20:35:00.497587             to old -> not matching
    2016-12-29 20:35:00.504960     Check condition set 'enter_manuell':
    2016-12-29 20:35:00.519840         Executing method 'get_relative_itemid(..manuell)'
    2016-12-29 20:35:00.529334         Condition 'trigger_source': value=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.manuell negate=False current=Autoblind_Trigger.Trigger_1
    2016-12-29 20:35:00.544501             not OK -> not matching
    2016-12-29 20:35:00.554023 State can not be entered
    2016-12-29 20:35:00.556242 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.nachts_nebenausgang' ('Rollladen Nacht_EG') can be entered:
    2016-12-29 20:35:00.573201     Check condition set 'enter_1':
    2016-12-29 20:35:00.578773         Condition 'time': min=03:00:00 max=06:30:00 negate=False current=20:35:00.399954
    2016-12-29 20:35:00.589948             to high -> not matching
    2016-12-29 20:35:00.597893     Check condition set 'enter_5':
    2016-12-29 20:35:00.599659         Condition 'time': min=06:30:00 max=16:00:00 negate=True current=20:35:00.399954
    2016-12-29 20:35:00.607627             given limits ok -> matching
    2016-12-29 20:35:00.608572         Age of 'time': No limits given
    2016-12-29 20:35:00.612052         Condition 'height': min=245 max=None negate=False current=0
    2016-12-29 20:35:00.626684             to low -> not matching
    2016-12-29 20:35:00.633308     Check condition set 'enter_2':
    2016-12-29 20:35:00.636789         Condition 'time': min=06:30:00 max=16:00:00 negate=True current=20:35:00.399954
    2016-12-29 20:35:00.638316             given limits ok -> matching
    2016-12-29 20:35:00.641441         Age of 'time': No limits given
    2016-12-29 20:35:00.647368         Condition 'Daemmerung2': value=True negate=False current=True
    2016-12-29 20:35:00.656543             OK -> matching
    2016-12-29 20:35:00.687703         Age of 'Daemmerung2': No limits given
    2016-12-29 20:35:00.691874         Condition 'party': value=False negate=False current=False
    2016-12-29 20:35:00.708413             OK -> matching
    2016-12-29 20:35:00.720637         Age of 'party': No limits given
    2016-12-29 20:35:00.726838         Condition 'anwesend': value=False negate=False current=True
    2016-12-29 20:35:00.734293             not OK -> not matching
    2016-12-29 20:35:00.742003     Check condition set 'enter_3':
    2016-12-29 20:35:00.755437         Condition 'time': min=03:00:00 max=06:30:00 negate=False current=20:35:00.736397
    2016-12-29 20:35:00.771483             to high -> not matching
    2016-12-29 20:35:00.779266     Check condition set 'enter_6':
    2016-12-29 20:35:00.782539         Condition 'time': min=06:30:00 max=08:15:00 negate=False current=20:35:00.775966
    2016-12-29 20:35:00.785861             to high -> not matching
    2016-12-29 20:35:00.791600     Check condition set 'enter_4':
    2016-12-29 20:35:00.795104         Condition 'time': min=06:30:00 max=16:00:00 negate=True current=20:35:00.775966
    2016-12-29 20:35:00.801631             given limits ok -> matching
    2016-12-29 20:35:00.803930         Age of 'time': No limits given
    2016-12-29 20:35:00.810576         Condition 'Daemmerung3': value=True negate=False current=True
    2016-12-29 20:35:00.812117             OK -> matching
    2016-12-29 20:35:00.826284         Age of 'Daemmerung3': No limits given
    2016-12-29 20:35:00.829356         Condition 'party': value=False negate=False current=False
    2016-12-29 20:35:00.831193             OK -> matching
    2016-12-29 20:35:00.909090         Age of 'party': No limits given
    2016-12-29 20:35:00.935793         Condition 'anwesend': value=False negate=False current=True
    2016-12-29 20:35:00.944736             not OK -> not matching
    2016-12-29 20:35:00.953338     Check condition set 'enter_7':
    2016-12-29 20:35:00.963208         Condition 'time': min=06:30:00 max=18:00:00 negate=True current=20:35:00.936388
    2016-12-29 20:35:01.011052             given limits ok -> matching
    2016-12-29 20:35:01.025612         Age of 'time': No limits given
    2016-12-29 20:35:01.034946         Condition 'height': min=245 max=None negate=False current=0
    2016-12-29 20:35:01.072967             to low -> not matching
    2016-12-29 20:35:01.090408 State can not be entered
    2016-12-29 20:35:01.111535 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.tags' ('Rollladen Tags_ueberall') can be entered:
    2016-12-29 20:35:01.124979     Check condition set 'enter_1':
    2016-12-29 20:35:01.127508         Condition 'time': min=06:00:00 max=20:00:00 negate=False current=20:35:00.936388
    2016-12-29 20:35:01.154988             to high -> not matching
    2016-12-29 20:35:01.166098 State can not be entered
    2016-12-29 20:35:01.178730 No matching state found, staying at Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend ('aufgrund manueller Aktion zeitweise ausgesetzt')
    Am 30.12.2016 um 01:55 Uhr wurde immer noch kein neuer Zustand gefunden. Um 01:55:16 kommt dann die neue manuelle Bedienung und das Suspend-Age ist vom letzten Suspend weitergelaufen.
    Code:
    2016-12-30 01:55:00.486507 Update triggered by Eval (item=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules source=Autoblind_Trigger.Trigger_1 dest=None)
    2016-12-30 01:55:00.490913 Eval initially triggered by Scheduler (item=Autoblind_Trigger.Trigger_1 source=None)
    2016-12-30 01:55:00.496229 Last state: Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend ('aufgrund manueller Aktion zeitweise ausgesetzt')
    2016-12-30 01:55:00.527326 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend' ('aufgrund manueller Aktion zeitweise ausgesetzt') can be left:
    2016-12-30 01:55:00.532502     No condition sets defined -> matching
    2016-12-30 01:55:00.542528 State can be left
    2016-12-30 01:55:00.549671 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Lock' ('Automatik ausgeschaltet') can be entered:
    2016-12-30 01:55:00.557181     Check condition set 'enter':
    2016-12-30 01:55:00.564459         Condition 'lock': value=True negate=False current=False
    2016-12-30 01:55:00.574083             not OK -> not matching
    2016-12-30 01:55:00.584090 State can not be entered
    2016-12-30 01:55:00.587755 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend' ('aufgrund manueller Aktion zeitweise ausgesetzt') can be entered:
    2016-12-30 01:55:00.589912     Check condition set 'enter_stay':
    2016-12-30 01:55:00.597198         Condition 'laststate': value=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend negate=False current=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend
    2016-12-30 01:55:00.614835             OK -> matching
    2016-12-30 01:55:00.619609         Age of 'laststate': No limits given
    2016-12-30 01:55:00.629760         Condition 'manuell': min=None max=None negate=False current=True
    2016-12-30 01:55:00.637283             no limit given -> matching
    2016-12-30 01:55:00.654148         Age of 'manuell': min=None max=7200 negate=None current=26513.495039
    2016-12-30 01:55:00.658260             to old -> not matching
    2016-12-30 01:55:00.669951     Check condition set 'enter_manuell':
    2016-12-30 01:55:00.687942         Executing method 'get_relative_itemid(..manuell)'
    2016-12-30 01:55:00.692151         Condition 'trigger_source': value=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.manuell negate=False current=Autoblind_Trigger.Trigger_1
    2016-12-30 01:55:00.692654             not OK -> not matching
    2016-12-30 01:55:00.695245 State can not be entered
    2016-12-30 01:55:00.707246 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.nachts_nebenausgang' ('Rollladen Nacht_EG') can be entered:
    2016-12-30 01:55:00.711425     Check condition set 'enter_1':
    2016-12-30 01:55:00.725381         Condition 'time': min=03:00:00 max=06:30:00 negate=False current=01:55:00.528368
    2016-12-30 01:55:00.741197             to low -> not matching
    2016-12-30 01:55:00.755113     Check condition set 'enter_5':
    2016-12-30 01:55:00.760746         Condition 'time': min=06:30:00 max=16:00:00 negate=True current=01:55:00.528368
    2016-12-30 01:55:00.769294             given limits ok -> matching
    2016-12-30 01:55:00.775887         Age of 'time': No limits given
    2016-12-30 01:55:00.790396         Condition 'height': min=245 max=None negate=False current=0
    2016-12-30 01:55:00.801371             to low -> not matching
    2016-12-30 01:55:00.810517     Check condition set 'enter_2':
    2016-12-30 01:55:00.811139         Condition 'time': min=06:30:00 max=16:00:00 negate=True current=01:55:00.791602
    2016-12-30 01:55:00.822125             given limits ok -> matching
    2016-12-30 01:55:00.825866         Age of 'time': No limits given
    2016-12-30 01:55:00.826393         Condition 'Daemmerung2': value=True negate=False current=True
    2016-12-30 01:55:00.837331             OK -> matching
    2016-12-30 01:55:00.838850         Age of 'Daemmerung2': No limits given
    2016-12-30 01:55:00.845007         Condition 'party': value=False negate=False current=False
    2016-12-30 01:55:00.848160             OK -> matching
    2016-12-30 01:55:00.848784         Age of 'party': No limits given
    2016-12-30 01:55:00.849824         Condition 'anwesend': value=False negate=False current=True
    2016-12-30 01:55:00.853557             not OK -> not matching
    2016-12-30 01:55:00.863890     Check condition set 'enter_3':
    2016-12-30 01:55:00.868380         Condition 'time': min=03:00:00 max=06:30:00 negate=False current=01:55:00.861587
    2016-12-30 01:55:00.869363             to low -> not matching
    2016-12-30 01:55:00.877115     Check condition set 'enter_6':
    2016-12-30 01:55:00.885798         Condition 'time': min=06:30:00 max=08:15:00 negate=False current=01:55:00.873952
    2016-12-30 01:55:00.892868             to low -> not matching
    2016-12-30 01:55:00.898568     Check condition set 'enter_4':
    2016-12-30 01:55:00.905354         Condition 'time': min=06:30:00 max=16:00:00 negate=True current=01:55:00.893514
    2016-12-30 01:55:00.911328             given limits ok -> matching
    2016-12-30 01:55:00.917859         Age of 'time': No limits given
    2016-12-30 01:55:00.921543         Condition 'Daemmerung3': value=True negate=False current=True
    2016-12-30 01:55:00.926171             OK -> matching
    2016-12-30 01:55:00.931901         Age of 'Daemmerung3': No limits given
    2016-12-30 01:55:00.942223         Condition 'party': value=False negate=False current=False
    2016-12-30 01:55:00.944276             OK -> matching
    2016-12-30 01:55:00.950077         Age of 'party': No limits given
    2016-12-30 01:55:00.955587         Condition 'anwesend': value=False negate=False current=True
    2016-12-30 01:55:00.959951             not OK -> not matching
    2016-12-30 01:55:00.986236     Check condition set 'enter_7':
    2016-12-30 01:55:01.006953         Condition 'time': min=06:30:00 max=18:00:00 negate=True current=01:55:00.893514
    2016-12-30 01:55:01.020915             given limits ok -> matching
    2016-12-30 01:55:01.046535         Age of 'time': No limits given
    2016-12-30 01:55:01.055738         Condition 'height': min=245 max=None negate=False current=0
    2016-12-30 01:55:01.061870             to low -> not matching
    2016-12-30 01:55:01.076194 State can not be entered
    2016-12-30 01:55:01.102580 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.tags' ('Rollladen Tags_ueberall') can be entered:
    2016-12-30 01:55:01.114369     Check condition set 'enter_1':
    2016-12-30 01:55:01.123951         Condition 'time': min=06:00:00 max=20:00:00 negate=False current=01:55:01.112214
    2016-12-30 01:55:01.157211             to low -> not matching
    2016-12-30 01:55:01.164296 State can not be entered
    2016-12-30 01:55:01.169810 No matching state found, staying at Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend ('aufgrund manueller Aktion zeitweise ausgesetzt')
    2016-12-30 01:55:16.601420 Update state of item Automatik Rollladen Flur Nebenausgang =====================
    2016-12-30 01:55:16.602049 Update triggered by Eval (item=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules source=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.manuell dest=None)
    2016-12-30 01:55:16.602768 Eval initially triggered by KNX (item=Rollladen.Erdgeschoss.Flur.Nebenausgang.Fahren source=11.1.12)
    2016-12-30 01:55:16.604087 Last state: Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend ('aufgrund manueller Aktion zeitweise ausgesetzt')
    2016-12-30 01:55:16.604537 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend' ('aufgrund manueller Aktion zeitweise ausgesetzt') can be left:
    2016-12-30 01:55:16.604924     No condition sets defined -> matching
    2016-12-30 01:55:16.605278 State can be left
    2016-12-30 01:55:16.605654 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Lock' ('Automatik ausgeschaltet') can be entered:
    2016-12-30 01:55:16.606037     Check condition set 'enter':
    2016-12-30 01:55:16.606473         Condition 'lock': value=True negate=False current=False
    2016-12-30 01:55:16.606825             not OK -> not matching
    2016-12-30 01:55:16.607207 State can not be entered
    2016-12-30 01:55:16.607575 Check if state 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend' ('aufgrund manueller Aktion zeitweise ausgesetzt') can be entered:
    2016-12-30 01:55:16.607947     Check condition set 'enter_stay':
    2016-12-30 01:55:16.608406         Condition 'laststate': value=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend negate=False current=Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend
    2016-12-30 01:55:16.608757             OK -> matching
    2016-12-30 01:55:16.609135         Age of 'laststate': No limits given
    2016-12-30 01:55:16.609547         Condition 'manuell': min=None max=None negate=False current=False
    2016-12-30 01:55:16.609896             no limit given -> matching
    2016-12-30 01:55:16.610892         Age of 'manuell': min=None max=7200 negate=None current=0.011298
    2016-12-30 01:55:16.611267             given age limits ok -> matching
    2016-12-30 01:55:16.611685         Condition 'suspend': value=True negate=False current=True
    2016-12-30 01:55:16.612032             OK -> matching
    2016-12-30 01:55:16.612402         Age of 'suspend': No limits given
    2016-12-30 01:55:16.612771 State can be entered
    2016-12-30 01:55:16.613647 Executing method 'insert_suspend_time(..suspend, Automatik aufgrund manueller Aktion ausgesetzt bis %X)'
    2016-12-30 01:55:16.614105     Suspend time is 7200
    2016-12-30 01:55:16.614653     Suspend item is Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.suspend
    2016-12-30 01:55:16.615627     Current suspend age: 26529.578561
    2016-12-30 01:55:16.615997     Remaining suspend time: -19329.578561
    2016-12-30 01:55:16.616455 Problem evaluating 'autoblind_eval.insert_suspend_time("..suspend", "Automatik aufgrund manueller Aktion ausgesetzt bis %X")': Can't convert 'ValueError' object to str implicitly.
    2016-12-30 01:55:16.616860 Staying at Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.rules.Suspend ('aufgrund manueller Aktion zeitweise ausgesetzt')
    2016-12-30 01:55:16.617327     Action 'suspend': Set 'Autoblind_Rollladen.Erdgeschoss.Flur.Nebenausgang.suspend' to 'True'

    Einen Kommentar schreiben:


  • firefox
    antwortet
    Hallo zusammen,

    hab hier wieder ein manuell Item Phänomen, dass ich mir nicht erklären kann.

    Code:
    2016-12-27 21:42:43.575847 Staying at EG.Buero.Rollo.Automatik.Rules.Abend ('Dämmerung Abends')
    2016-12-27 21:42:44.476915 Update state of item Raffstoreautomatik Büro ===================================
    2016-12-27 21:42:44.477334 Update triggered by Eval (item=EG.Buero.Rollo.Automatik.Rules source=EG.Buero.Rollo.Automatik.Manuell dest=None)
    2016-12-27 21:42:44.478437 [COLOR=#FF0000]Eval initially triggered by KNX (item=EG.Buero.Rollo.pos source=1.2.6)[/COLOR]
    2016-12-27 21:42:44.479283 Last state: EG.Buero.Rollo.Automatik.Rules.Abend ('Dämmerung Abends')
    2016-12-27 21:42:44.479658 Check if state 'EG.Buero.Rollo.Automatik.Rules.Abend' ('Dämmerung Abends') can be left:
    2016-12-27 21:42:44.479965       No condition sets defined -> matching
    2016-12-27 21:42:44.480276 State can be left
    2016-12-27 21:42:44.480601 Check if state 'EG.Buero.Rollo.Automatik.Rules.Lock' ('Automatik manuell gesperrt') can be entered:
    2016-12-27 21:42:44.480934       Check condition set 'enter':
    2016-12-27 21:42:44.481299               Condition 'lock': value=True negate=False current=False
    2016-12-27 21:42:44.481623                       not OK -> not matching
    2016-12-27 21:42:44.481949 State can not be entered
    2016-12-27 21:42:44.482273 Check if state 'EG.Buero.Rollo.Automatik.Rules.Suspend' ('Ausgesetzt') can be entered:
    2016-12-27 21:42:44.482593       Check condition set 'enter_manuell':
    2016-12-27 21:42:44.483169               Executing method 'get_relative_itemid(..Manuell)'
    2016-12-27 21:42:44.483705               Condition 'trigger_source': value=EG.Buero.Rollo.Automatik.Manuell negate=False current=EG.Buero.Rollo.Automatik.Manuell
    2016-12-27 21:42:44.484024                       OK -> matching
    2016-12-27 21:42:44.484332               Age of 'trigger_source': No limits given
    2016-12-27 21:42:44.484643 State can be entered
    2016-12-27 21:42:44.484948 Changing to EG.Buero.Rollo.Automatik.Rules.Suspend ('Ausgesetzt')
    2016-12-27 21:42:44.485330       Action 'suspend': Set 'EG.Buero.Rollo.Automatik.Suspend' to 'True'
    2016-12-27 21:42:45.211119 Executing method 'insert_suspend_time(..Suspend, Automatik ausgesetzt bis %X)'
    2016-12-27 21:42:45.211746       Suspend time is 3600
    2016-12-27 21:42:45.212420       Suspend item is EG.Buero.Rollo.Automatik.Suspend
    2016-12-27 21:42:45.213584       Current suspend age: 0.727263
    2016-12-27 21:42:45.214130       Remaining suspend time: 3599.272737
    2016-12-27 21:42:45.215581       Suspend finished at 2016-12-27 22:42:44.487445+01:00
    Auszug items.conf:
    Code:
    [[[[[Manuell]]]]]
        type = bool
        name = Manuelle Bedienung
        eval_trigger = EG.Buero.Rollo.move | EG.Buero.Rollo.stop | EG.Buero.Rollo.pos | EG.Buero.Rollo.lamelle
    [COLOR=#FF0000]as_manual_exclude = KNX:1.2.6 | Init:*[/COLOR]
    [[[[[Suspend]]]]]
        type = bool
        name = Automatik Aussetzen
        visu_acl = r
    Caller KNX und Source 1.2.6 sind doch explizit heraus genommen. Suspend wird aber trotzdem angelaufen. Übersehe ich etwas?

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    SmarthomeNG wurde jetzt im develop Branch so umgebaut, dass die Plugins als submodules ausgelagert sind.. Könnte es erleichtern, die Plugins zu maintainen..?

    Einen Kommentar schreiben:


  • offline
    antwortet
    Mit dem Namen habt Ihr ja schon irgendwie recht ... zumal eine "Kopie unter neuem Namen" die Möglichkeit eröffnen würde, einige Dinge aus dem Coding rauszuwerfen, die schon lange nicht mehr in der Doku und damit eigentlich obsolet sind. Dazu gehören z. B. das hartcodierte "Suspend" und das hartcodierte "Lock". Auch Ausstiegsbedingungen sind ja eher kontraproduktiv, wenn mit Suspend- und Lock-Zuständen gearbeitet wird.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    der Name ist zwar prinzipiell zweitrangig.
    Aber:
    Ich habe dieses Plugin lange nicht beachtet, weil ich mit meiner automatischen Beschattung zufrieden bin. Mit dem richtigen Namen findet das Plugin einfach mehr Nutzer.
    Daher finde ich, dass das Plugin und auch die Doku in Sh.py integriert werden sollte.

    Zur Dokumentation:
    Hier https://github.com/i-am-offline/smar...ionalit%C3%A4t würde ich mir noch Use-Cases wünschen, die zeigen, wieviel einfacher/besser/toller xyz mit einem Zustandsautomaten als mit einer Logik funktioniert.


    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Nunja, die Attribute heißen ja eh schon "autostate".. insofern wäre ein Umbennen auf "autostate" eigtl. kein großes Ding und würde schon Sinn machen

    Was das Git anlangt - verstehe ich natürlich, allerdings würde das eine das andere nicht ausschließen. Die aktuellste Version könnte in den Masterbranch des nächsten SmarthomeNG Releases. Und Develop-Versionen werden dann nur über deinen Fork abgerufen. Evtl. könnte man sich ja auch mal submodules oder sonst was ansehen, das es ermöglich, den Plugin-Maintainern direkt im Haupt-Repo die Plugins ohne PR upzudaten?

    Einen Kommentar schreiben:


  • offline
    antwortet
    Zitat von henfri Beitrag anzeigen
    wenn ich es recht sehe, hat der Thread nicht mehr so viel mit der ursprünglichen Frage zu tun, sondern ein umfangreiches Zustandsmaschine-Plugin ist entstanden.
    Wäre es nicht sinnvoll, dieses im Wiki zu dokumentieren, sowie einen neuen Thread zum Plugin zu erstellen?
    Welches Wiki meinst du? Im shNG Wiki ist das AutoBlind Plugin im Bereich "Plugins außerhalb des SmartHomeNG Repository" eingetragen
    Ich kann auch gerne einen neuen Thread anlegen. Für Problemmeldungen bevorzuge ich jedoch eher Issues auf GitHub, das lässt sich einfacher überblicken. Im Forum werden in einem Thread manchmal 2 oder 3 Probleme parallel diskutiert, da ist es manchmal schwierig nichts zu übersehen.

    Zitat von Onkelandy Beitrag anzeigen
    Du hast im Prinzip Recht. Aus meiner Sicht sollte das Plugin auch unbedingt ins SmarthomeNG integriert werden. Bei mir ist es das Herzstück der ganzen Automatisierung. Eine Umbenennung des Plugins wäre aber in dem Fall auch kein Fehler Sowas wie statemachine würde sich anbieten. Was meinst du offline ?
    Ich bin im Moment eigentlch ganz damit zufrieden ein eigenes Repository zu haben, denn das gibt mir die Möglichkeit auch kurzfristig Commits o. ä. zu integrieren, ohne erst einen PR erstellen zu müssen.
    Über eine Umbenennung des Plugins habe ich mir auch bereit Gedanken gemacht, habe es dann aber aus Rücksicht auf die Nutzer bisher verworfen. Denn wenn ich das Plugin umbenenne, würde ich auch die entsprechenden Attribute umbenennen, so dass alles wieder konsistent ist. Das würde aber bedeuten, dass jeder Nutzer wieder seine Konfiguration anpassen müsste. Dazu will ich aber ohne richtig guten Grund eigentlich niemanden zwingen.

    Grüße
    offline

    Einen Kommentar schreiben:


  • gerd
    antwortet
    Hallo,
    ich habe aktuell 7 Rolläden mit autoblind automatisiert und das Problem, dass sporadisch einzelne Rolläden nicht hoch/runterfahren.
    Offensichtlich wird das entsprechende ITEM zwar noch richtig bedient / geändert, allerdings die davon abgeleitete KNX-Botschaft nicht getriggert.

    Wie man an u.a. log sehen kann, wird die Adresse 3/1/21 (EG.Anbau.JalousieOst) zwar getriggert, aber vom KNX plugin nicht versendet.

    Code:
    2016-12-03  18:04:30 INFO     EG.WC.Rolladen.automatik.rules KNX: groupwrite telegram for: 3/1/61 - Value: True
    2016-12-03  18:04:30 DEBUG    Main         KNX[default]: 0.0.1 set 3/1/61 to True
    2016-12-03  18:04:30 INFO     EG.Buero.RolladenWest.automatik.rules KNX: groupwrite telegram for: 3/1/81 - Value: True
    2016-12-03  18:04:30 INFO     EG.Anbau.JalousieOst.automatik.rules KNX: groupwrite telegram for: 3/1/21 - Value: True
    2016-12-03  18:04:30 DEBUG    Main         KNX[default]: 0.0.1 set 3/1/81 to True
    2016-12-03  18:04:30 INFO     EG.Anbau.RolladenWest.automatik.rules KNX: groupwrite telegram for: 3/1/31 - Value: True
    2016-12-03  18:04:30 INFO     EG.Anbau.RolladenSued.automatik.rules KNX: groupwrite telegram for: 3/1/27 - Value: True
    2016-12-03  18:04:30 DEBUG    Main         KNX[default]: 0.0.1 set 3/1/31 to True
    2016-12-03  18:04:30 DEBUG    Main         KNX[default]: 0.0.1 set 3/1/27 to True
    hat jemand eine Idee?. Danke.

    Gruß Gerd

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Jup, Issue ist nun erstellt.
    Kann das Phänomen sonst noch wer reproduzieren? Also mal mehrfach hintereinander ein Item in den Suspendmodus versetzen und schauen, ob sich der suspend_text ändert..?

    Einen Kommentar schreiben:


  • gama
    antwortet
    Hi, mach doch ein Issue unter https://github.com/i-am-offline/smar...toblind/issues auf... ich denke es dort am besten platziert und "i-am-offline" für eine zentrale Sammlung der Themen dankbar...

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Ich hab jetzt noch 2 weitere Suspend Phänomene entdeckt:
    Zum einen wird die "current suspend age" teils nicht korrekt berechnet. Auch wenn ich smarthome gerade neu gestartet habe und frisch in den Suspend Modus gewechselt habe, kann es passieren, dass die Suspend Age zB auf 120 Sekunden liegt.

    Auch schräg: Schalte ich ein Item manuell aus, zeigt Autoblind die suspend End Time korrekt an. Schalte ich ein, wird die End Time auch korrigiert. Ab dem 3. Klick passiert allerdings nichts mehr. Konnte ich jetzt bei mehreren Items reproduzieren. Hier ein Auszug aus dem Log:

    Code:
    2016-11-29 14:16:40.181257 Staying at steckdosen.eg.terrasse.automatik.rules.suspend ('Ausgesetzt')
    2016-11-29 14:16:40.181673       Executing method 'insert_suspend_time(..suspend, %X)'
    2016-11-29 14:16:40.181948               Suspend time is 300
    2016-11-29 14:16:40.182522               Suspend item is steckdosen.eg.terrasse.automatik.suspend
    2016-11-29 14:16:40.183468               Current suspend age: 47.574803000000003
    2016-11-29 14:16:40.184034               Remaining suspend time: 252.425197
    2016-11-29 14:16:40.184935               Suspend finished at 2016-11-29 14:20:52.609606+01:00
    2016-11-29 14:16:40.185700       Action 'suspend_end': Set 'steckdosen.eg.terrasse.automatik.autostate_suspend_end' to '02:20:52 PM'
    2016-11-29 14:16:40.187758       Action 'suspend': Set 'steckdosen.eg.terrasse.automatik.suspend' to 'True'
    2016-11-29 14:17:21.982087 Update state of item steckdosen.eg.terrasse.automatik.rules ====================
    2016-11-29 14:17:21.982371 Update triggered by Eval (item=steckdosen.eg.terrasse.automatik.rules source=steckdosen.eg.terrasse.automatik.manuell dest=None)
    2016-11-29 14:17:21.983117 Eval initially triggered by Visu (item=steckdosen.eg.terrasse.SA source=10.0.0.27:60221)
    2016-11-29 14:17:21.983745 Executing method 'get_relative_itemvalue(..settings.suspendduration)'
    2016-11-29 14:17:21.984372 Last state: steckdosen.eg.terrasse.automatik.rules.suspend ('Ausgesetzt')
    2016-11-29 14:17:21.984661 Check if state 'steckdosen.eg.terrasse.automatik.rules.suspend' ('Ausgesetzt') can be left:
    2016-11-29 14:17:21.984848       No condition sets defined -> matching
    2016-11-29 14:17:21.985024 State can be left
    ...
    2016-11-29 14:17:21.991237 State can be entered
    2016-11-29 14:17:21.991437 Staying at steckdosen.eg.terrasse.automatik.rules.suspend ('Ausgesetzt')
    2016-11-29 14:17:21.991787       Executing method 'insert_suspend_time(..suspend, %X)'
    2016-11-29 14:17:21.991998               Suspend time is 300
    2016-11-29 14:17:21.992595               Suspend item is steckdosen.eg.terrasse.automatik.suspend
    2016-11-29 14:17:21.993268               Current suspend age: 89.384628000000006
    2016-11-29 14:17:21.993556               Remaining suspend time: 210.61537199999998
    2016-11-29 14:17:21.994183               Suspend finished at 2016-11-29 14:20:52.609113+01:00
    2016-11-29 14:17:21.994660       Action 'suspend_end': Set 'steckdosen.eg.terrasse.automatik.autostate_suspend_end' to '02:20:52 PM'
    Ein item sieht zB so aus:
    Code:
                    [[[[['rules']]]]]
                        type = bool
                        as_plugin = active
                        as_laststate_item_id = ..autostate_id
                        as_laststate_item_name = ..autostate_name
                        as_item_suspend_end = ..autostate_suspend_end 
                        as_item_taster = ...SA.ausschalttimer
    
                        as_suspend_time = eval:autoblind_eval.get_relative_itemvalue('..settings.suspendduration') * 60
                        eval_trigger = steckdosen.autoblind.steckdosentrigger  | steckdosen.autoblind.settings.* | steckdosen.eg.terrasse.automatik.settings.* | steckdosen.automatik_lock | steckdosen.eg.terrasse.automatik.lock | steckdosen.eg.terrasse.automatik.suspend | steckdosen.eg.terrasse.automatik.manuell | steckdosen.eg.terrasse.SA.ausschalttimer | Bett.*
                        [[[[[['lock']]]]]]
                            type = foo
                            as_use = steckdosen.autoblind.default.lock                        
                        [[[[[['taster']]]]]]
                            type = foo
                            as_use = steckdosen.autoblind.default.taster
                        [[[[[['suspend']]]]]]
                            type = foo
                            as_use = steckdosen.autoblind.default.suspend
    Und die defaults so:
    Code:
            [[['default']]]
                type=foo
                # Items, die geprueft werden
                .....
                as_item_suspend_active = steckdosen.autoblind.settings.suspend.active
    
                # Items die geaendert werden
                as_item_schalten = ...SA
    
                # Suspend und Lock Items
                as_item_manuell = ..manuell
                as_item_lock = ..lock
                as_item_suspend = ..suspend
    
                [[[['suspend']]]]
                    type = foo
                    name = Ausgesetzt
                    as_set_suspend = True
                    as_set_suspend_end = eval:autoblind_eval.insert_suspend_time('..suspend', suspend_text='%X')
                    [[[[['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_manuell = var:item.suspend_time
                        as_value_suspend = True
                        as_value_suspend_active = True

    Einen Kommentar schreiben:

Lädt...
X