KNX Wert in Mosquitto per MQTT schreiben und lesen
Verfasst: 15. Mai 2020 18:30
Hallo,
ich bitte um Nachsicht, falls ich hier im Forum keinen passenden Beitrag zu meiner Frage gefunden habe. Die Suche nach dem Stichwort "MQTT" meldet leider immer, dass das Suchwort "mqtt" aufgrund zu hohem Vorkommen nicht beachtet wurde. Zudem suche ich seit rund zwei Wochen bei Google und YouTube nach Themen zur Einbindung von MQTT in meine openHAB-Installation. Natürlich habe ich einiges gefunden, viele Beiträge nutzen aber z.B. immer die Paper UI. Mein aktueller Stand ist jedoch, dass ich als Bindings KNX, Hue und AVM FRITZ!Box Geräte eingebunden und alle .things, sowie .items Dateien per Hand geschrieben habe. Die zugehörige Sitemap auch. Soweit kann ich die Geräte aktuell manuell über die Basic UI steuern. Parallel schaue ich mir aber auch ioBroker an und finde dort Blockly super. Daher war eine Idee, Werte aus openHAB über MQTT an ioBroker durchzureichen. Der ioBroker openHAB-Adapter ist nämlich seit längerem nicht weiterentwickelt worden. Die verschiedenen Regel-Engines von openHAB überfordern mich zur Zeit etwas.
Als Broker habe ich in meinen Ubuntu Server Mosquitto installiert und das MQTT Binding v2.5.4. Meine zugehörige "mqtt.things"-Datei sieht zur Zeit so aus:
Die Idee war, den Status im Topic ".../state" auslesen zu können und per ".../command" die Lampe dann zu schalten.
Dem zugehörigen item in meiner "knx.items" Datei habe ich dann im { channel= }-Bereich noch folgendes zum KNX-channel hinzugefügt:
Den Mosquitto-Broker habe ich dann per MQTT-Explorer beobachtet. Zuerst passierte gar nichts. In der Paper UI hatte ich dann neben dem Switch für den KNX-Aktor noch einen zweiten Switch für das MQTT-Objekt. Wenn ich jetzt die Leuchte am Schalter (an der Wand) geschaltet habe, sind beide Schalter in der Paper UI umgesprungen und im Broker wurde das ".../command"-Objekt mit einer 1 angelegt. Wenn ich in der Paper UI oder am richtigen Schalter das Licht ausgeschaltet habe, wurde dieser Wert auf 0 gesetzt. Einen Status-Wert habe ich aber leider nicht erhalten und der Versuch mit dem MQTT-Explorer in das Command-Topic mit einer "1" oder "0" das Licht zu schalten hat auch nicht funktioniert.
Es wäre toll, wenn mir hier jemand helfen könnte. Vielleicht bin ich ja auch auf dem Holzweg. Leider findet man durch die MQTT-Bindungs 1.x und 2.x viele veraltete Tutorials und im Vergleich zu anderen Bindings in der openHAB-Dokumentation wenig bis keine Beispiele für die Anwendung.
ich bitte um Nachsicht, falls ich hier im Forum keinen passenden Beitrag zu meiner Frage gefunden habe. Die Suche nach dem Stichwort "MQTT" meldet leider immer, dass das Suchwort "mqtt" aufgrund zu hohem Vorkommen nicht beachtet wurde. Zudem suche ich seit rund zwei Wochen bei Google und YouTube nach Themen zur Einbindung von MQTT in meine openHAB-Installation. Natürlich habe ich einiges gefunden, viele Beiträge nutzen aber z.B. immer die Paper UI. Mein aktueller Stand ist jedoch, dass ich als Bindings KNX, Hue und AVM FRITZ!Box Geräte eingebunden und alle .things, sowie .items Dateien per Hand geschrieben habe. Die zugehörige Sitemap auch. Soweit kann ich die Geräte aktuell manuell über die Basic UI steuern. Parallel schaue ich mir aber auch ioBroker an und finde dort Blockly super. Daher war eine Idee, Werte aus openHAB über MQTT an ioBroker durchzureichen. Der ioBroker openHAB-Adapter ist nämlich seit längerem nicht weiterentwickelt worden. Die verschiedenen Regel-Engines von openHAB überfordern mich zur Zeit etwas.
Als Broker habe ich in meinen Ubuntu Server Mosquitto installiert und das MQTT Binding v2.5.4. Meine zugehörige "mqtt.things"-Datei sieht zur Zeit so aus:
Code: Alles auswählen
Bridge mqtt:broker:mosquitto "Mosquitto MQTT Broker" @ "openHAB" [
host="ip-Adresse",
port=1883,
secure=false,
qos=0,
clientID="openHAB"
] {
Thing topic bj_reg_1_1_2_dg "(MQTT KNX 1.1.2)" @ "Treppenhaus Büro" {
Type switch : mqtt_d1_a2_k1 "Deckenlampen 1 Büro" [ stateTopic="openHAB/KNX/1/4/16/state", commandTopic="openHAB/KNX/1/4/16/command" ]
}
}
Dem zugehörigen item in meiner "knx.items" Datei habe ich dann im { channel= }-Bereich noch folgendes zum KNX-channel hinzugefügt:
Code: Alles auswählen
[ channel="knx:brigde:..., channel="mqtt:topic:mosquitto:bj_reg_1_1_2_dg:mqtt_d1_a2_k1", ...]
Es wäre toll, wenn mir hier jemand helfen könnte. Vielleicht bin ich ja auch auf dem Holzweg. Leider findet man durch die MQTT-Bindungs 1.x und 2.x viele veraltete Tutorials und im Vergleich zu anderen Bindings in der openHAB-Dokumentation wenig bis keine Beispiele für die Anwendung.