Ankündigung
Einklappen
Keine Ankündigung bisher.
Automatische Beschattung
Einklappen
X
-
Ok, dann kann ich as_suspend_time nicht direkt ändern, sondern nur indirekt über ein verlinktes item?
Also wenn ich es richtig verstanden habe, dann:
as_supend_time: eval:..(duration)
duration_item wird im Fall von Suspend per as_action_duration auf settings.durationstandard gesetzt, im Fall von Suspend_Night auf settings.durationnight.
Einen Kommentar schreiben:
-
Bezüglich suspend_night hast du vollkommen Recht. Am besten heißt das dort:
as_value_laststate: eval:autoblind_eval.get_relative_itemid('..rules.n ight')
Dann kannst du da überallhin copy pasten.
Die Dauer vom Suspend kannst du auf jeden Fall mit einer set action ändern.. Ich hab mir für jedes Item ein paar Settings, hierarchisch auf Höhe von autostate_id, etc:
Und in der rules Sektion hab ich dann:Code:settings: type: foo suspendduration: type: num visu_acl: rw cache: 'True' enforce_updates: 'no'
Sprich, du kannst einfach entweder in der default-Sektion oder unter rules eines Items darauf referenzieren:Code:as_suspend_time: eval:autoblind_eval.get_relative_itemvalue('..settings.suspendduration') * 60
as_item_suspendduration: ..settings.suspendduration
Und die Duration dann anpassen:
Code:on_enter_or_stay: as_action_suspendduration: - 'function: set' - 'to: XYZ'
Einen Kommentar schreiben:
-
Habe es gerade getestet und es funktioniert.
Ein Problem bleibt: die Standby Zeit wird aufgrund der internen Variable "suspend_time" berechnet. Das Plugin bekommt diese per as_suspend_time übergeben.
Ich habe eine Workaround, da meine normale Standby Zeit größer ist als die Nacht-Standbyzeit, indem ich
enter_stay:
as_agemax_suspend: 300
ergänzt habe. Somit funktioniert es, auch wenn die Zeit noch als "alter" Suspend Time berechnet wird und Autoblind nur im Tigger-Rythmus (5 Minuten) den Standby Zustand deaktiviert.
Gibt es ein "Action-Function-Set-..." Aufruf, mit dem man diese suspend_time Variable schreiben kann? Dann wäre es "sauber"...
Einen Kommentar schreiben:
-
Oder vielleicht so:
Code:SUSPEND_NIGHT: as_use: HOME.shutter.default.SUSPEND enter_manuell: as_value_laststate: item.path.to.state.NIGHT
Einen Kommentar schreiben:
-
Was ist eigentlich genau der Unterschied zwischen den Zuständen suspend und suspend_night, ausser das es an unterschiedlichen Stellen vorkommt?
Könnte man nicht per as_use 2x das Default-Suspend verwenden?
Code:LOCK: as_use: HOME.shutter.default.LOCK SUSPEND_NIGHT: as_use: HOME.shutter.default.SUSPEND enter_manuell: as_value_night_active: 'True' NIGHT: as_use: HOME.shutter.default.NIGHT SUSPEND: as_use: HOME.shutter.default.SUSPEND OPEN: as_use: HOME.shutter.default.OPEN TRACKING: as_use: HOME.shutter.default.TRACKING ...
Einen Kommentar schreiben:
-
Hm,
ich versuche es mal zu verstehen:
Autoblind ist im modus "day" und meine Frau möchte trotzdem beschatten, dann setzt Autoblind den Status Standby z.B. für die nächsten 12h.
Werden die Bedingung für Nacht oder Nacht-Standby erfüllt, so wird Standby nicht "erreicht" und der Nacht Modus geht aktiv (Standby Signal wird über on_leave deaktiviert).
Soll nun ein weiterer Status "Abwesend" eingebaut werden, so müsste auch dieser Status von dem eigentlichen Standby kommen und ggf. mit einem eigenen Status-Standby ergänzt werden, oder?
Einen Kommentar schreiben:
-
Relevant ist eigentlich nur die Reihenfolge....
Nacht muss einfach vor dem supsend evaluiert werden..dann fahren die Jalousien auch zu, selbst wenn noch der Manuell-Modus laufen würde. Oder ich versteh's Problem immer noch nicht
?
Suspend_night overrulet die Nacht-Regel, falls man dort mal die Jalousien für ne Zeit ändern möchte.Code:lock: type: foo as_use: jalousien.autoblind.default.lock suspend_night: type: foo as_use: jalousien.autoblind.default.suspend_night night: type: foo as_use: jalousien.autoblind.default.night suspend: type: foo as_use: jalousien.autoblind.default.suspend morning: type: foo as_use: jalousien.autoblind.default.morning suntrack: type: foo as_use: jalousien.autoblind.default.suntrack_east day: type: foo as_use: jalousien.autoblind.default.day
Day-Zustand ist der "Standard", Jalousien sind oben.
Die Regel für suspend_night:
Regel für das normale Suspend:Code:suspend_night: type: foo name: Ausgesetzt enforce_updates: 'yes' on_enter_or_stay: as_action_suspend: - 'function: special' - 'value: suspend:..suspend, ..manuell' - 'repeat: True' - 'order: 1' as_action_suspend_end: - 'function: set' - "to: eval:autoblind_eval.insert_suspend_time('..suspend', suspend_text='%X')" - 'repeat: True' - 'order: 2' as_action_retrigger: - 'function: set' - 'to: true' - 'delay: var:item.suspend_remaining' - 'repeat: True' - 'order: 3' on_leave: as_action_suspend: - 'function: set' - 'to: False' as_action_suspend_end: - 'function: set' - 'to: ' enter_manuell: type: foo as_value_night_active: 'True' #as_max_time: item:jalousien.autoblind.settings.night.max_time #as_negate_time: 'True' as_max_brightness: item:jalousien.autoblind.settings.night.max_brightness as_value_trigger_source: eval:autoblind_eval.get_relative_itemid('..manuell') #as_value_suspend_active: 'True' enter_stay: type: foo as_value_laststate: var:current.state_id # 'as_agemax_suspend: var:item.suspend_time' as_agemax_suspend: eval:autoblind_eval.get_relative_itemvalue('..settings.suspendduration') * 60 as_value_suspend: 'True' #as_value_suspend_active: 'True'
Regel für Nacht:Code:suspend: type: foo name: Ausgesetzt on_enter_or_stay: as_action_suspend: - 'function: special' - 'value: suspend:..suspend, ..manuell' - 'repeat: True' - 'order: 1' as_action_suspend_end: - 'function: set' - "to: eval:autoblind_eval.insert_suspend_time('..suspend', suspend_text='%X')" - 'repeat: True' - 'order: 2' as_action_retrigger: - 'function: set' - 'to: true' - 'delay: var:item.suspend_remaining' - 'repeat: True' - 'order: 3' on_leave: as_action_suspend: - 'function: set' - 'to: False' as_action_suspend_end: - 'function: set' - 'to: ' enter_manuell: type: foo as_value_trigger_source: eval:autoblind_eval.get_relative_itemid('..manuell') #as_value_suspend_active: 'True' enter_stay: type: foo as_value_laststate: var:current.state_id as_agemax_suspend: eval:autoblind_eval.get_relative_itemvalue('..settings.suspendduration') * 60 as_value_suspend: 'True' #as_min_height: 15 #as_value_suspend_active: 'True'
Code:night: type: foo name: Nacht on_enter_or_stay: as_action_height: - 'function: set' - 'to: item:..settings.hoehe.night' - 'order: 1' as_action_lamella: - 'function: set' - 'to: item:jalousien.autoblind.settings.night.lamella' - 'order: 2' enter: type: foo as_max_brightness: item:jalousien.autoblind.settings.night.max_brightness as_min_time: item:jalousien.autoblind.settings.night.min_time as_max_time: item:jalousien.autoblind.settings.night.max_time as_negate_time: 'True' #as_value_night_active: 'True'
Einen Kommentar schreiben:
-
Der Grund ist folgende Optimierungsidee für die automatische Beschattung:
Für manche Storen (meist im Wohnbereich) möchte meine Frau tagsüber die "Kontrolle" behalten.
Das Problem von Standby ist, dass hier ein Timer läuft. Setzt man den Timer zu lang, gehen Abend lange die Storen nicht zu, ist er zu kurz fällt er zu früh in den Status den die Statemachine ermittelt zurück.
Zuerst dachte ich, ich könnte das zyklische Retriggern optimieren, aber ich glaube das wird schwierig, da ich jedes Signal welches zur Zustandswahl "entprellen" müsste. Wahrscheinlich ist zyklisches "Abtasten" auch Performance Optimal.
Nun noch einmal zum eigentlichen Problem:
Kurzerhand habe ich den Status "FREE" eingeführt, der keine Position / keinen Winkel vorgibt. Somit kann in diesem Modus frei eingestellt werden.
Weiterhin besteht die Möglichkeit eine "Zwangsführung" drüber zu legen und die Zustände "Nacht" oder "Abwesend" einzustellen.
Nur Morgens müsste zunächst der Zustand "OPEN" angefahren werden und dann in den Zustand "FREE" gewechselt werden, also wäre dann "OPEN" die Bedingung für "FREE". Ebenso sollte nach dem Heimkehren zunächst "OPEN" angefahren werden und danach in "FREE" gewechselt werden.
Alternativ könnte eventuell Standby sehr lange gesetzt werden und bei "NACHT" wird Standby einfach ignoriert. Hier bin ich mir noch nicht klar, wie das aussehen könnte.
Habt Ihr bereits Erfahrungen oder Lösungsansätze wie so ein "Vorübergehend-Manueller-Modus" funktionieren könnte?
Grüße
Markus
Einen Kommentar schreiben:
-
Den "Grund" hab ich jetzt gar nicht verstanden..?
Bei mir triggern die Zustände sowohl durch Item-Änderung als auch durch zyklischen Trigger. Theoretisch könnte man sich das Zyklische wirklich sparen, aber stören tut es ja auch nicht.
Einen Kommentar schreiben:
-
Hi,
natürlich. Aber ich verstehe die Frage nicht. Trigger für eine SM müssen ja entsprechend der Aufgabe der SM gewählt werden.
Gruß Waldemar
Einen Kommentar schreiben:
-
Kurz zum Thema Trigger:
Hat jemand von Euch autoblind ohne einen zyklischen trigger (z.B. alle 300s) und nur mit items im eval_trigger laufen, sodass autoblind nicht alle 5 Minuten aufgerufen wird, sondern nur, wenn sich ein item ändert?
Der Grund dafür war, dass die Wetterdaten alle 5 Minuten abgetastet werden sollen - glaube ich mal gelesen zu haben....
Grüße
Markus
Einen Kommentar schreiben:
-
DANKE- jetzt beschattet die Beschattung (autoblind) auch mit SH1.5 :-)Zitat von Onkelandy Beitrag anzeigenDas eval muss direkt in rules: gesetzt werden, dort wo die eval_trigger drin sind, die für die Evaluierung des Zustandes sorgen
Code:Rules: type: bool as_plugin: active eval: True name: Dg Wohnzimmer Terrasse eval_trigger: - Dg.Trigger
- Likes 1
Einen Kommentar schreiben:
-
Das eval muss direkt in rules: gesetzt werden, dort wo die eval_trigger drin sind, die für die Evaluierung des Zustandes sorgen
Einen Kommentar schreiben:

Einen Kommentar schreiben: