Hi zusammen, da OpenHAB 3 ja nun erschienen ist, ich nur eine kleine Handvoll Tinkerforge-Items nutze und ich nicht länger auf das Update warten will, habe ich nach einer Alternative zum Binding gesucht und in Form von tinkerforge_mqtt gefunden. Damit lassen sich Tinkerforge Daemons mit einem MQTT-Broker verbinden und der wiederum lässt sich via OpenHABs MQTT-Binding nutzen. Es ist deutlich unkomfortabler und komplizierter als ein richtiges Binding, aber ist vielleicht eine Hilfe für alle, die wie ich erstmal eine Lösung bauchen.
Kurzanleitung (Funktionierendes MQTT in OH vorausgesetzt):
https://www.tinkerforge.com/de/doc/Software/API_Bindings_MQTT.html installieren, `/etc/tinkerforge_mqtt.cmdline` anpassen und mit `tinkerforge_mqtt --cmdline-file /etc/tinkerforge_mqtt.cmdline` starten. Nötige subscriptions kann man sich zum Beispiel in eine init file `/etc/tinkerforge_mqtt.init` im jSON-Format fest eintragen (und in der ...cmdline hinterlegen). Meine sieht für ein einzelnes IO16 (nur Port A) so aus:
{
"tinkerforge/register/io16_bricklet/xxx/interrupt": {"register": true},
"tinkerforge/request/io16_bricklet/xxx/get_port": {"port": "a"}
}
xxx entspricht der Device ID wie in OpenHAB (3 Buchstaben). Die zweite Zeile dient nur dazu, den aktuellen Port state beim Starten initial zu übermitteln. Der kommt auch leider nur als Bitmask (z. B. 254 / 255 nur bei einem pin 0 aktiv), also muss man mit einem Number Input und entsprechenden Rules in OH arbeiten, der dann andere Items bedient. Dort legt man sich letztendlich nur ein MQTT-Thing an, was tinkerforge/callback/io16_bricklet/xxx/interrupt als State Topic hat und `JSONPATH:$.value_mask` als value transformation. Zum Schreiben müssen noch MQTT Command Topic und Outgoing Value Format entsprechend definiert werden.
Sorry, viel Text und etwas Off Topic, aber ich hoffe, es hilft jemandem.