Danke Robert - das muss ich erstmal verdauen
Nach meinem Geschmack ist mit dem vorgeschlagenen Lösungsweg für den normalen Anwender etwas zu viel Hirnschmalz hineinzustecken. Und ich bin mir nicht sicher, ob damit in allen Fällen das gewünschte Ergebnis erreichbar ist. Die Kommentare in dem verlinkten Beitrag gehen ja auch in diese Richtung.
In jedem Fall wäre dieser Weg deutlich komplizierter als der WG-Logikprozessor, wo ich mit "return undef" einfach das Senden bei bestimmten Ergebnissen unterbinden konnte, ohne die Ausführung der Logik an sich zu verhindern.
Falls es ihn noch nicht gibt stelle ich hiermit einen Feature-Request für einen "Ziel-Filter". Also das Unterbinden von Logik-Ergebnissen, d.h. Senden an das Ziel-Objekt bei bestimmten Ergebnissen der Logik unterbinden.
Ich versuche es trotzdem mal so umzusetzen. Dazu beschreibe ich auch mal den Anwendungsfall (ich habe darüber hinaus weitere Fälle, wo nur bestimmte Ergebnisse gesendet werden dürfen).
Logik (AND): Das Garagentor soll sich schließen, wenn es sich in Lüftungsposition befindet und (im Sommer) die Außentemperatur über die Garagentemperatur steigt.
Eingänge (Bedingungen):
[*] I1: Garagentor gerade in der Lüftungsposition ?
[*] I2: Liegt die Außentemperatur über der Temperatur in der Garage ? (Input ist ein Ergebnis einer Schwellwert-Logik in separatem Baustein)
Wenn beides "true" ist, soll auch ein "true" gesendet werden - an die KNX-GA, die das Garagentor schließt.
Ist das Ergebnis insgesamt "false", soll gar nichts gesendet werden. Denn die "0" auf die Ziel-GA würde das Garagentor komplett öffnen. Das würde unmittelbar nach dem Schließen passieren, da sich das Garagentor ja dann nicht mehr in der Lüftungsposition befindet (I1 = false).
Ohne es schon wirklich zu verstehen, habe ich den Beispielfall auf meinen Anwendungsfall angepasst:
Erstes Problem: Im Beispielfall aus der KB soll nur "false" gesendet werden. Da bei mir genau umgekehrt nur "true" gesendet werden soll, habe ich den Input-Parameter auf "true" gesetzt. Trotzdem bekomme ich ein "false" als Ergebnis, was ich ja unterbinden möchte.
(Der zweite Inhibit-Eingang ist hier bewusst nicht invertiert, weil er eigentlich - ohne diese Sperr-Geschichte - invertiert werden muss.)
Gruß
Matthias