Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ignoring state verschattung.raffstore4.automatik.rules.Suspend because: Condition on_enter_or_stay: Action as_action_retrigger: Attribute 'as_action_retrigger: Parameter 'to' must be set for function 'set'!
aus der Beschreibung wurde ich nicht ganz schlau.
Wie muss ich on_enter / on_leave umschreiben, dass es funktioniert?
danke vorab und Grüße
ANDI
Code:
[verschattung]
[[default]]
[[[raffstore]]]
as_item_suspend = ..suspend
as_item_suspendzeit = vorgabe.suspendzeit
[[[[Suspend]]]]
type = foo
name = Ausgesetzt
as_name = eval:autoblind_eval.insert_suspend_time("..suspend", "Automatik ausgesetzt bis %X")
[[[[[on_enter_or_stay]]]]]
as_action_suspend = function: special | value: suspend:..suspend,..manuell | order: 1
# possible Functions: "set", "force" (wird auch bei gleich gebliebenem Itemwert ausgeführt), "byattr", "trigger", "run" and "special"
as_action_retrigger = function: set | value: True | delay: var:item.suspend_remaining | order: 27
[[[[[on_leave]]]]]
as_action_suspend = function: set | value: False
[[[[[enter_manuell]]]]]
as_value_trigger_source = eval: autoblind_eval.get_relative_itemid("..manuell")
[[[[[enter_stay]]]]]
as_value_laststate = var:current.state_id
as_agemax_suspend = item:vorgabe.suspendzeit
as_value_suspend = True
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?
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:
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
Die UZSU Einstellung sieht dann zB so aus: 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.
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
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.
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 =======================================
Authoblind Config:
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
Und die Rollade:
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
Hat jemand eine Idee warum die manuelle Steuerung nicht mehr funktioniert?
Gruß
René
was genau meinst du mit "manueller Steuerung"? Die Bedienung mit den Tastern im Raum oder das manuelle Fahren über eine Visu?
Grüße offline
Hi 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.
Ich habe noch mal getestet. Eine Steuerung ist nicht möglich. Weder über die Taster, noch über die GUI.
Das Verbose Log habe ich nach hier hochgeladen.
Könntest du mir sagen was ich falsch gemacht habe?
Danke und Gruß
René
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar