Genial! Vielen Dank! Musste den Text zwar 2 Mal lesen, aber jetzt scheint alles so zu klappen wie es soll
as_suspend_watch = essen.l45d_deckenlicht.kalt | essen.l45d_deckenlicht.warm # Schalten des Lichts
as_suspend_watch_IgnoreKnxReply_warm = !essen.l45d_deckenlicht.warm:KNX;1.1.3 # Rückmeldung vom Schaltaktor ignorieren
as_suspend_watch_IgnoreKnxReply_kalt = !essen.l45d_deckenlicht.kalt:KNX;1.1.3
as_suspend_watch_dimmwert_warm = essen.l45d_deckenlicht.warm.dimmen:Visu # Direkte Werteingabe Dimmwert nur berücksichtigen, wenn sie über die Visu getätigt wird, KNX Status wird somit ignoriert
as_suspend_watch_dimmwert_kalt = essen.l45d_deckenlicht.kalt.dimmen:Visu
as_suspend_item = essen.l45d_deckenlicht.autostate_suspend
as_suspend_time = 60
Klar ist dann die Frage, was passiert, wenn man den Wert während einer Suspend-Phase ändert, aber das könnte man ja einfach ignorieren, da der Timer ja eh schon gesetzt ist..?[Test]
[[Rollo]]
[[[Sued]]]
...
[[[[Move]]]]
type = bool
visu_acl = rw
enforce_updates = True
knx_dpt = 1
knx_listen = 3/1/0
knx_send = 3/1/0
[[[[Stop]]]]
type = bool
visu_acl = rw
enforce_updates = True
value = 1
knx_dpt = 1
knx_listen = 3/1/2
knx_send = 3/1/2
[[[[Manuell]]]]
type = bool
name = Manuelle Bedienung
eval = not sh.Test.Rollo.Sued.Manuell()
eval_trigger = Test.Rollo.Sued.Move | Test.Rollo.Sued.Stop
...
[[[[AutoBlind]]]]
...
[[[[[Rules]]]]]
...
as_item_Manuell = Test.Rollo.Sued.Manuell
eval_trigger = Test.Rollo.Sued.Manuell
...
[[[[[[Suspend]]]]]]
type = foo
name = Manuell aus
[[[[[[[enter_Manuell]]]]]]]
as_agemax_Manuell = 1
[[[[[[[enter_Stay]]]]]]]
as_value_laststate = Test.Rollo.Sued.AutoBlind.Rules.Suspend
as_max_age = 1800
...
. Aber für andere ist das sicherlich eine Erleichterung.
). Ich bin ja in vielen Fällen mit Hilfsitems um Probleme "drumrum" gekommen, aber wenn ich es kompakter und übersichtlicher formulieren kann, dann bin ich immer dabei. Es ist schon so, dass ich mit autoblind derzeit fast alle meine Abläufe löse. Und viel wichtiger: Meist funktioniert das, was man als Regelwerk ausdrückt, auch auf Anhieb - wenn es Probleme gibt, liegen die im unerwarteten sh.py-Verhlaten (wie z.B. die Tatsache, dass enforce_updates keine Auswirkung auf age() etc. hat).as_suspend_watch_VisuOnly = Eg.Kueche.Jalousie.Tuer.AutoBlind.Position:Visu | Eg.Kueche.Jalousie.Tuer.AutoBlind.Lamellenposition:Visu
. Aber für andere ist das sicherlich eine Erleichterung.trigger_item trigger_caller trigger_source trigger_dest
item.suspend_time --> Suspend_Time des jeweiligen Items current.state_id --> Id des Zustands, in dem die Variable verwendet wird current.state_name --> Name des Zustands, in dem die Variable verwendet wird
eval:autoblind_eval.get_variable(varname)
get_item(subitem_id, parent_level)
get_item("anotheritem", 0)
get_item("anotheritem", 1)
get_item("anotheritem", 2)
is_changed_by(self, caller, source, changed_by)
not_changed_by(self, caller, source, changed_by)
eval = not sh.test.rollo.manuell() if sh.return_plugin("AutoBlind").not_changed_by(caller, source, ["Init:*", "KNX:1.1.1"]) else sh.test.rollo.manuell()

Das sieht alles sehr mächtig aus.. Was mir noch nicht ganz klar ist.. warum lässt sich die suspend_time nicht durch ein item:autoblind.settings.suspendXYZ setzen? das mit dem get_variable scheint mir etwas inkonsequent..?
[autoblind]
[[default]]
[[[light_suspend]]]
type = foo
name = Ausgesetzt
[[[[enter_Manuell]]]]
as_agemax_Manuell = 1
[[[[enter_Stay]]]]
as_value_laststate = eval:autoblind_eval.get_item('suspend', 0)
as_value_Manuell = 1
as_max_age = 1800 # Alternativ item:xyz
[kueche]
[['l47_occhio']]
type = foo
as_plugin = active
as_lock_item = kueche.l47_occhio.autostate_lock
as_laststate_item_id = kueche.l47_occhio.autostate_id
as_laststate_item_name = kueche.l47_occhio.autostate_name
as_item_Manuell = kueche.l47_occhio.SA.Manuell
eval_trigger = kueche.l47_occhio.SA.Manuell | autoblind.lichttrigger | autoblind.settings.*.*.l47_occhio | kueche.l47_occhio.SA.BWM | kueche.l47_occhio.SA.Taster
#as_suspend_watch = kueche.l47_occhio.SA
#as_suspend_watch_IgnoreKnxReply = !kueche.l47_occhio.SA:KNX;1.1.1
as_suspend_item = kueche.l47_occhio.autostate_suspend # obsolet?
as_suspend_time = 3600
[[[night]]]
type = foo
as_use = autoblind.default.light_night
[[[suspend]]]
type = foo
as_use = autoblind.default.light_suspend
[[[kinomodus]]]
type = foo
as_use = autoblind.default.light_heimkino
....
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