Zitat von jonah64
Beitrag anzeigen
Grüße
offline
sh.autoblind_plugin_functions.manual_item_update_eval('<item.id>', caller, source)
not sh.<item.id>()
Ist es möglich, bei einzelnen Bedingungen auch eine ODER Abfrage zu machen? Mit eval wird das vermutlich nicht gehen oder doch? [[[[[['enter']]]]]]
type = foo
as_value_nachtlock = False
[COLOR=#FF0000]as_value_modus = 1 | 4 | 6 | 7[/COLOR]
as_value_a_bett = True
as_value_b_bett = True
as_min_time = item:licht.modus.automatik.settings.night.min_time_off
as_max_time = item:licht.modus.automatik.settings.night.max_time_off
as_negate_time = True
as_agemin_a_bett = eval:autoblind_eval.get_relative_itemvalue('..settings.night.delay_on') * 60
as_agemin_b_bett = eval:autoblind_eval.get_relative_itemvalue('..settings.night.delay_on') * 60
[['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
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
[[[[['enter']]]]]
type = foo
as_value_urlaub = 1
[[[[['enter_float']]]]]
type = foo
as_value_urlaub = 1.0
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
[B]as_[/B]suspend_time = <Sekunden>
suspend_time_default = <Sekunden>
[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
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!
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.

Einen Kommentar schreiben: