Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Beschattung

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

    Hi Astrafahrer,

    sofern dein Jalousieaktor das hergibt, würde ich die Sperre bei geöffneter Türe direkt im Aktor setzen. Das ist in meinen Augen eine Sicherheitsfunktion, die von so wenigen Komponenten wie möglich abhängen sollte. Je nach Aktor (meiner kann das) wird werden während der gesetzten Sperre trotzdem Änderungen angenommen, aber nicht ausgeführt. Erst beim Lösen der Sperre im Aktor wird der letzte empfangene Wert umgesetzt.

    Wenn du es trotzdem komplett mit dem AutoBlind-Plugin realisieren willst, kannst du die Reihenfolge der Aktionen nicht direkt festlegen. Du kannst jedoch Aktionen verzögern. Das gibt dir die folgenden zwei Möglichkeiten:
    1. Du kannst einzelne Aktionen verzögern. Der kleinste Verzögerungsschritt ist dabei 1 Sekunde. Zum Verzögern siehe Doku auf GitHub
    2. Du teilst den Zustand in zwei Zustände auf. Ein erster Zustand der die Sperre löst, ein zweiter Zustand, der die Position anfährt. Den ersten Zustand stelltst du an den Anfang deiner Zustände und sorgst dafür, dass er nur durch das Schließen der Schiebetüre ausgelöst wird. (über eine trigger_item-Bedingung o. ä.). Als Aktion beendet dieser Zustand die Sperre des Jalousieaktors. Außerdem löst du mit diesem Zustand eine Neuermittlung des Status aus, indem du eine 1 auf das zugehörige Objekt-Item schreiben lässt (ggf. mit Verzögerung, s. o). Bei der Neuermittlung wird dann der gewünschte Zielstatus angesteuert, der die passenden Fahrbefehle schickt.

    Grüße
    offline

    Kommentar


      Zitat von Astrafahrer Beitrag anzeigen

      Die Jalousie fährt nicht weil die Sperre am Schluss kommt und nicht als erster Befehl.
      Wie kann ich die Reihenfolge der Aktionen beeinflussen? Welche Logik steckt hinter der Abarbeitung?
      .
      Kannst Du am Aktor nicht einstellen, dass er nach dem Aufheben der Sperre in die letzte Automatikposition fährt? Wenn Du in der Zwischenzeit die Automatikobjekte neu beschrieben hast, dann gilt die zuletzt geschriebene Position.

      Natürlich was offline schreibt: Sicherheitsrelevante Funktion (in diesem Fall Sperre) direkt am Aktor setzen.

      Kommentar


        Hi,

        ich hatte das "alte" Plugin (vor dem grossen Release im Dezember) erfolgreich als Beschattung am Laufen. Da das neue aber die automatische Sperre bei manueller Betätigung beinhaltete, hatte ich bereits im Januar aktualisiert.
        Leider entdecke ich bei meiner Implementierung doch ein paar Unklarheiten und hoffe, dass Ihr mir helfen könnt.
        Das Problem ist, dass nach einer automatischen Beschattung der Status in "Ausgesetzt bis... " geändert wird und eben nicht Beschattung bleibt"
        Auszug aus dem Log:

        Code:
        2016-05-30 12:40:54.133570 Update state of item Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts ======
        
        2016-05-30 12:40:54.133658 Update triggered by Eval (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules source=Raffstore.trigger dest=None)
        
        2016-05-30 12:40:54.133727 Eval initially triggered by Scheduler (item=Raffstore.trigger source=None)
        
        2016-05-30 12:40:54.133877 Last state: Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Tag ('Tag')
        
        2016-05-30 12:40:54.133941 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Tag' ('Tag') can be left:
        
        2016-05-30 12:40:54.133998 No condition sets defined -> matching
        
        2016-05-30 12:40:54.134051 State can be left
        
        2016-05-30 12:40:54.134141 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Lock' ('Automatik manuell gesperrt') can be entered:
        
        2016-05-30 12:40:54.134216 Check condition set 'enter':
        
        2016-05-30 12:40:54.134288 Condition 'lock': value=True negate=False current=False
        
        2016-05-30 12:40:54.134342 not OK -> not matching
        
        2016-05-30 12:40:54.134395 State can not be entered
        
        2016-05-30 12:40:54.134447 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend' ('Ausgesetzt') can be entered:
        
        2016-05-30 12:40:54.134501 Check condition set 'enter_stay':
        
        2016-05-30 12:40:54.134561 Condition 'manuell': min=None max=None negate=False current=True
        
        2016-05-30 12:40:54.134612 no limit given -> matching
        
        2016-05-30 12:40:54.134744 Age of 'manuell': min=None max=7200.0 negate=None current=834.146938
        
        2016-05-30 12:40:54.134798 given age limits ok -> matching
        
        2016-05-30 12:40:54.134862 Condition 'laststate': value=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend negate=False current=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Tag
        
        2016-05-30 12:40:54.134914 not OK -> not matching
        
        2016-05-30 12:40:54.134966 Check condition set 'enter_manuell':
        
        2016-05-30 12:40:54.135070 Executing method 'get_relative_itemid(..manuell)'
        
        2016-05-30 12:40:54.135152 Condition 'trigger_source': value=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell negate=False current=Raffstore.trigger
        
        2016-05-30 12:40:54.135205 not OK -> not matching
        
        2016-05-30 12:40:54.135255 State can not be entered
        
        2016-05-30 12:40:54.135305 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Beschattung' ('Beschattung') can be entered:
        
        2016-05-30 12:40:54.135367 Check condition set 'enter':
        
        2016-05-30 12:40:54.135428 Condition 'sun_azimut': min=70 max=270 negate=False current=163.664528438982
        
        2016-05-30 12:40:54.135479 given limits ok -> matching
        
        2016-05-30 12:40:54.135529 Age of 'sun_azimut': No limits given
        
        2016-05-30 12:40:54.167704 Condition 'outdoortemperature': min=19.0 max=None negate=False current=24.0
        
        2016-05-30 12:40:54.167772 given limits ok -> matching
        
        2016-05-30 12:40:54.167833 Age of 'outdoortemperature': No limits given
        
        2016-05-30 12:40:54.167930 Condition 'brightnessGt43k': value=True negate=False current=True
        
        2016-05-30 12:40:54.168018 OK -> matching
        
        2016-05-30 12:40:54.168086 Age of 'brightnessGt43k': No limits given
        
        2016-05-30 12:40:54.168185 Condition 'indoortemperature': min=22.0 max=None negate=False current=22.0
        
        2016-05-30 12:40:54.168272 given limits ok -> matching
        
        2016-05-30 12:40:54.169132 Age of 'indoortemperature': No limits given
        
        2016-05-30 12:40:54.169256 Condition 'sun_altitude': min=25 max=None negate=False current=57.74402433774275
        
        2016-05-30 12:40:54.169351 given limits ok -> matching
        
        2016-05-30 12:40:54.169439 Age of 'sun_altitude': No limits given
        
        2016-05-30 12:40:54.190831 State can be entered
        
        2016-05-30 12:40:54.190903 Changing to Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Beschattung ('Beschattung')
        
        2016-05-30 12:40:54.200194 Executing method 'SunTracking()'
        
        2016-05-30 12:40:54.200321 Current sun altitude is 57.74403799812109°
        
        2016-05-30 12:40:54.200638 Blinds at right angle to the sun at 32.25596200187891°
        
        2016-05-30 12:40:54.200719 Action 'lamelle': Set 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.lamelle' to '32.25596200187891'
        
        2016-05-30 12:40:54.215262 Action 'suspend': Set 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.suspend' to 'False'
        
        2016-05-30 12:40:54.215440 Action 'hoehe': Set 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.hoehe' to '100'
        
        2016-05-30 12:40:55.229215 Update state of item Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts ======
        
        2016-05-30 12:40:55.229355 Update triggered by Eval (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules source=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell dest=None)
        
        2016-05-30 12:40:55.229452 Eval initially triggered by AutoBlind Plugin (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.hoehe source=None)
        
        2016-05-30 12:40:55.229506 Ignoring changes from AutoBlind Plugin
        
        2016-05-30 12:40:56.218309 Update state of item Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts ======
        
        2016-05-30 12:40:56.218492 Update triggered by Eval (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules source=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell dest=None)
        
        2016-05-30 12:40:56.218602 Eval initially triggered by AutoBlind Plugin (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.hoehe source=None)
        
        2016-05-30 12:40:56.218663 Ignoring changes from AutoBlind Plugin
        
        2016-05-30 12:42:01.149247 Update state of item Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts ======
        
        2016-05-30 12:42:01.149335 Update triggered by Eval (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules source=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell dest=None)
        
        2016-05-30 12:42:01.149436 Eval initially triggered by AutoBlind Plugin (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.hoehe source=None)
        
        2016-05-30 12:42:01.149497 Ignoring changes from AutoBlind Plugin
        
        2016-05-30 12:42:01.203865 Update state of item Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts ======
        
        2016-05-30 12:42:01.203991 Update triggered by Eval (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules source=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell dest=None)
        
        2016-05-30 12:42:01.204092 Eval initially triggered by KNX (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.lamelle source=1.1.30)
        
        2016-05-30 12:42:01.204318 Last state: Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Beschattung ('Beschattung')
        
        2016-05-30 12:42:01.204403 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Beschattung' ('Beschattung') can be left:
        
        2016-05-30 12:42:01.204469 No condition sets defined -> matching
        
        2016-05-30 12:42:01.204528 State can be left
        
        2016-05-30 12:42:01.204635 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Lock' ('Automatik manuell gesperrt') can be entered:
        
        2016-05-30 12:42:01.204698 Check condition set 'enter':
        
        2016-05-30 12:42:01.204768 Condition 'lock': value=True negate=False current=False
        
        2016-05-30 12:42:01.204866 not OK -> not matching
        
        2016-05-30 12:42:01.204926 State can not be entered
        
        2016-05-30 12:42:01.204984 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend' ('Ausgesetzt') can be entered:
        
        2016-05-30 12:42:01.205072 Check condition set 'enter_stay':
        
        2016-05-30 12:42:01.205242 Condition 'manuell': min=None max=None negate=False current=True
        
        2016-05-30 12:42:01.205301 no limit given -> matching
        
        2016-05-30 12:42:01.205492 Age of 'manuell': min=None max=7200.0 negate=None current=0.002827
        
        2016-05-30 12:42:01.205557 given age limits ok -> matching
        
        2016-05-30 12:42:01.205667 Condition 'laststate': value=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend negate=False current=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Beschattung
        
        2016-05-30 12:42:01.205727 not OK -> not matching
        
        2016-05-30 12:42:01.205820 Check condition set 'enter_manuell':
        
        2016-05-30 12:42:01.205931 Executing method 'get_relative_itemid(..manuell)'
        
        2016-05-30 12:42:01.206060 Condition 'trigger_source': value=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell negate=False current=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell
        
        2016-05-30 12:42:01.206124 OK -> matching
        
        2016-05-30 12:42:01.206181 Age of 'trigger_source': No limits given
        
        2016-05-30 12:42:01.206236 State can be entered
        
        2016-05-30 12:42:01.206292 Changing to Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend ('Ausgesetzt')
        
        2016-05-30 12:42:01.208050 Executing method 'insert_suspend_time(..suspend, Automatik ausgesetzt bis %X)'
        
        2016-05-30 12:42:01.208858 Action 'suspend': Set 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.suspend' to 'True'
        
        2016-05-30 12:42:01.209569 Update state of item Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts ======
        
        2016-05-30 12:42:01.209641 Update triggered by Eval (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules source=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.suspend dest=None)
        
        2016-05-30 12:42:01.209739 Eval initially triggered by AutoBlind Plugin (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.suspend source=None)
        
        2016-05-30 12:42:01.209801 Ignoring changes from AutoBlind Plugin
        
        2016-05-30 12:42:02.483804 Update state of item Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts ======
        
        2016-05-30 12:42:02.483940 Update triggered by Eval (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules source=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell dest=None)
        
        2016-05-30 12:42:02.484878 Eval initially triggered by KNX (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.hoehe source=1.1.30)
        
        2016-05-30 12:42:02.485154 Last state: Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend ('Ausgesetzt')
        
        2016-05-30 12:42:02.485263 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend' ('Ausgesetzt') can be left:
        
        2016-05-30 12:42:02.485365 No condition sets defined -> matching
        
        2016-05-30 12:42:02.485452 State can be left
        
        2016-05-30 12:42:02.485541 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Lock' ('Automatik manuell gesperrt') can be entered:
        
        2016-05-30 12:42:02.485631 Check condition set 'enter':
        
        2016-05-30 12:42:02.485734 Condition 'lock': value=True negate=False current=False
        
        2016-05-30 12:42:02.485819 not OK -> not matching
        
        2016-05-30 12:42:02.485922 State can not be entered
        
        2016-05-30 12:42:02.486024 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend' ('Ausgesetzt') can be entered:
        
        2016-05-30 12:42:02.486113 Check condition set 'enter_stay':
        
        2016-05-30 12:42:02.486210 Condition 'manuell': min=None max=None negate=False current=False
        
        2016-05-30 12:42:02.486423 no limit given -> matching
        
        2016-05-30 12:42:02.486623 Age of 'manuell': min=None max=7200.0 negate=None current=0.004439
        
        2016-05-30 12:42:02.486700 given age limits ok -> matching
        
        2016-05-30 12:42:02.486800 Condition 'laststate': value=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend negate=False current=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend
        
        2016-05-30 12:42:02.486874 OK -> matching
        
        2016-05-30 12:42:02.486947 Age of 'laststate': No limits given
        
        2016-05-30 12:42:02.487024 Condition 'suspend': value=True negate=False current=True
        
        2016-05-30 12:42:02.487110 OK -> matching
        
        2016-05-30 12:42:02.487181 Age of 'suspend': No limits given
        
        2016-05-30 12:42:02.487252 State can be entered
        
        2016-05-30 12:42:02.487419 Executing method 'insert_suspend_time(..suspend, Automatik ausgesetzt bis %X)'
        
        2016-05-30 12:42:02.488799 Staying at Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend ('Ausgesetzt')
        
        2016-05-30 12:42:02.489057 Action 'suspend': Set 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.suspend' to 'True'
        
        2016-05-30 12:42:02.536469 Update state of item Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts ======
        
        2016-05-30 12:42:02.536552 Update triggered by Eval (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules source=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell dest=None)
        
        2016-05-30 12:42:02.536647 Eval initially triggered by KNX (item=Raffstore.EG_wohnzimmer_schiebetuer_rechts.lamelle source=1.1.30)
        
        2016-05-30 12:42:02.536824 Last state: Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend ('Ausgesetzt')
        
        2016-05-30 12:42:02.536893 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend' ('Ausgesetzt') can be left:
        
        2016-05-30 12:42:02.536955 No condition sets defined -> matching
        
        2016-05-30 12:42:02.537010 State can be left
        
        2016-05-30 12:42:02.537067 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Lock' ('Automatik manuell gesperrt') can be entered:
        
        2016-05-30 12:42:02.537125 Check condition set 'enter':
        
        2016-05-30 12:42:02.537193 Condition 'lock': value=True negate=False current=False
        
        2016-05-30 12:42:02.537249 not OK -> not matching
        
        2016-05-30 12:42:02.537304 State can not be entered
        
        2016-05-30 12:42:02.537359 Check if state 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend' ('Ausgesetzt') can be entered:
        
        2016-05-30 12:42:02.537414 Check condition set 'enter_stay':
        
        2016-05-30 12:42:02.537477 Condition 'manuell': min=None max=None negate=False current=True
        
        2016-05-30 12:42:02.537532 no limit given -> matching
        
        2016-05-30 12:42:02.537671 Age of 'manuell': min=None max=7200.0 negate=None current=0.002056
        
        2016-05-30 12:42:02.537729 given age limits ok -> matching
        
        2016-05-30 12:42:02.537795 Condition 'laststate': value=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend negate=False current=Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend
        
        2016-05-30 12:42:02.537850 OK -> matching
        
        2016-05-30 12:42:02.537905 Age of 'laststate': No limits given
        
        2016-05-30 12:42:02.537964 Condition 'suspend': value=True negate=False current=True
        
        2016-05-30 12:42:02.538016 OK -> matching
        
        2016-05-30 12:42:02.538070 Age of 'suspend': No limits given
        
        2016-05-30 12:42:02.538123 State can be entered
        
        2016-05-30 12:42:02.538240 Executing method 'insert_suspend_time(..suspend, Automatik ausgesetzt bis %X)'
        
        2016-05-30 12:42:02.538508 Staying at Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend ('Ausgesetzt')
        
        2016-05-30 12:42:02.538584 Action 'suspend': Set 'Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.suspend' to 'True'
        
        2016-05-30 12:45:54.403003 Update state of item Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts ======
        ITEM (habe ich hauptsächlich aus dem Bsp übernommen):
        Code:
        [Raffstore]
            [[default]]
                # Item fuer Helligkeit aussen
                as_item_brightness = Raffstore.helligkeit
                # Item fuer Temperatur aussen
                as_item_outdoortemperature = Aussen.temperatur
                # Item fuer Temperatur innen
                as_item_indoortemperature = EG.wohnzimmer.temperatur
                # Item das anzeigt, ob die Helligkeit aussen mehr als 25kLux betraegt
                as_item_brightnessGt25k = Raffstore.helligkeit.gt25k
                # Item das anzeigt, ob die Helligkeit aussen mehr als 43kLux betraegt
                as_item_brightnessGt43k = Raffstore.helligkeit.gt43k        
                # Item fuer Schneealarm
                as_item_schneealarm = Raffstore.schneealarm
                # Item fuer Behanghoehe
                as_item_hoehe = ...hoehe
                # Keine Aenderung der Behanghoehe wenn Abweichung kleiner 10
                as_mindelta_hoehe = 5
                # Item fuer Suspend time
                as_suspend_time = Raffstore.suspension
                # Item fuer Lamellenwinkel          
                as_item_lamelle = ...lamelle
                # Keine Aenderung des Lamellenwinkels wenn Abweichung kleiner 5
                as_mindelta_lamelle = 5
                # 'Manuell' Item
                as_item_manuell = ..manuell
                # 'Lock' Item
                as_item_lock = ..lock
                # 'Suspend' Item
                as_item_suspend = ..suspend
        
                # Zustand 'Sperre ueber Sperr-Item'
                [[[Lock]]]
                    type = foo
                    name = Automatik manuell gesperrt
                    # Aktionen:
                    # - 'Suspend'-Item ggf. zuruecksetzen              
                    as_set_suspend = False
                    # sonst nichts tun
                    [[[[enter]]]]
                        # Einstieg in 'Lock': Wenn
                        # - das 'Lock'-Item gesetzt ist
                        as_value_lock = True
        
                # Zustand 'Zeitweises Deaktivieren bei manuellen Aktionen'
                [[[Suspend]]]
                    type = foo
                    name = Ausgesetzt
                    # Namensermittlung ueber eval-Funktion
                    as_name = eval:autoblind_eval.insert_suspend_time('..suspend', 'Automatik ausgesetzt bis %X')
                    # Aktionen:
                    # - 'Suspend'-Item setzen
                    as_set_suspend = True
                    # sonst nichts tun
        
                    # Einstieg in 'Suspend': Wenn
                    [[[[enter_manuell]]]]                      
                        # - die Zustandsermittlung ueber das 'Manuell'-Item ausgeloest wurde
                        as_value_trigger_source = eval: autoblind_eval.get_relative_itemid('..manuell')
        
                    # Verbleib in 'Suspend': Wenn
                    [[[[enter_stay]]]]
                        # - wir bereits in 'Suspend' sind
                        as_value_laststate = var:current.state_id
                        # - die letzte Aenderung des 'Manuell'-Items hoechstens 3600 Sekunden her ist
                        as_agemax_manuell = item: Raffstore.suspension
                        # - das 'Suspend'-Item nicht von irgendwo anders auf 'False' gesetzt wurde
                        as_value_suspend = True
        
                # Zustand 'Nachfuehren der Lamellen zum Sonnenstand bei grosser Helligkeit', Gebaeudeseite 1
                [[[Beschattung]]]
                    type = foo
                    name = Beschattung
                    # Aktionen:
                    # - Behang ganz herunterfahren
                    as_set_hoehe = value:100
                    # - Lamellen zur Sonne ausrichten
                    as_set_lamelle = eval:autoblind_eval.sun_tracking()
                    # - 'Suspend'-Item ggf. zuruecksetzen              
                    as_set_suspend = False
        
                    # Einstieg in 'Beschattung': Wenn
                    [[[[enter]]]]
                        # - das Flag 'Helligkeit > 43kLux' seit mindestens 60 Sekunden gesetzt ist
                        as_value_brightnessGt43k = true
                        as_minage_brightnessGt43k = 60
                        # - die Sonnenhoehe mindestens 25° ist
                        as_min_sun_altitude = 25
                        # - die Sonne aus Richtung 70° bis 270° kommt
                        as_min_sun_azimut = 70
                        as_max_sun_azimut = 270
                        # - es draussen mindestens 22° hat
                        as_min_outdoortemperature = item:Raffstore.min_aussentemperatur
                        as_min_indoortemperature = item:Raffstore.min_innentemperatur
        
                    # Hysterese fuer Helligkeit: Wenn
                    [[[[enter_hysterese]]]]
                        # ... wir bereits in 'Beschattung' sind
                        as_value_laststate = var:current.state_id
                        # .... das Flag 'Helligkeit > 25kLux' gesetzt ist
                        as_value_brightnessGt25k = true
                        # ... die Sonnenhoehe mindestens 25° ist
                        as_min_sun_altitude = 25
                        # ... die Sonne aus Richtung 70° bis 270° kommt
                        as_min_sun_azimut = 70
                        as_max_sun_azimut = 270
                        # Anmerkung: Hier keine erneute Pruefung der Temperatur, damit Temperaturschwankungen nicht
                        # zum Auf-/Abfahren der Raffstores fuehren
        
                    # Verzoegerter Ausstieg nach Unterschreitung der Mindesthelligkeit: Wenn
                    [[[[enter_delay]]]]
                        # ... wir bereits in 'Beschattung' sind
                        as_value_laststate = var:current.state_id
                        # .... das Flag 'Helligkeit > 25kLux' nicht (!) gesetzt ist, aber diese Aenderung nicht mehr als 20 Minuten her ist
                        as_value_brightnessGt25k = false
                        as_maxage_brightnessGt25k = Raffstore.delay
                        # ... die Sonnenhoehe mindestens 25° ist
                        as_min_sun_altitude = 25
                        # ... die Sonne aus Richtung 70° bis 270° kommt
                        as_min_sun_azimut = 70
                        as_max_sun_azimut = 270
                        # Anmerkung: Auch hier keine erneute Pruefung der Temperatur, damit Temperaturschwankungen nicht
                        # zum Auf-/Abfahren der Raffstores fuehren
                        
                # Zustand 'Nacht'
                [[[Nacht]]]
                    type = foo
                    name = Nacht
                    # Aktionen:
                    # - Behang ganz herunterfahren
                    as_set_hoehe = item: Raffstore.max_hoehe
                    # - Lamellen ganz schliessen
                    as_set_lamelle = value:100
                    # - 'Suspend'-Item ggf. zuruecksetzen              
                    as_set_suspend = False
        
                    # Einstieg in 'Nacht': Wenn
                    [[[[enter]]]]
                        # - es zwischen 16:00 und 08:00 Uhr ist
                        as_min_time = 07:30
                        as_max_time = 16:00
                        as_negate_time = True
                        # - die Helligkeit hoechstens 90 Lux betraegt
                        as_max_brightness = 0
        
                # Zustand 'Morgens'
                [[[Morgens]]]
                    type = foo
                    name = Daemmerung Morgens
                    # Aktionen:
                    # - Behang ganz herunterfahren
                    as_set_hoehe = item: Raffstore.max_hoehe
                    # - Lamellen ca 60° nach unten
                    as_set_lamelle = value:60
                    # - 'Suspend'-Item ggf. zuruecksetzen              
                    as_set_suspend = False
        
                    # Einstieg in 'Morgens': Wenn
                    [[[[enter]]]]
                        # - die Helligkeit zwischen 90 und 150 Lux betraegt
                        as_min_brightness = 90
                        as_max_brightness = 180
                        # - es zwischen 08:00 und 12:00 Uhr ist
                        as_min_time = 07:30
                        as_max_time = 12:00
        
                # Zustand 'Abends'
                [[[Abends]]]
                    type = foo
                    name = Daemmerung Abends
                    # Aktionen:
                    # - Behang ganz herunterfahren
                    as_set_hoehe = item: Raffstore.max_hoehe
                    # - Lamellen ca 60° nach oben
                    as_set_lamelle = value:60
                    # - 'Suspend'-Item ggf. zuruecksetzen              
                    as_set_suspend = False
        
                    # Einstieg in 'Abends': Wenn
                    [[[[enter]]]]
                        # - die Helligkeit zwischen 90 und 150 Lux betraegt
                        as_min_brightness = 90
                        as_max_brightness = 250
                        # - es zwischen 12:00 und 24:00 Uhr ist
                        as_min_time = 12:00
                        as_max_time = 24:00
                        # Anmerkung: '24:00' ist eigentlich eine ungueltige Zeit. Sie wird aber automatisch zu 23:59:59 umgewandelt
        
                # Zustand 'Tag'  
                [[[Tag]]]
                    type = foo
                    name = Tag
                    # Aktionen:
                    # - Behang ganz hochfahren
                    as_set_hoehe = value:0
                    # - Lamellen auf den Standardwert bei ganz hochgefahrenem Behang
                    as_set_lamelle = value:0
                    # - 'Suspend'-Item ggf. zuruecksetzen              
                    as_set_suspend = False
        
                    # Einstieg in 'Tag': Wenn
                    [[[[enter]]]]
                        # - es zwischen 08:00 und 22:00 Uhr ist
                        as_min_brightness = 90
                        as_min_time = 07:30
                        as_max_time = 22:00
            [[EG_wohnzimmer_schiebetuer_rechts]]
                name = Raffstore EG Wohnzimmer Schiebetuer_rechts
                [[[aufab]]]
                    type = bool
                    knx_dpt = 1
                    knx_send = 3/1/6
                    knx_listen = 3/1/6
                    visu_acl = rw
                    enforce_updates = yes
                    
                [[[step]]]
                    type = bool
                    knx_dpt = 1
                    knx_send = 3/2/6
                    knx_listen = 3/2/6
                    visu_acl = rw
                    enforce_updates = yes
                    
                [[[hoehe]]]
                    type = num
                    knx_dpt = 5.001
                    knx_send = 3/3/6
                    knx_listen = 3/4/6
                    visu_acl = rw
                    enforce_updates = yes
                    
                [[[hoehe_wert]]]
                    type = num
                    knx_dpt = 5.001
                    knx_cache = 3/4/6
                    visu_acl = r
                    
                [[[hoehe_wert_visu]]]
                    type = num
                    knx_dpt = 5.001
                    knx_cache = 3/4/6
                    visu_acl = r
                    eval = value * 2.55
                    
                [[[lamelle]]]
                    type = num
                    knx_dpt = 5.001
                    knx_send = 3/5/6
                    knx_listen = 3/6/6
                    visu_acl = rw
                    enforce_updates = yes
                    
                [[[lamelle_wert]]]
                    type = num
                    knx_dpt = 5.001
                    knx_cache = 3/6/6
                    visu_acl = r
                    
                [[[lamelle_wert_visu]]]
                    type = num
                    knx_dpt = 5.001
                    knx_cache = 3/6/6
                    visu_acl = r
                    eval = value * 2.55
                    
                [[[automatik]]]
                    [[[[lock]]]]
                        type = bool
                        name = Sperr-Item
                        cache = on
                        eval = or
                        eval_trigger = Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manual_lock | Raffstore.automatik
        
                    [[[[manual_lock]]]]
                        type = bool
                        name = Manuelles Sperr-Item
                        visu_acl = rw
                        cache = on
        
                    [[[[suspend]]]]
                        type = bool
                        name = Suspend-Item
                        visu_acl = rw
                        # Achtung: Beim 'Suspend'-Item niemals 'enforce_updates = yes' setzen! Das fuehrt dazu dass das Setzen des
                        # Suspend-Items bei der Initialisierung zu einem endlosen sofortigen Wiederaufruf der Statusermittlung fuehrt!
        
                    [[[[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
                        cache = on
                        as_manual_invert = true
                        # Aenderungen dieser Items sollen als manuelle Bedienung gewertet werden,
                        eval_trigger = Raffstore.EG_wohnzimmer_schiebetuer_rechts.aufab | Raffstore.EG_wohnzimmer_schiebetuer_rechts.step | Raffstore.EG_wohnzimmer_schiebetuer_rechts.hoehe | Raffstore.EG_wohnzimmer_schiebetuer_rechts.lamelle | Raffstore.EG_wohnzimmer_all.aufab | Raffstore.EG_wohnzimmer_all.step | Raffstore.EG_zentral_all.aufab | Raffstore.EG_zentral_all.step |Â Raffstore.EG_zentral_all.hoehe |Â Raffstore.EG_zentral_all.lamelle | Raffstore.EG_wohnzimmerkueche_all.aufab | Raffstore.EG_wohnzimmerkueche_all.step | Raffstore.Zentral_all_suedseite.aufab | Raffstore.Zentral_all_suedseite.step
                        # Aenderungen, die urspruenglich von diesen Triggern (:) ausgeloest wurden, sollen als manuelle Bedienung gewertet werden
                        #as_manual_include = Visu:*
                        # Aenderungen, die urspruenglich von diesen Triggern (:) ausgeloest wurden, sollen als manuelle Bedienung gewertet werden
                        # as_manual_exclude = KNX:0.0.0  
        
                    [[[[rules]]]]
                        type = bool
                        name = Automatik Raffstore EG Wohnzimmer Schiebetuer_rechts
                        as_plugin = active
                        # Erste Zustandsermittlung nach 30 Sekunden
                        as_startup_delay = 15
                        # Ueber diese Items soll die Statusermittlung ausgeloest werden
                        eval_trigger = Raffstore.trigger | Raffstore.automatik | Raffstore.schneealarm | Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell | Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.lock | Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.suspend
                        # In dieses Item soll die Id des aktuellen Zustands geschrieben werden
                        as_laststate_item_id = ..state_id
                        # In dieses Item soll der Name des aktuellen Zustands geschrieben werden
                        as_laststate_item_name = ..state_name
        
                        [[[[[Lock]]]]]
                            # Zustand 'Lock': Nur die Vorgabeeinstellungen uebernehmen
                            as_use = Raffstore.default.Lock
        
                        [[[[[Suspend]]]]]
                            # Zustand 'Suspend': Nur die Vorgabeeinstellungen uebernehmen
                            as_use = Raffstore.default.Suspend
                        
                        [[[[[Beschattung]]]]]
                            # Zustand 'Nacht': Nur die Vorgabeeinstellungen uebernehmen
                            as_use = Raffstore.default.Beschattung
        
                        [[[[[Nacht]]]]]
                            # Zustand 'Nacht': Nur die Vorgabeeinstellungen uebernehmen
                            as_use = Raffstore.default.Nacht
        
                        [[[[[Tag]]]]]
                            # Zustand 'Tag': Vorgabeeinstellungen uebernehmen
                            as_use = Raffstore.default.Tag
        und CLI sagt folgendes:

        Code:
        Items:
        
        ======
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.aufab = False
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.step = False
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.hoehe = 98.8
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.hoehe_wert = 98.8
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.hoehe_wert_visu = 251.93999999999997
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.lamelle = 31.8
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.lamelle_wert = 31.8
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.lamelle_wert_visu = 81.08999999999999
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.lock = False
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manual_lock = False
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.suspend = True
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.state_id = Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.state_name = Automatik ausgesetzt bis 02:42:01 PM
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.manuell = True
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules = True
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Lock
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Suspend
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Beschattung
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Nacht
        
        Raffstore.EG_wohnzimmer_schiebetuer_rechts.automatik.rules.Tag
        Zuletzt geändert von hhhc; 30.05.2016, 12:19.
        ++ Der ultimative ETS Schnellkurs ++
        KNX und die ETS vom Profi lernen
        www.ets-schnellkurs.de

        Kommentar


          Hi hhhc,

          das Plugin wird um 2016-05-30 12:42:01.203865 dadurch getriggert, dass das KNX-Gerät mit der PA 1.1.30 den Wert von "Raffstore.EG_wohnzimmer_schiebetuer_rechts.lamell e" ändert. Wenn 1.1.30 ein Taster ist, dann ist das so korrekt. Da du es als Fehler beschreibst ist 1.1.30 vermutlich aber ein Jalousieaktor, der eine Statusrückmeldung schickt und das "manuell"-Item triggert. In diesem Fall könntest du bei deinem "manuell"-Item ein
          Code:
          as_manual_exclude = KNX:1.1.30
          angeben, dann sollten Änderungen von dieser PA nicht mehr als "manuell" gewertet werden.
          Detaillierte Doku siehe https://github.com/i-am-offline/smar...E#manuell-item

          Grüße
          offline

          Kommentar


            Ok, danke. Das schau ich mir nochmal an.
            ++ Der ultimative ETS Schnellkurs ++
            KNX und die ETS vom Profi lernen
            www.ets-schnellkurs.de

            Kommentar


              Hi zusammen!

              Ich wollte auf SmarthomeNG neuesten Develop Release umsteigen. Leider gibt es hier beim aktuellen Autoblind-Plugin eine ganz Menge an Errors..
              Code:
              2016-06-06  12:27:45 ERROR    autoblind
              2016-06-06  12:27:45 ERROR    autoblind
              2016-06-06  12:27:45 ERROR    autoblind
              2016-06-06  12:27:45 ERROR    autoblind    Item 'playlists.eingang.ich.automatik.rules.info', Condition Set 'enter', condition 'info': Condition info: Neither 'item' nor 'eval' given!
              2
              Das Item sieht so aus:
              Code:
                                  [[[[[['info']]]]]]
                                      type = foo
                                      name = Info
                                      as_set_playlist = item:..settings.playlist.info
                                      as_set_volume = item:..settings.volume
                                      as_set_zufall = value:0
                                      [[[[[[['enter']]]]]]]
                                          type = foo
                                          as_value_info = value:true
              Und as_item_info = ...info_an

              Ich vermute, dass es an diesem relativen Item liegt. Ich habe das hier auch noch adaptiert, ändert die Situation aber leider nicht:
              https://github.com/smarthomeNG/smarthome/pull/50

              Any ideas? Vielen Dank!

              Kommentar


                Ich werf noch ne andere Frage hinterher..auch wenn das Thema hier schon besprochen wurde. Wie löst ihr aktuell Hysteresen? Es gibt da wohl zwei Ansätze:

                * Leave-Bedingung. Nachteil, man muss alle möglichen Varianten hier eintragen, also auch lock, suspend, etc. Wenn diverse höher stehende Stati nicht eingenommen werden sollen, trägt man das einfach nicht in die Leave-Bedingungen ein.
                * Eine zweite (bzw. x-te) Enter-Bedingung, bei der abgefragt wird, ob der letzte Zustand der eigene war und die Hysterese-Bedingung (zB 2 Grad kühler, 20000 Lux dunkler, etc.) erfüllt wird..

                Wäre noch froh, wenn's ne Info zum Update auf das neueste Smarthome.py gäbe.

                Kommentar


                  Onkelandy:Ich habe mein System noch nicht auf smarthomeNG umgestellt da mit dafür bisher die Zeit gefehlt hat. Ich kann dir daher leider keine schnelle Lösung präsentieren. Habe nun aber wieder etwas mehr Zeit und werde das Thema nun angehen.

                  @all: Der aktuelle Develop-Zweig wurde heute morgen in den Master-Zweig gemerged. Die meisten haben ja sowieso mit dem develop-Zweig gearbeitet und der ist daher genügend abgehangen. Für SmarthomeNG wirds erst mal einen separaten develop-Zweig geben, sobald es hier erste Ergebnisse gibt, werde ich diesen auf Github pushen.

                  Onkelandy: Ich nutze durchgehend die zweite Möglichkeit (zusätzliche enter-Bedingung). Ich war sogar mal am überlegen, die "leave"-Bedingungen sterben zu lassen ...

                  Grüße
                  offline

                  Kommentar


                    ich hab auch ein problem , mit der suspend/manuell funktionalität:
                    Initialize Item autoblind.default.rollladen ====================================
                    2016-06-23 11:58:04.231743 Init state autoblind.default.rollladen.Lock
                    2016-06-23 11:58:04.236609 ERROR: Ignoring state autoblind.default.rollladen.Lock because: State 'autoblind.default.rollladen.Lock', Condition Set 'enter', Condition 'lock': Condition lock: Neither 'item' nor 'eval' given!
                    2016-06-23 11:58:04.242353 Init state autoblind.default.rollladen.Suspend
                    2016-06-23 11:58:04.249979 ERROR: Ignoring state autoblind.default.rollladen.Suspend because: State 'autoblind.default.rollladen.Suspend', Condition Set 'enter_stay', Condition 'suspend': Condition suspend: Neither 'item' nor 'eval' given!
                    sieht in der default so aus:
                    Code:
                                [[[[Lock]]]]
                                    type = foo
                                    name = Manuell gesperrt
                                    as_set_suspend = False
                                    [[[[[enter]]]]]
                                        as_value_lock = True
                                
                                [[[[Suspend]]]]
                                    type = foo
                                    name = Ausgesetzt
                                    # Namensermittlung über eval-Funktion
                                    as_name = eval:autoblind_eval.insert_suspend_time("..suspend", "Automatik ausgesetzt bis %X")
                                    # Aktionen:
                                    # - "Suspend"-Item setzen
                                    as_set_suspend = True
                                    # sonst nichts tun
                    
                                    # Einstieg in "Suspend": Wenn
                                    [[[[[enter_manuell]]]]]                        
                                        # - die Zustandsermittlung über das "Manuell"-Item ausgelöst wurde
                                        as_value_trigger_source = eval: autoblind_eval.get_relative_itemid("..manuell")
                    
                                    # Verbleib in "Suspend": Wenn  
                                    [[[[[enter_stay]]]]]
                                        # - wir bereits in "Suspend" sind
                                        as_value_laststate = var:current.state_id
                                        # - die letzte Änderung des "Manuell"-Items höchstens 3600 Sekunden her ist
                                        as_agemax_manuell = 3600
                                        # der Rollladen zwischen 8.30 und 21.00 manuell hochfahren wurde
                                        as_min_time = 08:30
                                        as_max_time = 21:00
                                        # - das "Suspend"-Item nicht von irgendwo anders auf "False" gesetzt wurde
                                        as_value_suspend = True
                    im Item so:
                    Code:
                    [[[automatik]]]
                                    [[[[lock]]]]
                                        type = bool
                                        visu_acl = rw
                                        cache = on
                                        enforce_updates = yes
                                    [[[[suspend]]]]
                                        type = bool
                                        visu_acl = rw
                                    [[[[state_id]]]]
                                        type = str
                                        visu_acl = r
                                        cache = on
                                    [[[[state_name]]]]
                                        type = str
                                        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 | esszimmer.rollladen.pos_abrufen  | zentral.rollladen.fahren | zentral.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:0.0.0 | Init:*
                                    [[[[rules]]]]
                                        type = bool
                                        name = Automatik Esszimmer
                                        as_startup_delay = 30
                                        as_plugin = active
                                        as_item_pos = esszimmer.rollladen.pos_abrufen
                                        as_item_fahren = esszimmer.rollladen.fahren
                                        as_laststate_item_id = esszimmer.rollladen.automatik.state_id
                                        as_laststate_item_name = esszimmer.rollladen.automatik.state_name
                                        as_item_lock = esszimmer.rollladen.automatik.lock
                                        as_item_manuell = esszimmer.rollladen.automatik.manuell
                                        as_item_suspend = esszimmer.rollladen.automatik.suspend
                                        as_delay_fahren = autoblind_eval.get_random_int(min=5,max=250)
                                        
                                        # Ü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]]]]]
                                            as_use = autoblind.default.rollladen.Lock
                                        [[[[[Suspend]]]]]
                                            # Zustand "Suspend": Nur die Vorgabeeinstellungen übernehmen
                                            as_use = autoblind.default.rollladen.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!
                    Dachte eigentlich das ich alles drin hab ..
                    Der Rolladen checkt einfach nich, das ich manuell getriggert hab und fährt mir nach dem cycle ende die rolladen wieder auf..
                    Zuletzt geändert von Bonze; 24.06.2016, 13:40. Grund: erweitert

                    Kommentar


                      Zitat von Onkelandy Beitrag anzeigen
                      Ich wollte auf SmarthomeNG neuesten Develop Release umsteigen. Leider gibt es hier beim aktuellen Autoblind-Plugin eine ganz Menge an Errors..
                      Also ich habe vor ca. 2 1/2 Wochen auf NG umgestellt und habe bis dato keine Errors gefunden.
                      Zitat von Onkelandy Beitrag anzeigen
                      Ich vermute, dass es an diesem relativen Item liegt. Ich habe das hier auch noch adaptiert, ändert die Situation aber leider nicht:
                      https://github.com/smarthomeNG/smarthome/pull/50
                      Wahrscheinlich liegt der Hund dann wohl in deinem Item begraben

                      cu Yfkt5A
                      DALI(ABB DG/S1.1), KODI Odroid, TrueNAS, Zehnder ComfoAir 200 L Luxe
                      microk8s-Cluster: HomeAssistant, MusicAssistant, mosquitto, TVHeadend, jellyfin

                      Kommentar


                        Es muss am relativen Definieren des Items liegen. Ich nutze das Feature mit .. Bzw. ..., etc. offline , hast du da ne Idee?

                        Kommentar


                          Mittlerweile läuft smarthomeNG bei mir Produktiv (Develop-Branch), inclusive des AutoBlind Plugins. Änderungen am Plugin waren dabei nicht erforderlich. Ich denke daher auf, dass das Problem tatsächlich bei euren Items liegt. Auch ich verwende natürlich relative Items und die funktionieren problemlos.
                          Der Pull Request https://github.com/smarthomeNG/smarthome/pull/50 sollte auf dieses Problem keinen Einfluss haben. Er betrifft die Funktionalität "Zusätzliche Kommandos für das CLI Plugin".

                          Grüße
                          offline

                          Kommentar


                            Nach einem erneuten Update von SmartHomeNG funktioniert nun interessanterweise alles ganz problemlos.. Wunderbar.

                            Kommentar


                              Hi offline

                              Habe entdeckt, dass es doch noch bzw. wieder ein Problem gibt.. hast du eine Idee, woran das liegen kann.. Ich müsste eigtl. die aktuellste Version des Plugins haben, da ging das auch schon problemlos bei mir.. erst seit dem 10.7. spinnt's, vermutl. hab ich dort mal ein git pull für SmarthomeNG gemacht..

                              Code:
                              2016-07-10 12:36:19.362439 Problem evaluating '1 if (autoblind_eval.get_relative_itemvalue('...warm.dimmen') >= 1 or autoblind_eval.get_relative_itemvalue('...kalt.dimmen') >= 1) else 0': name 'autoblind_eval' is not defined.
                              Das wirklich Interessante ist, dass aber autoblind_eval.suntracking() funktioniert..:
                              Code:
                              2016-07-10 12:37:13.971528     Executing method 'SunTracking()'
                              2016-07-10 12:37:13.974685         Current sun altitude is 62.975949241972515°
                              2016-07-10 12:37:13.978938         Blinds at right angle to the sun at 27.024050758027485°
                              Das ist sonderbar. Die Items sehen auszugsweise so aus:
                              as_set_lamella = eval:autoblind_eval.sun_tracking()
                              bzw.
                              as_set_retrigger = eval: 1 if (autoblind_eval.get_relative_itemvalue('...warm.di mmen') >= 1 or autoblind_eval.get_relative_itemvalue('...kalt.dim men') >= 1) else 0
                              as_delay_retrigger = 1

                              Danke für die Unterstützung!

                              Kommentar


                                Hi Onkelandy

                                habe gerade nicht die Zeit für ein Patch aber ich kann dir sagen, wie du das Problem behebst.

                                Es gibt an drei Stellen im Coding jeweils eine Zeile
                                Code:
                                if self.__eval.startswith("autoblind_eval"):
                                • AutoBlindAction.py, ca Zeile 283
                                • AutoBlindCondition.py, ca. Zeile 346
                                • AutoBlindValue.py, ca. Zeile 182

                                Bitte ersetzte diese Zeilen durch
                                Code:
                                if "autoblind_eval" in self.__eval:
                                Für dein aktuelles Problem dürfte primär die Zeile in AutoBlindValue.py relevant sein.

                                Bei Gelegenheit werde ich dann noch einen Commit Pushen.

                                Grüße
                                offline
                                Zuletzt geändert von offline; 14.07.2016, 05:55.

                                Kommentar

                                Lädt...
                                X