Loxone selbst bietet schon ein großes Potential. In Verbindung mit einem Raspberry Pi, MQTT & FHEM ist diese Kombination in meinen Augen derzeit unschlagbar. Wie Loxone in dieser Verbindung mittels Loxberry aufgebohrt bzw. erweitert werden kann, erfährst du in diesem Blogpost.
Aufbohren, aber wie?
Bereits in einem früheren Blogpost bin ich auf Loxberry eingegangen. Doch seit dieser Zeit hat sich viel getan!
Speziell für Loxone Nutzer wurde Loxberry entwickelt. Diese Software ist kostenfrei verfügbar, wird auf einen Raspberry Pi aufgespielt und erweitert Loxone ungemein. Es gibt jede Menge Plugins, mit deren Hilfe immer mehr Geräte direkt in Loxone integriert werden können. Somit ist Loxberry für Loxone Nutzer schon fast Pflicht.
Lange habe ich mich davor gescheut das MQTT Protokoll selbst umzusetzen oder besser gesagt zu verwenden. Doch nachdem es auch für den Loxberry ein MQTT Plugin gibt, habe ich mich nochmals daran gewagt – mit Erfolg. Wenn dir MQTT noch gar nichts sagt, lies es dir am besten selbst einmal durch. Das Protokoll ist schon ca. 30 Jahre alt und wurde für den Smart Home Bereich nun aber „neu entdeckt“.
Seit 2013 wird MQTT über die Organization for the Advancement of Structured Information Standards (OASIS) als Protokoll des Internet der Dinge standardisiert.
https://de.wikipedia.org
Selbst das von mir so geliebte System „FHEM“ wird hier direkt als Plugin in Loxberry unterstützt und ist damit ebenfalls direkt in Loxone verwendbar. FHEM setze ich schon seit vielen Jahren aufgrund der extrem hohen Stabilität, Verarbeitungsgeschwindigkeit und der Menge an integrierbaren Systemen ein. Und in Verbindung mit MQTT können die Werte dann direkt von FHEM an Loxone übergeben und ausgewertet werden, sodass die gesamte Logik bei Loxone verbleiben kann.
Notwendige Hardware
Damit das System schnell und flüssig läuft, habe ich mich für den aktuellen Raspberry Pi 4 entschieden. Definitiv sinnvoll ist ein wärmeableitendes Gehäuse, da er schon deutlich wärmer wird, als die 3er Version. Ohne Lüfter wird er ansonsten schnell über 60 Grad heiß!
Das unten verlinkte Gehäuse hat mir sofort mehr als 10 Grad eingespart und sieht zudem in der schwarzen Aluminiumoptik schick aus. Ebenfalls wird ein originales USB C Netzteil empfohlen, da andere wohl zu Problemen führen können.
Letzte Aktualisierung am 7.12.2023 um 03:53 Uhr | Werbung | Bilder: Amazon Product Advertising API
Mehr wird auch schon gar nicht benötigt, sofern man den Raspberry Pi per WLAN anbinden möchte.
Loxberry Installation
Die Installation selbst ist auch für Anfänger leicht umzusetzen. Es wird vorab die aktuelle Image-Datei von Loxberry benötigt. Diese *.img-Datei wird dann z.B. mit dem Programm balenaEtcher auf eine MicroSD Karte aufgespielt.
Wenn sich der Raspberry Pi vor der eigentlich Inbetriebnahme mit deinem WLAN verbinden soll, muss nach dem Flashen in dem Boot-Verzeichnis der MicroSD Karte eine Datei mit dem Namen network.txt mit folgenden Inhalt angelegt werden:
auto lo iface lo inet loopback allow-hotplug wlan0 iface wlan0 inet dhcp wpa-ssid WLAN-NAME wpa-psk WLAN-PASSWORD
WLAN-Name und WLAN-PASSWORT muss hier natürlich mit den eigenen Daten ersetzt werden.
Hier auch als Download-Datei:
Loxberry network.txt (540 Downloads)
Weitere Details zur Installation findest du hier: https://www.loxwiki.eu/display/LOXBERRY/Installation+von+LoxBerry
Hinweis: Nach der Installation ist es sehr empfehlenswert die IP Adresse des Loxberry fest im Router einzustellen, damit diese nicht mehr wechseln kann! Wie das funktioniert, kannst du hier nachlesen.
Die Plugins installieren
Damit FHEM gleich mittels MQTT Protokoll an Loxone angebunden werden kann, werden zwei Plugins für den Loxberry benötigt. Dies ist natürlich FHEM und das Plugin MQTT. Diese werden über das Webinterface von Loxberry installiert. Dazu wird die jeweils heruntergeladene zip-Datei einfach ausgewählt und den Rest erledigt Loxberry selbst.

Im MQTT Plugin selbst muss nicht sehr viel eingestellt werden. Lediglich die Subscriptions werden um die Zeile fhem/# erweitert. Damit erhält Loxberry (als MQTT Broker) alle eingehenden Statusänderungen von FHEM.

FHEM für MQTT vorbereiten
In FHEM ist etwas mehr Vorarbeit notwendig, damit die Verbindung später perfekt läuft. Aber keine Angst, es folgt die Schritt-für-Schritt. FHEM wird dazu nun über den Menüpunkt Plugins aus Loxberry heraus gestartet. Es sollte die WEB-Instanz aufgerufen werden, dann sollte das Webinterface erscheinen (s.u.).
Alle nachfolgenden Befehle werden direkt in die FHEM Commandozeile eingegeben.

define lb_mosquitto MQTT loxberry:1883 loxberry DeinMQTTPasswort define mqttGeneric MQTT_GENERIC_BRIDGE attr mqttGeneric IODev lb_mosquitto attr mqttGeneric globalDefaults sub:qos=2 pub:qos=0 retain=1 attr mqttGeneric globalPublish *:topic={"fhem/$device/$reading"}
Alle Befehle nacheinander, Zeile für Zeile eingeben! Danach mit einem Klick auf „Save config“ speichern.
Das MQTT Passwort findest du im MQTT Plugin unter Settings.

Damit werden schon mal alle FHEM Events per MQTT an das Topic „fhem/$device/$reading“ gesendet.
Tipp: Sollen nicht alle Geräte senden, kannst du die gewünschten Geräte z.B. in den Raum MQTT packen und filtern, indem du die folgende Zeile in FHEM eingibst.
defmod mqttGeneric MQTT_GENERIC_BRIDGE mqtt room=MQTT
Da aber nicht nur Events zu Loxone gesendet werden, sondern es auch ermöglicht werden soll, die in FHEM angelegten Geräte direkt über Loxone zu steuern, sind ein paar weitere Zeilen Code notwendig. An dieser Stelle ein Danke an Matthias Kleine, der den Code veröffentlich hat.
Auch hier werden die Befehle wieder Zeile für Zeile in die Commandzeile eingegeben!
define SYS_MQTT MQTT_DEVICE attr SYS_MQTT alias MQTT-Command attr SYS_MQTT userattr subscribeReading_cmnd attr SYS_MQTT subscribeReading_cmnd /fhem/cmnd
define n_SYS_MQTT_cmnd notify SYS_MQTT:cmnd:.* {}
In dieses notify wird der folgende Code eingefügt.
SYS_MQTT:cmnd:.* { if ($EVENT =~ qr/.*?: (.*)/p) { my $cmnd = $1; Log3($NAME, 5, "executed mqtt command: " . $cmnd); fhem($cmnd); } }
Das sieht dann wie folgt aus:

Damit ist die FHEM und MQTT Plugin Konfiguration abgeschlossen. Was nun noch fehlt sind die Einstellungen direkt in Loxone, um die Daten ein- und auslesen zu können.
Loxone für MQTT und FHEM konfigurieren
In der Loxone Config sind nun auch einige Anpassungen notwendig. Ich unterscheide hier zwischen Ein- und Ausgabe von den MQTT Daten.
MQTT Daten einlesen
Damit die Statuswerte von FHEM in Loxone ausgewertet werden können, ist nicht viel notwendig. Es wird lediglich ein virtueller Eingang erstellt, mit dem Befehl den du im Loxberry Plugin MQTT unter Incoming Overview sehen kannst. Dazu ist es natürlich notwendig ein Gerät in FHEM angelegt zu haben, ansonsten ist hier nichts zu sehen.

Das wäre ein Befehl, den man in Loxone als virtuellen Eingang anlegen würde, um die Werte abzuholen.
In Loxone wird dann ein Virtueller Eingang mit genau diesem Befehl erstellt. Hier könnte nun auch der oben genannte Wert fhem_HUEDevice10_state stehen.

Wichtig ist, dass dieser Eigang nicht als Digitaleingang verwendet werden darf! Also den Haken entfernen.

Damit werden die Änderungen an den Readings direkt an Loxone gesendet. Das ist grundsätzlich mit allen Readings möglich, die FHEM unterstützt. Wer sich mit FHEM noch gar nicht auskennt, dem lege ich diese Wiki-Eintrag sehr ans Herzen: https://wiki.fhem.de/wiki/Erste_Schritte_in_FHEM
FHEM Geräte per MQTT über Loxone steuern
Damit nicht nur Werte eingelesen werden können, sondern auch die in FHEM angelegten Geräte gesteuert werden können, sind nochmals kleine Anpassungen in Loxone notwendig.
Es wird ein virtueller Ausgang angelegt, mit dem Namen z.B. MQTT-Loxberry-Gateway und der Adresse:
/dev/udp/10.0.0.60/11884
Hier wird die IP 10.0.0.60 mit der des eigenen Loxberry ersetzt.
Danach wird ein „virtueller Ausgang Befehl“ mit dem gewünschten FHEM Befehl erstellt. Hier kann jeder Befehl stehen, mit dem FHEM auch selbst steuerbar ist bzw. dessen Geräte.

Damit besteht ab sofort die Möglichkeit FHEM über MQTT Befehle zu steuern, ohne bei jedem FHEM Gerät ein subscribe auf ein bestimmtes Topic zu erstellen. Das erspart viel Arbeit und Zeit.
Viele weitere Infos sind auch im Loxwiki zu finden.
Schöner Artikel!
Ich sende meine Befehle über einen notify aus FHEM über UDP direkt an Loxone. Ich verstehe nicht so ganz wofür ich MQTT brauche bzw. was der Vorteil sein könnte? Kann mich da jemand aufklären?
Hallo Sab,
mit MQTT hast du die Möglichkeit, alle Geräte an eine Zentrale senden zu lassen. Die kann dann eben entscheiden, wie mit den empfangenen Daten umgegangen wird bzw. welche Daten evtl. sogar an andere Geräte weitergeleitet werden.
Ich habe mich selbst lange um MQTT gesträubt, aber als es dann lief, fand ich es echt praktisch. Viele Geräte können auch von Haus aus das MQTT Protokoll, was eine „Vereinung“ unterschiedlicher Geräte deutlich erleichtern kann.
Trotzdem spricht nichts gegen die Umsetzung über UDP, das ist (würde ich sagen) Geschmackssache.
VG
Michael
Hi,
Ich stehe beim Schritt: „In dieses notify wird der folgende Code eingefügt.“ an:
Ich kann wählen zwischen:
Change the condition:
Change the executed command:
modify: n_SYS_MQTT_cmnd SYS_MQTT:cmnd:.* set „logfile“ „““und hier kann ich etwas reinschreiben“““
Ich habe soeben versucht diese zusätzlichen 7 Zeilen Code da einfach einzufügen und auf „modify“ zu drücken. Aber das scheint nicht zu funktionieren.
Bräuchte hier ein wenig mehr Hilfe…
Danke
Hallo Michael,
ich bin deiner Empfehlung gefolgt und versuche jetzt, das Modul MQTT für FHEM zu installieren.
Da ich Probleme habe mit der Installation der Perl-Module Net::MQTT::Simple und Net::MQTT::Constants frage ich mich jetzt:
Warum verwendest du nicht das FHEM Modul MQTT2_CLIENT?
Gruß
Thomas
Hallo Thomas,
mir ist nicht bekannt, was genau der Unterschied zu den Modulen ist.
Ich benutzte nach wie vor das Modul und es funktioniert problemlos.
Viele Grüße
Michael
Hallo Michael,
ich habe im FHEM Forum eine Diskussion und wurde von dem Entwickler div. MQTT-Module gebeten, deinen Blog-Beitrag dahingehend zu prüfen, dass er die aktuelle Entwicklung berücksichtigt.
Weitere Details findest du hier:
https://forum.fhem.de/index.php/topic,117987.msg1124520.html#msg1124520
Gruß
Thomas
Hallo Thomas,
ich habe den Thread mal überflogen, verstehe jedoch nicht genau wo das Problem liegt? Gibt es ein aktuelleres MQTT Modul?
Vielleicht kannst du kurz anmerken, wo hier ggf. ein „Fehler“ liegt.
Viele Grüße
Michael
Hallo,
das Modul MQTT ist veraltet und soll nicht mehr verwendet werden.
Desweiteren soll man kritisch hinterfragen, welche Topics von FHEM gesendet werden; die Strategie „so wenig wie möglich, so viel wie nötig“ erscheint ratsam.
Gruß
Thomas
Verstehe ich, gibt es denn eine Alternative die genau so gut funktioniert?
Wenn man es nicht mehr verwenden soll, sollte es ggf. auch einfach raus genommen werden.
Viele Grüße
Michael
MQTT2_CLIENT
MQTT_GENERIC_BRIDGE