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.
Laut Dokumentation kann ich im Itemtree auch auf Elemente zugreifen, indem ich das "*" verwende. Das mache ich auch, bekomme aber eine Fehlermeldung im Log, dass die beidem Items nicht gefunden wurden. Was mache ich falsch?
Code:
...
on_update:
- EG.*.Heizung.modus = 2 if value else 1
- OG.*.Heizung.modus = 2 if value else 1
2019-07-16 11:43:16 ERROR lib.item - : 'on_update' has not found dest_item EG.*.Heizung.modus = 2 if value else 1, result=2
2019-07-16 11:43:16 ERROR lib.item - : 'on_update' has not found dest_item OG.*.Heizung.modus = 2 if value else 1, result=2
2019-07-16 11:43:16 ERROR lib.item - : 'on_update' has not found dest_item EG.*.Heizung.modus = 2 if value else 1, result=2
2019-07-16 11:43:16 ERROR lib.item - : 'on_update' has not found dest_item OG.*.Heizung.modus = 2 if value else 1, result=2
2019-07-16 11:43:16 ERROR lib.item - : 'on_update' has not found dest_item EG.*.Heizung.modus = 2 if value else 1, result=2
2019-07-16 11:43:16 ERROR lib.item - : 'on_update' has not found dest_item OG.*.Heizung.modus = 2 if value else 1, result=2
2019-07-16 11:43:19 ERROR lib.item - : 'on_update' has not found dest_item EG.*.Heizung.modus = 2 if value else 1, result=2
2019-07-16 11:43:19 ERROR lib.item - : 'on_update' has not found dest_item OG.*.Heizung.modus = 2 if value else 1, result=2
2019-07-16 11:43:19 ERROR lib.item - : 'on_update' has not found dest_item EG.*.Heizung.modus = 2 if value else 1, result=2
2019-07-16 11:43:19 ERROR lib.item - : 'on_update' has not found dest_item OG.*.Heizung.modus = 2 if value else 1, result=2
Hier die gesamte Datei mit dem Items:
Code:
EG:
Diele:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/0
visu_acl: rw
sqlite: yes
cache: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/0
visu_acl: rw
sqlite: yes
cache: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/0
knx_listen: 3/2/0
knx_init: 3/2/0
visu_acl: rw
cache: yes
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/0
visu_acl: rw
cache: yes
modus:
type: num
knx_dpt: 20
knx_send: 3/4/0
knx_cache: 3/4/0
visu_acl: rw
cache: yes
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: ..stellwert
HWR:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/1
visu_acl: rw
sqlite: yes
soll:
type: num
sollwertverschiebung:
type: num
stellwert:
type: num
modus:
type: num
heizen:
type: bool
initial_value: False
WC:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/2
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/2
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/2
knx_listen: 3/2/2
knx_init: 3/2/2
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/2
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/2
knx_cache: 3/4/2
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: EG.WC.Heizung.stellwert
Buero:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/3
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/3
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/3
knx_listen: 3/2/3
knx_init: 3/2/3
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/3
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/3
knx_cache: 3/4/3
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: EG.Buero.Heizung.stellwert
Wohnen:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/4
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/4
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/4
knx_listen: 3/2/4
knx_init: 3/2/4
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/4
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/4
knx_cache: 3/4/4
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: EG.Wohnen.Heizung.stellwert
Essen:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/5
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/5
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/5
knx_listen: 3/2/5
knx_init: 3/2/5
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/5
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/5
knx_cache: 3/4/5
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: EG.Essen.Heizung.stellwert
Kueche:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/6
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/6
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/6
knx_listen: 3/2/6
knx_init: 3/2/6
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/6
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/6
knx_cache: 3/4/6
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: EG.Kueche.Heizung.stellwert
OG:
Diele:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/7
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/7
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/7
knx_listen: 3/2/7
knx_init: 3/2/7
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/7
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/7
knx_cache: 3/4/7
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: OG.Diele.Heizung.stellwert
Bad:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/8
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/8
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/8
knx_listen: 3/2/8
knx_init: 3/2/8
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/8
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/8
knx_cache: 3/4/8
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: OG.Bad.Heizung.stellwert
Ankleide:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/9
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/9
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/9
knx_listen: 3/2/9
knx_init: 3/2/9
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/9
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/9
knx_cache: 3/4/9
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: OG.Ankleide.Heizung.stellwert
Schlafen:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/10
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/10
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/10
knx_listen: 3/2/10
knx_init: 3/2/10
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/10
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/10
knx_cache: 3/4/10
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: OG.Schlafen.Heizung.stellwert
Kind:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/11
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/11
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/11
knx_listen: 3/2/11
knx_init: 3/2/11
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/11
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/11
knx_cache: 3/4/11
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: OG.Kind.Heizung.stellwert
Gast:
Heizung:
ist:
type: num
knx_dpt: 9
knx_cache: 3/0/12
visu_acl: rw
sqlite: yes
soll:
type: num
knx_dpt: 9
knx_cache: 3/1/12
visu_acl: rw
sqlite: yes
sollwertverschiebung:
type: num
knx_dpt: 9
knx_send: 3/2/12
knx_listen: 3/2/12
knx_init: 3/2/12
visu_acl: rw
stellwert:
type: num
knx_dpt: 5.001
knx_cache: 3/3/12
visu_acl: rw
modus:
type: num
knx_dpt: 20
knx_send: 3/4/12
knx_cache: 3/4/12
visu_acl: rw
heizen:
type: bool
eval: False if value == 0 else True
eval_trigger: OG.Gast.Heizung.stellwert
Zentral:
Heizung:
Heizgrenze_7Uhr:
type: list
cache: yes
Heizgrenze_14Uhr:
type: list
cache: yes
Heizgrenze_22Uhr:
type: list
cache: yes
Heizgrenze_Temperatur:
type: num
cache: yes
Heizgrenze_Sommerbetrieb:
type: bool
initial_value: False
cache: yes
Heizung_Modus_Sommer:
type: bool
initial_value: False
knx_dpt: 1
knx_send: 3/4/13
knx_reply: 3/4/13
enforce_updates: yes
eval: True if sh.Zentral.Wetter.Wetterdienst.Temperatur.morgen_max() > 19 and sh.Zentral.Wetter.Wetterdienst.Temperatur.uebermorgen_max() > 19 or sh...Heizgrenze_Sommerbetrieb() else False
eval_trigger:
- Zentral.Wetter.Wetterdienst.Temperatur.morgen_max
- Zentral.Wetter.Wetterdienst.Temperatur.uebermorgen_max
- ..Heizgrenze_Sommerbetrieb
on_update:
- EG.*.Heizung.modus = 2 if value else 1
- OG.*.Heizung.modus = 2 if value else 1
Es gilt immer: Es funktioniert was dokumentiert ist und nicht: Es funktioniert alles, es sei denn es ist dokumentiert dass es nicht geht.
Zur künftigen Umsetzung: Vieleicht in fernerer Zukunft, da es kein häufig genutztes Szenario ist und in der Ausführung aufwendig. Anders als beim Reagieren auf einen Trigger, müsste hierzu der Item Tree ab dem ersten '*' komplett gescannt werden, um eventuell upzudatende Items zu finden.
Du bist auch seit es on_update und on_change gibt, der auf diese Weise mehrere Items updaten will.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Es gilt immer: Es funktioniert was dokumentiert ist und nicht: Es funktioniert alles, es sei denn es ist dokumentiert dass es nicht geht.
Ich verstehe, was du sagst. Für mich geht das aber aus der Dokumentation so nicht hervor. Da steht zumindest - für mein Ermessen - auch nicht, wofür das überhaupt genau genutzt werden kann. Aber ist ja jetzt auch egal.
Ich würde hier an der Stelle einfach eine weitere hörende Gruppenadresse für die Rolladen vergeben. Du erzeugst so einfach unnötigen KNX Telegrammballast ...
Ok, wenn das (bei großen Item Trees) nicht zuviel Resourcen/Rechenzeit frisst, schau ich mir das im cli mal an und schaue ob man das in lib.item übernehmen kann.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Ich würde hier an der Stelle einfach eine weitere hörende Gruppenadresse für die Rolladen vergeben. Du erzeugst so einfach unnötigen KNX Telegrammballast ...
Manchmal kommt man so simple Ideen nicht. Danke, habe ich getan.
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