Ja, jedoch war es der Stand von Jan/17. Ich werde es noch einmal nach einem git pull versuchen. Danke soweit.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Automatische Beschattung
Einklappen
X
-
Hallo Markus,
nutzt du die letzte Version aus dem Develop-Zweig? Ich meine mich zu erinnern, dass ich dieses Problem schon behoben habe.
Grüße
offline
Einen Kommentar schreiben:
-
Hallo,
ich habe eine Frage zu von AutoBlind ignorierten Event.
Zuvor kurz das Problem:
Ich möchte die Beschattung in Abhängigkeit von An-/Abwesenheit steuern. Somit hat jede FSM ein "presence" Item per default, was in den in den jeweiligen Zustands-Entry-Bedingungen ausgewertet wird. Funktioniert alles bestens.
Der Unterschied liegt nun darin, das die Anwesenheit je nach Raum (und somit angepasster FSM) individuell ermittelt werden soll und innerhalb des presence Items unterschiedliche Logik (evals, eval_trigger) haben soll.
Das Problem liegt nur darin, dass in Update des presence Items erst mit dem nächsten trigger erkannt wird (in meinem Fall 5 Minuten), obwohl die FSM per eval_trigger auf dieses Item "lauscht". Im Log kommt die Meldung:
Demzufolge erkennt die FSM den Statuswechsel von presence richtig, im o.g. Fall von der zentralen Haus FSM, jedoch wird die die Änderung ignoriert.Code:2017-08-10 18:16:42.949187 Update state of item Shutter FSM =============================================== 2017-08-10 18:16:42.952101 Update triggered by Eval (item=EG.kitchen.door.shutter.auto.fsm source=EG.kitchen.door.shutter.auto.presence dest=None) 2017-08-10 18:16:42.953828 Eval initially triggered by AutoBlind Plugin (item=HOME.mode.state.athome source=None) 2017-08-10 18:16:42.955704 Ignoring changes from AutoBlind Plugin
In diesem Thread wurden ein paar Seiten zuvor ähnliche "Probleme" mit suspend diskutiert, aber ich konnte keine daraus Schlüsse für mein aktuelles Problem ableiten. Vielleicht weiß jemand Rat.
Danke
Markus
Einen Kommentar schreiben:
-
Hallo Nochmal,
ich habe immernoch das Problem, dass das LOG-File nicht zu deaktivieren ist.
wie kann das sein? hat jemand ne Idee?
Code:[autoblind] class_name = AutoBlind class_path = plugins.autoblind #startup_delay_default = 50 #suspend_time_default = 300 laststate_name_manually_locked = Manuell gesperrt #laststate_name_suspended = Ausgesetzt bis %X #log_level = 0 #log_directory = var/log/AutoBlind/ #log_maxage = 1
Einen Kommentar schreiben:
-
Hi offline,Zitat von offline Beitrag anzeigenHi Echo,
was genau meinst du mit "manueller Steuerung"? Die Bedienung mit den Tastern im Raum oder das manuelle Fahren über eine Visu?
Grüße offline
gute Frage. Das müsste ich noch mal probieren. Ich hatte die Fälle das garnicht gefahren wurde, oder ich habe den Befehl zum runterfahren gegen und dieser wurde wenige Sekunden später umgekehrt, so dass die Rollade wieder hochgefahren ist.
Gruß
René
Einen Kommentar schreiben:
-
Hi Echo,
was genau meinst du mit "manueller Steuerung"? Die Bedienung mit den Tastern im Raum oder das manuelle Fahren über eine Visu?
Grüße offline
Einen Kommentar schreiben:
-
Hi,
ich macht gerade die ersten Gehversuche mit dem Plugin. Zum testen habe ich ein Rollade über das Plugin gesteuert.
Das Herunterfahren gestern Nacht und das Hochfahren vorhin hat funktioniert. Jedoch kann ich die Rolllade aktuell nicht manuell fahren, da sie gelockt zu sein scheint.
Das Log wurde bei einem manuellen fahren erstellt.
Authoblind Config:Code:2017-06-04 10:13:27.913059 Update state of item Automatik Esszimmer ======================================= 2017-06-04 10:13:27.927934 Last state: eg.wohnzimmer.rollo.esszimmer.automatic.rules.Tag ('Tag (statisch)') 2017-06-04 10:13:27.928976 Check if state 'eg.wohnzimmer.rollo.esszimmer.automatic.rules.Tag' ('Tag (statisch)') can be left: 2017-06-04 10:13:27.929821 State can be left 2017-06-04 10:13:27.930707 Check if state 'eg.wohnzimmer.rollo.esszimmer.automatic.rules.lock' ('Automatik manuell gesperrt') can be entered: 2017-06-04 10:13:27.931543 Check condition set 'enter': 2017-06-04 10:13:27.932565 State can not be entered 2017-06-04 10:13:27.933408 Check if state 'eg.wohnzimmer.rollo.esszimmer.automatic.rules.suspend' ('Ausgesetzt') can be entered: 2017-06-04 10:13:27.934196 Check condition set 'enter_manuell': 2017-06-04 10:13:27.936268 Check condition set 'enter_stay': 2017-06-04 10:13:27.937407 State can not be entered 2017-06-04 10:13:27.938221 Check if state 'eg.wohnzimmer.rollo.esszimmer.automatic.rules.Nachfuehren' ('Tag Süden (nachführen)') can be entered: 2017-06-04 10:13:27.938976 Check condition set 'enter_hysterese': 2017-06-04 10:13:27.940043 Age of 'sun_azimut': No limits given 2017-06-04 10:13:27.941597 Check condition set 'enter': 2017-06-04 10:13:27.942783 Age of 'sun_azimut': No limits given 2017-06-04 10:13:27.943880 Age of 'sun_altitude': No limits given 2017-06-04 10:13:27.944911 Check condition set 'enter_delay': 2017-06-04 10:13:27.945920 Age of 'sun_azimut': No limits given 2017-06-04 10:13:27.947036 State can not be entered 2017-06-04 10:13:27.947858 Check if state 'eg.wohnzimmer.rollo.esszimmer.automatic.rules.Nacht' ('Nacht') can be entered: 2017-06-04 10:13:27.948608 Check condition set 'enter': 2017-06-04 10:13:27.949513 State can not be entered 2017-06-04 10:13:27.950403 Check if state 'eg.wohnzimmer.rollo.esszimmer.automatic.rules.Tag' ('Tag (statisch)') can be entered: 2017-06-04 10:13:27.951252 Check condition set 'enter': 2017-06-04 10:13:27.952313 Age of 'time': No limits given 2017-06-04 10:13:27.953202 State can be entered 2017-06-04 10:13:27.954044 Staying at eg.wohnzimmer.rollo.esszimmer.automatic.rules.Tag ('Tag (statisch)') 2017-06-04 10:13:27.955339 Action 'lamelle': No item defined. Ignoring. 2017-06-04 10:13:27.965071 Update state of item Automatik Esszimmer =======================================
Und die Rollade:Code:[autoblind] type=foo [[trigger]] [[[rollladen]]] type = bool name = Gemeinsamer Trigger für alle Rollladen 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 = aussen.helligkeit.aktuell # Item für Helligkeit as_item_temperature = eg.wohnzimmer.temperatur # Item für Temperatur außen as_item_zentral_to_0 = zentral.rollo.alle.automatic_mode # Item das anzeigt, ob die Helligkeit außen mehr als 25kLux beträgt as_item_brightnessGt25k = aussen.helligkeit.hell # Item das anzeigt, ob die Helligkeit außen mehr als 43kLux beträgt as_item_brightnessGt43k = aussen.helligkeit.sehr_hell # Item für Behanghöhe as_item_hoehe = ...pos # Keine Änderung der Behanghöhe wenn Abweichung kleiner 10 as_mindelta_lamelle = 15 # "Manuell" Item as_item_manuell = ..manuell # "Lock" Item as_item_lock = ..lock # "Suspend" Item as_item_suspend = ..suspend [[[[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 [[[[night]]]] name = Nacht as_set_height = value:100 [[[[nachfuehren_sueden]]]] type = foo name = Tag Süden (nachführen) # Aktionen: # - Behang ganz herunterfahren set_hoehe = value:70 # - Lamellen zur Sonne ausrichten #as_set_lamelle = eval:autoblind_eval.sun_tracking() # - "Suspend"-Item ggf. zurücksetzen as_set_suspend = False # Einstieg in "Nachführen": Wenn [[[[[enter]]]]] # - das Flag "Helligkeit > 43kLux" seit mindestens 60 Sekunden gesetzt ist as_value_brightnessGt43k = true as_agemin_brightnessGt43k = 300 # - die Sonnenhöhe mindestens 18° ist as_min_sun_altitude = 18 # - die Sonne aus Richtung 130° bis 270° kommt as_min_sun_azimut = 110 as_max_sun_azimut = 250 # - es draußen mindestens 22° hat as_min_temperature = 15 # Hysterese für Helligkeit: Wenn [[[[[enter_hysterese]]]]] # ... wir bereits in "Nachführen" sind as_value_laststate = var:current.state_id # .... das Flag "Helligkeit > 25kLux" gesetzt ist as_value_brightnessGt25k = true # ... die Sonnenhöhe mindestens 18° ist as_min_sun_altitude = 18 # ... die Sonne aus Richtung 130° bis 270° kommt as_min_sun_azimut = 110 as_max_sun_azimut = 250 # Anmerkung: Hier keine erneute Prüfung der Temperatur, damit Temperaturschwankungen nicht # zum Auf-/Abfahren der Raffstores führen # Verzögerter Ausstieg nach Unterschreitung der Mindesthelligkeit: Wenn [[[[[enter_delay]]]]] # ... wir bereits in "Nachführen" sind as_value_laststate = var:current.state_id # .... das Flag "Helligkeit > 25kLux" nicht (!) gesetzt ist, aber diese Änderung nicht mehr als 20 Minuten her ist as_value_brightnessGt25k = false as_agemax_brightnessGt25k = 1200 # ... die Sonnenhöhe mindestens 18° ist as_min_sun_altitude = 18 # ... die Sonne aus Richtung 130° bis 270° kommt as_min_sun_azimut = 110 as_max_sun_azimut = 250 # Anmerkung: Auch hier keine erneute Prüfung der Temperatur, damit Temperaturschwankungen nicht # zum Auf-/Abfahren der Raffstores führen [[[[night]]]] # Zustand "Nacht" type = foo name = Nacht # Aktionen: # - Behang ganz herunterfahren as_set_hoehe = value:100 # - Lamellen ganz schließen as_set_lamelle = value:0 # - "Suspend"-Item ggf. zurücksetzen as_set_suspend = False # Einstieg in "Nacht": Wenn [[[[[enter]]]]] # - es zwischen 16:00 und 08:00 Uhr ist as_min_time = 08:00 as_max_time = 16:00 as_negate_time = True # - die Helligkeit höchstens 90 Lux beträgt as_max_brightness = 20 # Zustand "Sperre über Sperr-Item" [[[[day]]]] # Zustand "Tag" type = foo name = Tag (statisch) # Aktionen: # - Behang ganz hochfahren as_set_hoehe = value:0 # - Lamellen auf den Standardwert bei ganz hochgefahrenem Behang as_set_lamelle = value:100 # - "Suspend"-Item ggf. zurücksetzen as_set_suspend = False # Einstieg in "Tag": Wenn [[[[[enter]]]]] # - es zwischen 06:30 und 21:30 Uhr ist as_min_time = 08:55 as_max_time = 21:30
Hat jemand eine Idee warum die manuelle Steuerung nicht mehr funktioniert?Code:[[[rollo]]] [[[[esszimmer]]]] name = Rollo Esszimmer type = num enforce_updates = yes [[[[[automatic_mode]]]]] # old automatic mode type = bool cache = yes enforce_update = true [[[[[lang]]]]] type = bool knx_dpt = 1 knx_listen = 1/1/3 | 0/1/1 | 0/1/6 | 0/1/0 # selbst, EG, Süden, Alle knx_send = 1/1/3 enforce_updates = yes [[[[[kurz]]]]] type = bool knx_dpt = 1 knx_send = 1/1/103 knx_listen = 1/1/103 | 0/1/101 | 0/1/106 | 0/1/100 # selbst, EG, Süden, Alle enforce_updates = yes [[[[[pos]]]]] type = num knx_dpt = 5.001 knx_init = 1/1/203 knx_send = 1/1/203 knx_listen = 1/4/203 | 0/1/206 # selbst, Süden enforce_updates = yes [[[[[suspend]]]]] # Zustand "Zeitweises Deaktivieren bei manuellen Aktionen" 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 # - wir weniger 3600 Sekunden im Suspend-Zustand sind as_agemax_suspend = 3600 # - das "Suspend"-Item nicht von irgendwo anders auf "False" gesetzt wurde as_value_suspend = True [[[[[automatic]]]]] type = str [[[[[[lock]]]]]] type = bool name = 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 führt dazu dass das Setzen des # Suspend-Items bei der Initialisierung zu einem endlosen sofortigen Wiederaufruf der Statusermittlung führt! [[[[[[state_id]]]]]] type = str name = Id des aktuellen Zustands visu_acl = r cache = on [[[[[[state_name]]]]]] type = str name = Name des aktuellen Zustands visu_acl = r cache = on [[[[[[manuell]]]]]] type = bool name = Manuelle Bedienung # Änderungen dieser Items sollen als manuelle Bedienung gewertet werden eval_trigger = eg.wohnzimmer.rollo.esszimmer.lang | eg.wohnzimmer.rollo.esszimmer.kurz | eg.wohnzimmer.rollo.esszimmer.pos #| 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. KNX ist die Adresse des Jalousi-Aktors #as_manual_exclude = KNX:1.1.10 | Init:* #| schlafzimmer.rollladen.status [[[[[[rules]]]]]] type = bool name = Automatik Esszimmer as_plugin = active # Erste Zustandsermittlung nach 30 Sekunden as_startup_delay = 30 # Über diese Items soll die Statusermittlung ausgelöst werden #eval_trigger = beispiel.trigger.raffstore | beispiel.raffstore1.automatik.anwesenheit | beispiel.raffstore1.automatik.manuell | beispiel.raffstore1.automatik.lock | beispiel.raffstore1.automatik.suspend eval_trigger = autoblind.trigger.rollladen | eg.wohnzimmer.rollo.esszimmer.automatik.lock | eg.wohnzimmer.rollo.esszimmer.automatik.suspend | eg.wohnzimmer.rollo.esszimmer.lang | eg.wohnzimmer.rollo.esszimmer.pos #| zentral.rollladen.fahren | zentral.rollladen.stop # 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 übernehmen as_use = autoblind.default.rollladen.lock [[[[[[[suspend]]]]]]] # Zustand "Suspend": Nur die Vorgabeeinstellungen übernehmen as_use = autoblind.default.rollladen.suspend [[[[[[[Nachfuehren]]]]]]] # Zustand "Nachfuehren": Nur die Vorgabeeinstellungen übernehmen (Gebäudeseite 2) as_use = autoblind.default.rollladen.nachfuehren_sueden [[[[[[[Nacht]]]]]]] # Zustand "Nacht": Nur die Vorgabeeinstellungen übernehmen as_use = autoblind.default.rollladen.night [[[[[[[Tag]]]]]]] # Zustand "Tag": Vorgabeeinstellungen übernehmen as_use = autoblind.default.rollladen.day
Gruß
René
Einen Kommentar schreiben:
-
Nur über UZSU ist die Frage. Wobei man mit den Sonnen- und Sonneruntergangszeien dort ja auch eine gewisse Flexibilität hat. Meine Eintrittsbedingung für Nacht ist jetzt hauptsächlich über die Dämmerung gesteuert. Die Zeitwerte sind ja nur dazu da, um nicht auf eine Sonnenfinsternis herein zu fallen
Einen Kommentar schreiben:
-
Wenn du es für sinnvoll erachtest, die uzsu als alleinige Bedingung einzusetzen, kannst du das natürlich machen. Ich habe sie seit Neuestem einfach als Ersatz für die Zeitbedingung im Einsatz. Die Bedingung für den Morgen z.B. sieht also so aus:
Die UZSU Einstellung sieht dann zB so aus:Code:enter: type: foo as_min_brightness: item:jalousien.autoblind.settings.night.max_brightness as_max_brightness: item:jalousien.autoblind.settings.morning.max_brightness #as_min_time: item:jalousien.autoblind.settings.morning.min_time -> das wäre "normal" #as_max_time: item:jalousien.autoblind.settings.morning.max_time -> das auch ;) as_value_morning_active: 'True' # -> Das ist das Bool Item, das über die UZSU geschalten wird
uzsu.png
Ansonsten scheint mir eine Kombination mit der UZSU nicht sonderlich sinnvoll. Also wenn du willst, dass deine Jalousie zwischen 7 und 10 Uhr bei entsprechender Minimal-Helligkeit und zB nur dann, wenn es in den letzten 5 Minuten Bewegung im Haus registriert hat, machst du es genau wie oben beschrieben über einen eigenen Zustand.. und steuerst die min/max Zeit über je ein Zeit/String Item oder eben ein Bool-Item, das über die UZSU an und aus geschaltet wird.
Einen Kommentar schreiben:
-
Hallo Onkel Andy, hallo Offline, hallo ZusammenZitat von EIB@Home Beitrag anzeigenAlles klar, danke. Ist installiert... Ich teste
seit gestern Abend/Nacht läuft autoblind (develop) auf allen 4 Hausseiten. Sieht bisher sehr gut aus - ich kann bis jetzt keine Probleme feststellen. Habe im Zug der Umstellung auf Develop die meisten Prüf- und Einstellwerte variabel als Item gebaut. Ich bin mehr als begeistert. Ein Hammer Plugin. Vielen Dank.
Habe gelesen, dass einige von Euch die UZSU mit integriert haben. Das würde mich auch noch interessieren. Irgendwie hänge ich da aber ein bisschen. Ich habe also eine UZSU, die einen Wert (bool oder str) entweder auf hoch oder runter stellt. Ist dieses Item dann die einzige Einstiegsbedingung in [enter]? Nachdem sich der Wert dieses Items aber doch erstmal nicht verändert.... wie stellt ihr dann sicher, dass nur um Schaltzeitpunkt der UZSU und nur mit dem gewünschten Wert geschaltet wird?
Viele Grüße Marco
Einen Kommentar schreiben:
-
Guten Morgen,
mein eingangs beschriebenes Problem bleibt bestehen:
Beim Auffahren wird nicht ausgesetzt, auch nach Update.
Hier der Auszug aus dem Debug:
Code:2017-05-21 09:59:11 DEBUG scheduler Main Triggering verschattung.rollo1.automatik.manuell - by: Visu source: 192.168.100.68:61818 dest: None value: {'value': False, 'source': 'verschattung -- scheduler.py:trigger:165 2017-05-21 09:59:11 DEBUG __init__ Main KNX[default]: 1.1.23 set 0/0/5 to 0.37 -- __init__.py:parse_telegram:207
Einen Kommentar schreiben:
-
Optional to: value:true. Nur brauchts da das value nicht. könnte aber auch eval:blabla sein, etc.
Einen Kommentar schreiben:
-
Die Fehlermeldung ist klar..
function: set | to: true
nicht value:true
Einen Kommentar schreiben:


Einen Kommentar schreiben: