Perfekt, jetzt klappt's. Danke!
Ankündigung
Einklappen
Keine Ankündigung bisher.
Automatische Beschattung
Einklappen
X
-
Ich hab auch probleme beim suspend modus, dieser wird nicht gesetzt obwohl ich beim manuellen fahren diese meldung im log erhalteCode:2016-07-15 11:04:40.646158 Update triggered by Eval (item=schlafzimmer.rollladen.automatik.rules source=schlafzimmer.rollladen.fahren dest=None) 2016-07-15 11:04:40.649375 Eval initially triggered by AutoBlind Plugin (item=schlafzimmer.rollladen.fahren source=None) 2016-07-15 11:04:40.650211 Ignoring changes from AutoBlind Plugin 2016-07-15 11:04:41.652948 Update state of item Automatik Schlafzimmer ==================================== 2016-07-15 11:04:41.653865 Update triggered by Eval (item=schlafzimmer.rollladen.automatik.rules source=schlafzimmer.rollladen.automatik.manuell dest=None) 2016-07-15 11:04:41.654804 Eval initially triggered by AutoBlind Plugin (item=schlafzimmer.rollladen.fahren source=None) 2016-07-15 11:04:41.655446 Ignoring changes from AutoBlind Plugin
Kommentar
-
Hallo,
ich habe auch noch meine Probleme beim Suspend.
Im Logfile erscheint:
Code:2016-07-19 23:41:36.094930 Check if state 'EG.Wohnz.Rollo.Rechts.automatik.rules_steuerung.Suspend' ('Ausgesetzt') can be entered: 2016-07-19 23:41:36.096642 Check condition set 'enter_manuell': 2016-07-19 23:41:36.097992 Executing method 'get_relative_itemid(..manuell)' 2016-07-19 23:41:36.099491 Condition 'trigger_source': value=EG.Wohnz.Rollo.Rechts.automatik.manuell negate=False current=Autoblind.trigger.Rollo.WZ 2016-07-19 23:41:36.100939 not OK -> not matching 2016-07-19 23:41:36.102197 Check condition set 'enter_stay': 2016-07-19 23:41:36.103480 Condition 'laststate': value=EG.Wohnz.Rollo.Rechts.automatik.rules_steuerung.Suspend negate=False current=EG.Wohnz.Rollo.Rechts.automatik.rules_steuerung.Suspend 2016-07-19 23:41:36.104786 OK -> matching 2016-07-19 23:41:36.106047 Age of 'laststate': No limits given 2016-07-19 23:41:36.107109 Condition 'manuell': min=None max=None negate=False current=True 2016-07-19 23:41:36.107957 no limit given -> matching 2016-07-19 23:41:36.110134 Age of 'manuell': min=None max=7200 negate=None current=266.342015 2016-07-19 23:41:36.111039 given age limits ok -> matching 2016-07-19 23:41:36.112257 Condition 'suspend': value=True negate=False current=True 2016-07-19 23:41:36.113107 OK -> matching 2016-07-19 23:41:36.114674 Age of 'suspend': No limits given 2016-07-19 23:41:36.115575 State can be entered 2016-07-19 23:41:36.117368 Executing method 'insert_suspend_time(..suspend, Automatik ausgesetzt bis %X)' 2016-07-19 23:41:36.118324 Suspend time is 3600 2016-07-19 23:41:36.119617 Suspend item is EG.Wohnz.Rollo.Rechts.automatik.suspend 2016-07-19 23:41:36.121137 Current suspend age: 2951.45847 2016-07-19 23:41:36.122331 Remaining suspend time: 648.54153 2016-07-19 23:41:36.124139 Suspend finished at 2016-07-19 23:52:24.664832+02:00 2016-07-19 23:41:36.125971 Staying at EG.Wohnz.Rollo.Rechts.automatik.rules_steuerung.Suspend ('Ausgesetzt') 2016-07-19 23:41:36.126907 Action 'suspend': Set 'EG.Wohnz.Rollo.Rechts.automatik.suspend' to 'True'
as_agemax_manuell = 7200 habe ich gesetzt.
Ich vermute die Zeile:
Code:2016-07-19 23:41:36.118324 Suspend time is 3600
#suspend_time_default = 3600
Aber wie kann ich diesen Wert verändern? Da verstehe ich die Doku nicht.
Auch: wie ist das Verhältnis von suspend_time und as_agmax manuell? Das ist mir unklar.
Für Hilfe wäre ich dankbar....
Kommentar
-
mit suspend_time = 3600
wie hast du die items aufgebaut?
ich habs gemacht wie in dem vollständigen beispiel
default mit den standart sachen
Code:[autoblind] type=foo [[trigger]] [[[rollladen]]] type = bool name = Gemeinsamer Trigger für alle Raffstores enforce_updates = yes cycle = 300 = 1 [[default]] [[[rollladen]]] as_plugin = active as_startup_delay = 30 as_repeat_actions = true suspend_time = 3600 as_item_brightness = dg.diele.helligkeit # Item für Helligkeit as_item_temperature = Wetter.Temperatur # Item für Temperatur außen as_item_luftdruck = Wetter.Luftdruck # Item für Luftdruck aussen as_item_zentral_to_0 = zentral.rollladen.rollladenautomatik # Zustand "Sperre über Sperr-Item" [[[[lock]]]] type = foo name = Automatik manuell gesperrt # Aktionen: # - "Suspend"-Item ggf. zurücksetzen as_set_suspend = False # sonst nichts tun [[[[[enter]]]]] # Einstieg in "Lock": Wenn # - das "Lock"-Item gesetzt ist 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 # - das "Suspend"-Item nicht von irgendwo anders auf "False" gesetzt wurde as_value_suspend = True
Code:schlafzimmer] name = Schlafzimmer sv_page = room sv_img = scene_kitchen.png [[rollladen]] name = rollladen value = westen [[[auto]]] type = bool value = 0 [[[fahren]]] enforce_updates = On type = bool visu_acl = rw knx_dpt = 1 knx_send = 2/1/13 [[[stop]]] enforce_updates = On type = bool visu_acl = rw knx_dpt = 1 knx_send = 2/1/14 [[[status]]] enforce_updates = On type = num visu = yes sqlite = true cache = true knx_dpt = 5 visu_acl = rw knx_cache = 2/1/15 knx_listen = 2/1/15 knx_send = 2/1/15 [[[pos_speichern]]] enforce_updates = On type = num visu = yes knx_dpt = 1 visu_acl = rw knx_cache = 2/1/16 knx_listen = 2/1/16 knx_send = 2/1/16 [[[pos_abrufen]]] enforce_updates = On type = num visu = yes knx_dpt = 1 visu_acl = rw knx_cache = 2/1/17 knx_listen = 2/1/17 knx_send = 2/1/17 [[[automatik]]] [[[[lock]]]] type = bool visu_acl = rw cache = on enforce_updates = yes [[[[suspend]]]] type = bool visu_acl = rw [[[[state_id]]]] type = str visu_acl = rw 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 = schlafzimmer.rollladen.fahren | schlafzimmer.rollladen.stop | schlafzimmer.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:* | schlafzimmer.rollladen.status [[[[rules]]]] type = bool name = Automatik Schlafzimmer as_startup_delay = 30 as_plugin = active #as_item_auto = ..auto as_item_pos = ..pos_abrufen as_item_fahren = ..fahren as_laststate_item_id = .state_id as_laststate_item_name = .state_name as_item_lock = .lock as_item_manuell = .manuell as_item_suspend = .suspend as_delay_fahren = autoblind_eval.get_random_int(2,250) # Über diese Items soll die Statusermittlung ausgelöst werden eval_trigger = autoblind.trigger.rollladen | schlafzimmer.rollladen.automatik.lock | schlafzimmer.rollladen.automatik.suspend | schlafzimmer.rollladen.fahren | schlafzimmer.rollladen.pos_abrufen | zentral.rollladen.fahren | zentral.rollladen.stop # In dieses Item soll die Id des aktuellen Zustands geschrieben werden [[[[[lock]]]]] as_use = autoblind.default.rollladen.lock [[[[[suspend]]]]] 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!
016-07-21 20:28:49.767697 Initialize Item autoblind.default.rollladen ====================================
2016-07-21 20:28:49.780926 Init state autoblind.default.rollladen.lock
2016-07-21 20:28:49.793386 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-07-21 20:28:49.803370 Init state autoblind.default.rollladen.suspend
2016-07-21 20:28:49.814741 ERROR: Ignoring state autoblind.default.rollladen.suspend because: State 'autoblind.default.rollladen.suspend', Condition Set 'enter_stay', Condition 'manuell': Condition manuell: Neither 'item' nor 'eval' given!
bekomme ihn nicht weg, zweifle langsam an mir selbst ....
Kommentar
-
Danke Bonze,
hab' ich ausprobiert, mit anderen Werten, aber bei mir wird immer
Suspend time is 3600
angezeigt. Hab also immer noch das Problem. Hab mich ansonsten auch ziemlich an die Beispielkonfig gehalten.
Leider hab ich auch noch ein Problem: Die Zeit des suspend Modus bleibt bestehen und wird nicht verlängert wenn ich noch mal einen Schalter betätige,
der bei den manuell items definiert ist.
Versuche mal bei Dir den Abschnitt bzgl. LOCK zu löschen und neu einzutippeln (nicht kopieren)
Auch wenns blöd klingt; ich hatte diesen Fehler auch und meine mich zu erinnern ihn durch Neueingabe beseitigt zu haben.
Kommentar
-
Hallo zusammen,
Onkelandy Habe beim nachpflegen der Änderung gerade gesehen, dass diese Änderung im aktuellen Develop-Zweig schon enthalten ist, aber nicht in den Master-Zweig gelangt ist ...
Bonze / jonah64 Wenn Ihr für ein AutoBlind-Item die Suspend-Zeit ändern wollt, müsst Ihr bei diesem Item das AttributCode:[B]as_[/B]suspend_time = <Sekunden>
Code:suspend_time_default = <Sekunden>
Grüße offline
Edit: Die Änderung der Suspend-Dauer war nicht in der Doku enthalten. Habe das nun nachtragenZuletzt geändert von offline; 22.07.2016, 06:14.
Kommentar
-
Vielleicht wärs noch möglich, auf die neue logging-Option von SmarthomeNG einzugehen... das wäre cool:
self.logger = logging.getLogger(__name__) https://knx-user-forum.de/forum/supp...konfigurierbarZuletzt geändert von bmx; 02.08.2016, 06:39.
Kommentar
-
offline
By the way: Super wär's wenn das Plugin ein as_manual_invert = false auch schlucken würd und dann eben nicht automatisch immer den Wert ändert. Das könnte ich gerade für eine Situation gut brauchen - und aktuell wird wohl nur gecheckt, ob das Attribut vorhanden ist, aber nicht welchen Wert es hat. Gerade in Zusammenhang mit as_manual_exclude / include wäre das hilfreich.
Danke!Zuletzt geändert von Onkelandy; 03.08.2016, 15:25.
Kommentar
-
offline:
Wenn Ihr für ein AutoBlind-Item die Suspend-Zeit ändern wollt, müsst Ihr bei diesem Item das Attribut
Code:
as_suspend_time = <Sekunden> angeben
Kommentar
-
offline
Ich habe ein sonderbares Phänomen mit int und float Werten erlebt. Und zwar wird ein Item von mir vermutlich wegen des sqlite Plugins ab und zu auf einen Float Wert gestellt, während ich es per Visu generell auf einen int Wert stelle. Obgleich ein normales eval oder eine Logik offenbar keinen Unterschied zwischen 0 und 0.0 macht, scheint dein Plugin aber doch diese zwei gleichen num Werte zu differenzieren:
Code:2016-08-07 00:51:09.350791 Check if state 'licht.og.terrasse.screens.automatik.rules.arbeiten' ('Arbeiten') can be entered: 2016-08-07 00:51:09.353048 Check condition set 'enter': 2016-08-07 00:51:09.355986 Condition 'lichtmodus': value=1 negate=False current=1.0 2016-08-07 00:51:09.358409 not OK -> not matching
Noch ein weiteres lustiges Phänomen, das zwar auf einem kleinen Fehler von mir basiert, aber vielleicht dennoch abgefangen werden könnte. Wenn man in eine Bedingung einen Float-Wert schreibt für ein Item, das als bool deklariert ist, funktioniert der Vergleich plötzlich auch nicht mehr.. Hier die Enter Bedingungen:
Code:[[[[['enter']]]]] type = foo as_value_urlaub = 1 [[[[['enter_float']]]]] type = foo as_value_urlaub = 1.0
Code:2016-08-07 01:10:57.651539 Check if state 'steckdosen.kg.technik_server.automatik.rules.urlaub' ('Urlaub') can be entered: 2016-08-07 01:10:57.651999 Check condition set 'enter': 2016-08-07 01:10:57.652594 Condition 'urlaub': value=True negate=False current=False 2016-08-07 01:10:57.653089 not OK -> not matching 2016-08-07 01:10:57.653562 Check condition set 'enter_float': 2016-08-07 01:10:57.654185 Condition 'urlaub': min=None max=None negate=False current=False 2016-08-07 01:10:57.655040 no limit given -> matching 2016-08-07 01:10:57.655538 Age of 'urlaub': No limits given 2016-08-07 01:10:57.655988 State can be entered
Zuletzt geändert von Onkelandy; 07.08.2016, 00:16.
Kommentar
-
jonah64
Also mein supsend_time sieht so aus:
Code:[['kg']] type = foo [[['technik_server']]] type=foo [[[['automatik']]]] type = foo [[[[['autostate_id']]]]] type = str visu_acl = ro cache = on [[[[['autostate_name']]]]] type = str visu_acl = ro cache = on [[[[['autostate_suspend_end']]]]] type = str visu_acl = ro cache = on [[[[['lock']]]]] type = bool knx_dpt = 1 knx_listen = 4/5/2 visu_acl = rw cache = on [[[[['suspend']]]]] type = bool knx_dpt = 1 visu_acl = rw [[[[['manuell']]]]] type = bool name = Manuelle Bedienung eval_trigger = steckdosen.kg.technik_server.SA as_manual_invert = True as_manual_exclude = Init:* | Database:* | KNX:1.1.1 [[[[['settings']]]]] type = foo [[[[[['suspendduration']]]]]] type = num visu_acl = rw cache = True enforce_updates = no # value = 6 [[[[['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_suspend_time = eval:autoblind_eval.get_relative_itemvalue('..settings.suspendduration') * 60 eval_trigger = steckdosen.autoblind.steckdosentrigger
Kommentar
Kommentar