TorstenE hat geschrieben: ↑6. Sep 2023 13:19
was meinst Du mit "... außerdem muss der Befehl ON/OFF von diesem Channel korrekt ausgeführt werden... " genau ?
Damit meine ich: Ein Switch Channel muss auf ON und OFF reagieren und diese Kommandos passend weiterleiten.
Es kann z.B. sein, dass Dein Gerät die Befehle true/false braucht.
Dann musst Du trotzdem (zwingend) einen Switch Channel verwenden und für onValue und offValue die passenden Werte eintragen. Du darfst keinesfalls einen String Channel nutzen.
Wenn sich das MQTT Gerät mit dem Switch Channel steuern lässt, dann reicht es, ein Switch Item zu verlinken und einen switch-control Channel auf knx-Seite mit dem selben Item zu verlinken (habe ich bei mir seit Jahren in Betrieb, unter anderem auch mit mqtt und knx)
Das knx Binding ist das einzige Binding, welches extra Control-Channel bietet (jedenfalls kenne ich kein anderes Binding, bei dem das so gelöst ist), es ist aber auch das erste gewesen, was diese Funktionalität geboten hat.
Man könnte auch versuchen, mit dem follow-Profile auf mqtt-Seite zu arbeiten, das ist aber aus verschiedenen Gründen suboptimal.
*-control Channel werden von openHAB als Befehl empfangen, umgekehrt wird der Status an den Channel gesendet, das gilt auch für postUpdate(), ist also ein sehr vom openHAB Standard abweichendes Verhalten, es ist aber sinnvoll.
Grundsätzlich ist openHAB im Zusammenspiel mit Bindings eine Art Fernbedienung, Alles was zum Binding gesendet wird, ist ein Befehl, alles was empfangen wird, ist ein Status. Mit dem *-control Channel wird dieses Verhalten umgekehrt, was empfangen wird ist ein Befehl, was gesendet wird, ist ein Status. Damit kann dann ein knx Schalter ohne weitere Umwege die Hardware eines anderen Bindings steuern, also genau, was Du erreichen willst.
Mit dem follow-Profile funktioniert es anders, das Item, welches auf follow steht, betrachtet ankommende Status Updates als Befehl und leitet sie entsprechend weiter, das ankommende Event ist aber lediglich ein Update, kein command.
Wenn Du im mqtt Channel
is command = true setzt, dann wird ein eingehender Status als Befehl weitergegeben, also genau das gleiche, was auch mit den *-control Channels bei knx erreicht wird. Nur ist das genau das Gegenteil von dem, was Du erreichen willst. isCommand wäre interessant, wenn Du einen Schalter an einem mqtt Client anschließt und diesen Schalter verwenden willst, um ein anderes Gerät ein- und auszuschalten.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet