ich habe ein Ereignis, welches auf die „Wert“-Variable einer KNX Instanz reagiert. Es gibt nun eine Situation, in der möchte ich nicht, dass das Ereignis ausgelöst wird. Also deaktiviere ich das Ereignis, schalte die KNX Instanz und aktiviere das Ereignis wieder.
Frage: Theoretisch würde ich davon ausgehen, dass IP-Symcon die Befehle im Skript nacheinander abarbeitet, also erst wird das Ereignis deaktiviert, dann wird die KNX Instanz geschaltet und dann wird das Ereignis wieder aktiviert. Es ist aber so, dass das Skript ausgeführt wird, was ja eigentlich nicht sein dürfte.
„Status emulieren“ in der KNX Instanz ist aktiviert, das heißt das die ggf. um wenige ms verzögerte Antwort des Aktors dann das wieder aktive Ereignis auslöst, würde ich ausschließen.
Hat hier jemand Ideen, was das sein könnte? Oder habe ich einen Denkfehler?
Hast du geprüft ob die Variable sich wirklich ändert nach dem KNX_WriteDPT1 und dem Empfang vom Bus? Nicht das sie mal kurz hin/herspringt.
Unabhängig von KNX hatte ich das auch schon.
Da hilft nur eine Pause nach dem IPS_SetEventActive.
Musste ich beim Etagenlicht auch vor dem aktiveren der Ereignisse einbauen.
Michael
Die Abarbeitung der Ereignisse ist asynchron zu deinem Skript. D.h. dein Vorgehen klappt so leider nicht. Wenn du ein sleep einbauest vor dem Aktivieren sollte es gehen - ist aber keine vollständig korrekte Lösung da bei Latenzen im Kernel > Sleepzeit das Problem wieder da ist.
Ich würde eher ein Flag setzen welches im Ereignis wieder deaktiviert wird und dann die Ausführung dadurch einmalig überspringt.