Metainformationen zur Seite

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
plugins:mqtt_gateway:start [2022/09/11 17:25] Michael Schlenstedtplugins:mqtt_gateway:start [2023/04/15 08:24] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden Michael Schlenstedt
Zeile 1: Zeile 1:
-====== MQTT Gateway  ====== +====== MQTT Gateway ======
  
 ++++ Version History... | ++++ Version History... |
Zeile 81: Zeile 80:
   * Fix: Evt. falsche Auswertung der Checkboxen im UI (#5)   * Fix: Evt. falsche Auswertung der Checkboxen im UI (#5)
   * Erweitert: JSON Expansion: Vollständig generische Expandierung ohne Einschränkung auf die Hierarchie   * Erweitert: JSON Expansion: Vollständig generische Expandierung ohne Einschränkung auf die Hierarchie
-  * Erweitert: JSON Expansion für HTTP //und// UDP +  * Erweitert: JSON Expansion für HTTP //und// UDP
  
 **Version 0.5.1 PRE-RELEASE** **Version 0.5.1 PRE-RELEASE**
Zeile 100: Zeile 99:
   * Added: Subscription topics are now validated on-the-fly (errors are displayed on the left)   * Added: Subscription topics are now validated on-the-fly (errors are displayed on the left)
  
-****Version 0.8.0 PRE-RELEASE**\\ +Version 0.8.0 PRE-RELEASE\\ ** **
-**+
  
   * FIX: Password was re-created on every update   * FIX: Password was re-created on every update
Zeile 145: Zeile 143:
   * Gateway: Fixed wrong encoding in topic names (e.g. with umlauts)   * Gateway: Fixed wrong encoding in topic names (e.g. with umlauts)
   * Plugin developers:   * Plugin developers:
-    * Plugin's UDP interface now also supports json as data format (compared to the simple udp interface, this also supports blanks in topic names) → [[plugins:mqtt_gateway:mqtt_gateway_http_und_udp_interface|MQTT Gateway - HTTP- und UDP-Interface]] +    * Plugin's UDP interface now also supports json as data format (compared to the simple udp interface, this also supports blanks in topic names) → [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_gateway_http_und_udp_interface|MQTT Gateway - HTTP- und UDP-Interface]] 
-    * Your own plugin can inject subscriptions, conversions to the MQTT Gateway plugin during installation and runtime →  [[plugins:mqtt_gateway:mqtt_gateway_for_plugin_developers|MQTT Gateway for plugin developers]]. Your injections are applied from the Gateway on-the-fly without restart.+    * Your own plugin can inject subscriptions, conversions to the MQTT Gateway plugin during installation and runtime →  [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_gateway_for_plugin_developers|MQTT Gateway for plugin developers]]. Your injections are applied from the Gateway on-the-fly without restart.
  
 **Version 0.9.1 PRE-RELEASE** **Version 0.9.1 PRE-RELEASE**
  
-  * Generic POST-GET-JSON Receiver - Generic Callback URL for non-MQTT devices: [[plugins:mqtt_gateway:mqtt_gateway_faq:mqttgateway_generischer_post_get_json_empfanger|MQTT-Gateway - Generischer POST / GET / JSON Empfänger]]+  * Generic POST-GET-JSON Receiver - Generic Callback URL for non-MQTT devices: [[konfiguration:widget_help:widget_mqtt:mqtt_gateway_faq:mqttgateway_generischer_post_get_json_empfanger|MQTT-Gateway - Generischer POST / GET / JSON Empfänger]]
   * Fixed: JavaScript error   * Fixed: JavaScript error
  
Zeile 178: Zeile 176:
 **Version 1.1.1 RELEASE** **Version 1.1.1 RELEASE**
  
-  * Updated Net::MQTT::Simple library to 1.24, with LoxBerry/Mosquitto rapid publich patch (see https://github.com/Juerd/Net-MQTT-Simple/issues/11)+  * Updated Net::MQTT::Simple library to 1.24, with LoxBerry/Mosquitto rapid publich patch (see [[https://github.com/Juerd/Net-MQTT-Simple/issues/11]])
  
 **Version 1.1.2 PRE-RELEASE** **Version 1.1.2 PRE-RELEASE**
Zeile 196: Zeile 194:
 **Version 2.0.0 PRE-RELEASE** **Version 2.0.0 PRE-RELEASE**
  
-  * See the What's New document: [[plugins:mqtt_gateway:mqtt_gateway_faq:mqtt_gateway_20_what27s_new|MQTT Gateway 2.0 What's New]]+  * See the What's New document: [[konfiguration:widget_help:widget_mqtt:mqtt_gateway_faq:mqtt_gateway_20_what27s_new|MQTT Gateway 2.0 What's New]]
   * Known Issues: UTF-8 encoding issues may occour with receiver and transformer functionality. Will be fixed until the final release.   * Known Issues: UTF-8 encoding issues may occour with receiver and transformer functionality. Will be fixed until the final release.
  
Zeile 218: Zeile 216:
   * Copy button to copy VI names / command recognitions to clipboard   * Copy button to copy VI names / command recognitions to clipboard
   * UDP port is hidden if UDP transfer is disabled   * UDP port is hidden if UDP transfer is disabled
-  * New UDP Transformer: sort (https://www.loxwiki.eu/x/kYRWBQ) +  * New UDP Transformer: sort ([[https://www.loxwiki.eu/x/kYRWBQ]]
-  * Enhanced Shelly UDP Transformer: tunable white (https://www.loxwiki.eu/x/_QBABQ)+  * Enhanced Shelly UDP Transformer: tunable white ([[https://www.loxwiki.eu/x/_QBABQ]])
   * Transformer calls are logged   * Transformer calls are logged
   * % character is now replaced by _ (% is not allowed in Loxone)   * % character is now replaced by _ (% is not allowed in Loxone)
Zeile 228: Zeile 226:
   * Fixes issue "ERROR: Error on JSON expansion: Inappropriate ioctl for device" with newer json library   * Fixes issue "ERROR: Error on JSON expansion: Inappropriate ioctl for device" with newer json library
   * receive.php: Also use json from post variables   * receive.php: Also use json from post variables
 +
 +**Version 2.1.999 RELEASE**
 +
 +  * Last and final release for LoxBerry below V3.0
  
 ++++ ++++
  
 +===== Kompatibilität =====
 +
 +
 +<WRAP center info 90%>
 +DE: Das MQTT Gateway Plugin wird ab **LoxBerry 3.0** nicht mehr benötigt, weil die Funktionalität direkt in LoxBerry 3.0 integriert ist. Fixes und Erweiterungen werden in diesem Plugin nicht mehr gepflegt, sondern direkt in LoxBerry.
 +Wenn du dieses Plugin unter LoxBerry 2.x installierst, werden beim Update auf LoxBerry 3.x alle deine Einstellungen des Plugins übernommen.
 +</WRAP>
 +
 +<WRAP center info 90%>
 +EN: The MQTT Gateway plugin is not required anymore starting with **LoxBerry 3.0**, as the functionality is integrated in LoxBerry 3.0. Fixes and enhancements are not maintained anymore in this plugin but in LoxBerry.
 +If you install this plugin on LoxBerry 2.x, your settings are automatically migrated when you update to LoxBerry 3.x.
 +</WRAP>
  
 ===== Einführung / Video Tutorial ===== ===== Einführung / Video Tutorial =====
Zeile 278: Zeile 292:
 ==== Einstellungen ==== ==== Einstellungen ====
  
-^Einstellung                                                                    ^Standard         ^Beschreibung                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      +^ Einstellung  ^ Standard  ^ Beschreibung  
-|Per HTTP Webservice übermitteln\\ \\ ("Set virtual inputs via HTTP webservice")|Aktiv            |**Ressourcenschonender als UDP!**\\ \\ Die Nachricht wird direkt per HTTP-REST Webservice an den Miniserver übertragen. Dafür müssen selbst entsprechende Virtuelle Eingänge mit exakt dem hier dokumentierten Namen verwendet werden. Das Plugin verwendet die Nachricht als Bezeichnung für den Eingang, wobei / in _ konvertiert werden:\\ \\  shellies/shelly-12345/relay/1 wird zu **''%%shellies_shelly-12345_relay_1%%''**\\ \\ Schau ins Logfile, dort werden die Bezeichnungen angezeigt.\\ \\ Beachte die Berechtigungen in Loxone! Der Loxberry-Benutzer muss Rechte auf die VIs haben!| +| Per HTTP Webservice übermitteln\\ \\ ("Set virtual inputs via HTTP webservice") | Aktiv  | **Ressourcenschonender als UDP!**\\ \\ Die Nachricht wird direkt per HTTP-REST Webservice an den Miniserver übertragen. Dafür müssen selbst entsprechende Virtuelle Eingänge mit exakt dem hier dokumentierten Namen verwendet werden. Das Plugin verwendet die Nachricht als Bezeichnung für den Eingang, wobei / in _ konvertiert werden:\\ \\  shellies/shelly-12345/relay/1 wird zu **''%%shellies_shelly-12345_relay_1%%''**\\ \\ Schau ins Logfile, dort werden die Bezeichnungen angezeigt.\\ \\ Beachte die Berechtigungen in Loxone! Der Loxberry-Benutzer muss Rechte auf die VIs haben! | 
-|Per UDP übermitteln\\ \\ ("Send data via UDP"                                |Inaktiv          |Nachrichtenformat (für die Befehlserkennung):\\ \\ MQTT: shellies/shelly-12345/relay/1=off (oder =0)\\ \\ Befehlserkennung: **''%%MQTT: shellies/shelly-12345/relay/1=\v%%''**                                                                                                                                                                                                                                                                                                                                                                                                                    +| Per UDP übermitteln\\ \\ ("Send data via UDP" | Inaktiv  | Nachrichtenformat (für die Befehlserkennung):\\ \\ MQTT: shellies/shelly-12345/relay/1=off (oder =0)\\ \\ Befehlserkennung: **''%%MQTT: shellies/shelly-12345/relay/1=\v%%''**  
-|Miniserver                                                                     |Erster Miniserver|Die abonnierten Daten werden an diesen Miniserver gesendet.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       +| Miniserver  | Erster Miniserver | Die abonnierten Daten werden an diesen Miniserver gesendet.  
-|Miniserver-UDP-Port                                                            |11883            |Ist UDP aktiviert, werden Nachrichten an diesen UDP-Port des Miniservers übermittelt.\\ \\ (wird nur angezeigt, wenn UDP-Übertragung aktiv ist)                                                                                                                                                                                                                                                                                                                                                                                                                                                   +| Miniserver-UDP-Port  | 11883  | Ist UDP aktiviert, werden Nachrichten an diesen UDP-Port des Miniservers übermittelt.\\ \\ (wird nur angezeigt, wenn UDP-Übertragung aktiv ist)  
-|Booleans konvertieren                                                          |Ein              |In MQTT werden häufig Strings bei der Nachricht verwendet, beispielsweise "off" oder "on". Das Plugin konvertiert als Booleans identifizierte Strings in die Werte 0 oder 1. Strings, die erkannt werden, siehe [[entwickler:perl_develop_plugins_with_perl:perl_loxberry_sdk_dokumentation:perlmodul_loxberrysystem:loxberrysystemis_enabled|LoxBerry::System::is_enabled]] bzw. [[entwickler:perl_develop_plugins_with_perl:perl_loxberry_sdk_dokumentation:perlmodul_loxberrysystem:loxberrysystemis_disabled|LoxBerry::System::is_disabled]]                                                                                                                                                                                                                                                                           +| Booleans konvertieren  | Ein  | In MQTT werden häufig Strings bei der Nachricht verwendet, beispielsweise "off" oder "on". Das Plugin konvertiert als Booleans identifizierte Strings in die Werte 0 oder 1. Strings, die erkannt werden, siehe [[entwickler:perl_develop_plugins_with_perl:perl_loxberry_sdk_dokumentation:perlmodul_loxberrysystem:loxberrysystemis_enabled|LoxBerry::System::is_enabled]] bzw. [[entwickler:perl_develop_plugins_with_perl:perl_loxberry_sdk_dokumentation:perlmodul_loxberrysystem:loxberrysystemis_disabled|LoxBerry::System::is_disabled]]  
-|JSON expandieren                                                               |Ein              |Werden JSON-Daten übertragen, wird die JSON-Struktur expandiert und an den http-Namen angehängt.\\ \\ Topic/abcde={"action":"on","linkquality":39} wird zu\\ Topic_abcde_action = on (oder 1)\\ Topic_abcde_linkquality = 39\\ \\ Auch Objekte und Arrays in beliebiger Hierarchie werden aufgelöst. Am besten in der Incoming Overview anschauen, wie die Daten nach der Expandierung aussehen.                                                                                                                                                                                                  +| JSON expandieren  | Ein  | Werden JSON-Daten übertragen, wird die JSON-Struktur expandiert und an den http-Namen angehängt.\\ \\ Topic/abcde={"action":"on","linkquality":39} wird zu\\ Topic_abcde_action = on (oder 1)\\ Topic_abcde_linkquality = 39\\ \\ Auch Objekte und Arrays in beliebiger Hierarchie werden aufgelöst. Am besten in der Incoming Overview anschauen, wie die Daten nach der Expandierung aussehen.  
-|**TAB Subscriptions**\\ \\ Abonnierte Topics                                                   |Die Angabe erfolgt mit einer Zeile pro Topic. Die Topics müssen vom MQTT-Device dokumentiert sein. Eine # definiert dabei einen "Joker" (wie man sonst den * verwendet), z.B. shellies/# abonniert alle Meldungen innerhalb des Topics shellies/.\\ \\ Siehe unten die Kurzübersicht bekannter MQTT-Geräte und Topics.                                                                                                                                                                                                                                                                            +| **TAB Subscriptions**\\ \\ Abonnierte Topics    | Die Angabe erfolgt mit einer Zeile pro Topic. Die Topics müssen vom MQTT-Device dokumentiert sein. Eine # definiert dabei einen "Joker" (wie man sonst den * verwendet), z.B. shellies/# abonniert alle Meldungen innerhalb des Topics shellies/.\\ \\ Siehe unten die Kurzübersicht bekannter MQTT-Geräte und Topics.  
-|**TAB Conversions**\\ \\ Eigene Wert-Zu-Text Konvertierung                                     |Da der Miniserver keine Texte weiterverarbeiten kann, können eingehende Nachrichten von einem String zu einem Wert konvertiert werden.\\ \\ Beispiel:\\ \\ ''%%button-up=1%%''\\ ''%%button-down=2%%''\\ \\ Sendet ein Device ''%%Topic_abcde_status=button-down%%'', wird dies als ''%%Topic_abcde_status=2%%'' an den Miniserver übertragen.\\ \\ Beispielsweise in einem Status-Baustein kann der Wert weiter verarbeitet werden.                                                                                                                                                              +| **TAB Conversions**\\ \\ Eigene Wert-Zu-Text Konvertierung    | Da der Miniserver keine Texte weiterverarbeiten kann, können eingehende Nachrichten von einem String zu einem Wert konvertiert werden.\\ \\ Beispiel:\\ \\ ''%%button-up=1%%''\\ ''%%button-down=2%%''\\ \\ Sendet ein Device ''%%Topic_abcde_status=button-down%%'', wird dies als ''%%Topic_abcde_status=2%%'' an den Miniserver übertragen.\\ \\ Beispielsweise in einem Status-Baustein kann der Wert weiter verarbeitet werden.  
-|**TAB Incoming Overview**\\ \\ Anzeige der übermittelten Daten                                 |Hier werden die per HTTP und UDP übermittelten Daten angezeigt.\\ \\ Die Aktualisierung erfolgt automatisch im Sekundentakt, ohne dass ein Browser-Refresh notwendig ist.\\ \\ In diesem Fenster können mit Copy&Paste virtuelle Eingänge/Texteingänge, oder für UDP die entsprechenden Befehlserkennungen kopiert werden.                                                                                                                                                                                                                                                                        |+| **TAB Incoming Overview**\\ \\ Anzeige der übermittelten Daten    | Hier werden die per HTTP und UDP übermittelten Daten angezeigt.\\ \\ Die Aktualisierung erfolgt automatisch im Sekundentakt, ohne dass ein Browser-Refresh notwendig ist.\\ \\ In diesem Fenster können mit Copy&Paste virtuelle Eingänge/Texteingänge, oder für UDP die entsprechenden Befehlserkennungen kopiert werden.  |
  
 Den Button zum Speichern ganz unten nicht vergessen. Die neue Konfiguration wird beim Speichern automatisch übernommen.  Den Button zum Speichern ganz unten nicht vergessen. Die neue Konfiguration wird beim Speichern automatisch übernommen. 
  
-Siehe auch: [[plugins:mqtt_gateway:mqtt_schritt_fur_schritt_loxone_mqtt]] +Siehe auch:  
 + 
 +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_schritt_fur_schritt_mqtt_loxone]] 
 +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_schritt_fur_schritt_loxone_mqtt]]
  
 ===== Settings - Miniserver an MQTT ===== ===== Settings - Miniserver an MQTT =====
  
-^Einstellung        ^Standard|Beschreibung                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^ +^ Einstellung  ^ Standard | Beschreibung  | 
-|Gateway UDP IN-Port|11884   |Eingangsport am LoxBerry für UDP-Nachrichten, die an MQTT-Geräte weitergeleitet werden.\\ \\ Folgende Befehle werden unterstützt:\\ \\ * ''%%<topic> <value>%%'' → löst eine Publish-Nachricht aus\\ * ''%%publish %%''''%%<topic> <value>%%'' → löst eine Publish-Nachricht aus\\ * ''%%retain %%''''%%<topic> <value>%%'' → löst eine Retain-Nachricht aus (wird am Broker gespeichert)\\ * ''%%publish <transformer> <topic> <value>%%'' → sendet eine Publish-Nachricht an einen UDP Transformer\\ * ''%%retain <transformer> <topic> <value> %%''→ sendet eine Retain-Nachricht an einen UDP-Transformer\\ * ''%%reconnect%%'' → Löst eine Neuverbindung und ein forciertes Übermitteln der Daten an den Miniserver aus\\ \\ Beispiel 1: ''%%shellies/shellyswitch-32BA7F/relay/1/command on%%''\\ Beispiel 2: ''%%retain wohnzimmer/temperature 12.5%%''\\ Beispiel 3: ''%%reconnect%%''\\ Beispiel 4:''%% publish http2mqtt web/request https://1.2.3.4/%%''|+| Gateway UDP IN-Port | 11884  | Eingangsport am LoxBerry für UDP-Nachrichten, die an MQTT-Geräte weitergeleitet werden.\\ \\ Folgende Befehle werden unterstützt:\\ \\ * ''%%<topic> <value>%%'' → löst eine Publish-Nachricht aus\\ * ''%%publish <topic> <value>%%'' → löst eine Publish-Nachricht aus\\ * ''%%retain <topic> <value>%%'' → löst eine Retain-Nachricht aus (wird am Broker gespeichert)\\ * ''%%publish <transformer> <topic> <value>%%'' → sendet eine Publish-Nachricht an einen UDP Transformer\\ * ''%%retain <transformer> <topic> <value> %%''→ sendet eine Retain-Nachricht an einen UDP-Transformer\\ * ''%%reconnect%%'' → Löst eine Neuverbindung und ein forciertes Übermitteln der Daten an den Miniserver aus\\ \\ Beispiel 1: ''%%shellies/shellyswitch-32BA7F/relay/1/command on%%''\\ Beispiel 2: ''%%retain wohnzimmer/temperature 12.5%%''\\ Beispiel 3: ''%%reconnect%%''\\ Beispiel 4:''%% publish http2mqtt web/request https://1.2.3.4/%%'' |
  
 Wenn der Miniserver neu startet, empfiehlt es sich, mittels der Loxone-Zeit "Startimpuls" ein ''%%reconnect%%'' per UDP-Nachricht an das Gateway zu übermitteln. Beispiel im "Siehe auch"-Link. Wenn der Miniserver neu startet, empfiehlt es sich, mittels der Loxone-Zeit "Startimpuls" ein ''%%reconnect%%'' per UDP-Nachricht an das Gateway zu übermitteln. Beispiel im "Siehe auch"-Link.
  
-Siehe auch: [[plugins:mqtt_gateway:mqtt_schritt_fur_schritt_loxone_mqtt]]+Siehe auch: 
  
-===== Settings - MQTT Broker-Einstellungen =====+  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_schritt_fur_schritt_loxone_mqtt]] 
 +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_schritt_fur_schritt_mqtt_loxone]]
  
-^Einstellung                                                                    ^Standard                 ^Beschreibung                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ^ +===== Settings - MQTT Broker-Einstellungen =====
-|Lokalen Mosquitto-Broker verwenden\\ \\ ("Use the local Mosquitto MQTT broker")|Ja                       |Ist dies aktiviert, prüft das Plugin beim Reboot, ob Mosquitto läuft, und startet diesen gegebenenfalls.\\ \\ Aktiv: Lokale Mosquitto-Inszanz wird vom Plugin verwaltet (inkl. Änderung von Benutzername und Passwort)\\ Inaktiv: Du kümmserst dich selbst um den Broker                                                                                                                                                                                                                                               | +
-|MQTT Broker Adresse                                                            |localhost                |Hier kann der Hostname angegeben werden, mit dem das Gateway verbinden soll.\\ \\ Wird beim Hostnamen kein Port angegeben, wird der Standardport 1883 verwendet.\\ \\ Eine Portangabe erfolgt per hostname:port                                                                                                                                                                                                                                                                                                        | +
-|MQTT Broker Benutzername\\ \\ MQTT Broker Passwort                             |loxberry\\ \\ <generiert>|Der automatisch installierte Mosquitto-Broker wird mit dem Benutzer loxberry und einem generierten Passwort installiert. Diese Informationen kannst du bei der Einrichtung von Devices von hier kopieren. **Wenn du Benutzername und Kennwort nachträglich änderst, musst du das auch bei allen bereits konfigurierten Geräten machen!**\\ \\ Leerer Benutzer und leeres Kennwort deaktivieren die Authentifizierung am lokalen Broker.\\ \\ Bei externen Brokern wird hier deren Benutzername und Kennwort eingegeben.| +
-|Mosquitto WebSocket port                                                       |9001                     |MQTT Clients mit Websocket-Support können mit diesem Port verbinden. WebSocket-Clients können im Webbrowser laufen und erhalten die Daten gepushed, statt regelmäßig abfragen zu müssen.                                                                                                                                                                                                                                                                                                                               | +
-|Broker Pre-Shared Key (TLS-PSK)                                                |<generiert>              |Das TLS-PSK (Pre-Shared Key) Verfahren erlaubt die verschlüsselte Verbindung von Clients mit zuvor ausgetauschtem Schlüssel. Der Client muss TLS-PSK unterstützen. Zertifikatsbasierte Verschlüsselung ist derzeit nicht implementiert.                                                                                                                                                                                                                                                                                |+
  
 +^ Einstellung  ^ Standard  ^ Beschreibung  ^
 +| Lokalen Mosquitto-Broker verwenden\\ \\ ("Use the local Mosquitto MQTT broker") | Ja  | Ist dies aktiviert, prüft das Plugin beim Reboot, ob Mosquitto läuft, und startet diesen gegebenenfalls.\\ \\ Aktiv: Lokale Mosquitto-Inszanz wird vom Plugin verwaltet (inkl. Änderung von Benutzername und Passwort)\\ Inaktiv: Du kümmserst dich selbst um den Broker  |
 +| MQTT Broker Adresse  | localhost  | Hier kann der Hostname angegeben werden, mit dem das Gateway verbinden soll.\\ \\ Wird beim Hostnamen kein Port angegeben, wird der Standardport 1883 verwendet.\\ \\ Eine Portangabe erfolgt per hostname:port  |
 +| MQTT Broker Benutzername\\ \\ MQTT Broker Passwort  | loxberry\\ \\ <generiert> | Der automatisch installierte Mosquitto-Broker wird mit dem Benutzer loxberry und einem generierten Passwort installiert. Diese Informationen kannst du bei der Einrichtung von Devices von hier kopieren. **Wenn du Benutzername und Kennwort nachträglich änderst, musst du das auch bei allen bereits konfigurierten Geräten machen!**\\ \\ Leerer Benutzer und leeres Kennwort deaktivieren die Authentifizierung am lokalen Broker.\\ \\ Bei externen Brokern wird hier deren Benutzername und Kennwort eingegeben. |
 +| Mosquitto WebSocket port  | 9001  | MQTT Clients mit Websocket-Support können mit diesem Port verbinden. WebSocket-Clients können im Webbrowser laufen und erhalten die Daten gepushed, statt regelmäßig abfragen zu müssen.  |
 +| Broker Pre-Shared Key (TLS-PSK)  | <generiert>  | Das TLS-PSK (Pre-Shared Key) Verfahren erlaubt die verschlüsselte Verbindung von Clients mit zuvor ausgetauschtem Schlüssel. Der Client muss TLS-PSK unterstützen. Zertifikatsbasierte Verschlüsselung ist derzeit nicht implementiert.  |
  
 ===== Settings - Weitere Einstellungen ("Still more settings") ===== ===== Settings - Weitere Einstellungen ("Still more settings") =====
Zeile 320: Zeile 339:
 Mittels eines integrierten Reglers wird auf die gewünschte //CPU-Belastung// ausgeregelt. Diese Logik passt sich automatisch an die Systemgeschwindigkeit, und an die Anzahl und den Durchsatz der zu übertragenden Daten an. Die Regelung läuft kontinuierlich, etwaige Lastspitzen werden ausgeglichen. **Eine Änderung der Performance-Einstellung dauert einige Minuten, bis sie spürbar wird.**  Mittels eines integrierten Reglers wird auf die gewünschte //CPU-Belastung// ausgeregelt. Diese Logik passt sich automatisch an die Systemgeschwindigkeit, und an die Anzahl und den Durchsatz der zu übertragenden Daten an. Die Regelung läuft kontinuierlich, etwaige Lastspitzen werden ausgeglichen. **Eine Änderung der Performance-Einstellung dauert einige Minuten, bis sie spürbar wird.** 
  
-Standardwert ist "**Fast (Default)**", was im Vergleich zu den Version 1.x in etwa einer //zehnfachen// Beschleunigung entspricht (auf einem Raspberry Pi 1 / Zero ca. dreifach).\\ +Standardwert ist "**Fast (Default)**", was im Vergleich zu den Version 1.x in etwa einer //zehnfachen// Beschleunigung entspricht (auf einem Raspberry Pi 1 / Zero ca. dreifach).\\  Die Einstellung "**Moderate**" ist etwa dreimal so schnell wie früher, "**Energy Saver**" wird (je nach Hardware) vermutlich langsamer sein als früher, und ist für Taster-Übertragungen eher nicht geeignet.\\  Mit der Einstellung "**Very fast**" ist praktisch keine Verzögerung mehr spürbar, wohingegen mit "**NO LIMITS!**" je nach Hardware der LoxBerry fast voll ausgelastet ist und alles andere träge wird. 
-Die Einstellung "**Moderate**" ist etwa dreimal so schnell wie früher, "**Energy Saver**" wird (je nach Hardware) vermutlich langsamer sein als früher, und ist für Taster-Übertragungen eher nicht geeignet.\\ +
-Mit der Einstellung "**Very fast**" ist praktisch keine Verzögerung mehr spürbar, wohingegen mit "**NO LIMITS!**" je nach Hardware der LoxBerry fast voll ausgelastet ist und alles andere träge wird. +
  
 Wenn du willst, kannst du die Wirkung der Regelung beobachten, indem du an der Shell mit ''%%top%%'' die CPU-Auslastung des ''%%mqttgateway.pl%%'' Prozesses verfolgst. Die Regelanpassung passiert im Minutentakt. Wenn du willst, kannst du die Wirkung der Regelung beobachten, indem du an der Shell mit ''%%top%%'' die CPU-Auslastung des ''%%mqttgateway.pl%%'' Prozesses verfolgst. Die Regelanpassung passiert im Minutentakt.
Zeile 328: Zeile 345:
 ===== MQTT Subscriptions ===== ===== MQTT Subscriptions =====
  
-Hier definierst du, welche Daten du abonnieren möchtest. Jede Subscription steht in einer Zeile. Unter welchem Topic die Daten gesendet werden, bestimmt das Absender-Gerät (bzw. das, was du dort einstellst). Siehe dazu den ausführlichen Artikel, wie Subscriptions und Topics funktionieren, unter [[plugins:mqtt_gateway:mqtt_gateway_faq:mqtt_gateway_subscriptions_und_topics|MQTT Gateway - Subscriptions und Topics]].+Hier definierst du, welche Daten du abonnieren möchtest. Jede Subscription steht in einer Zeile. Unter welchem Topic die Daten gesendet werden, bestimmt das Absender-Gerät (bzw. das, was du dort einstellst). Siehe dazu den ausführlichen Artikel, wie Subscriptions und Topics funktionieren, unter [[konfiguration:widget_help:widget_mqtt:mqtt_gateway_faq:mqtt_gateway_subscriptions_und_topics|MQTT Gateway - Subscriptions und Topics]].
  
 Beispiel: Beispiel:
  
-''%%shellies/#%%''\\ +''%%shellies/#%%''\\  ''%%nuki/#%%''
-''%%nuki/#%%''+
  
 ==== Verteilung der Daten an verschiedene Miniserver ==== ==== Verteilung der Daten an verschiedene Miniserver ====
Zeile 369: Zeile 385:
 Jede Zeile enthält eine Regular Expression - wenn das RegEx bei einem eingehenden Datensatz __zutrifft__, wird dieser Datensatz gefiltert und __nicht__ an den Miniserver weitergeleitet. Jede Zeile enthält eine Regular Expression - wenn das RegEx bei einem eingehenden Datensatz __zutrifft__, wird dieser Datensatz gefiltert und __nicht__ an den Miniserver weitergeleitet.
  
-{{plugins:mqtt_gateway:1276706824.png?w=400}}+{{plugins:mqtt_gateway:1276706824.png?400}}
  
 In der Incoming Overview werden gefilterte Datensätze durchgestrichen angezeigt - so kannst du prüfen, ob deine RegEx-Zeilen funktionieren. In der Incoming Overview werden gefilterte Datensätze durchgestrichen angezeigt - so kannst du prüfen, ob deine RegEx-Zeilen funktionieren.
Zeile 379: Zeile 395:
 Um dir die Einrichtung zu erleichtern, können andere Plugins direkt im MQTT Gateway Subscriptions definieren. Wenn Plugin-Subscriptions vorhanden sind, findest du diese auf der //Subscriptions//-Seite ganz unten. Du brauchst dann diese Subscriptions nicht nochmals oben einzugeben. Um dir die Einrichtung zu erleichtern, können andere Plugins direkt im MQTT Gateway Subscriptions definieren. Wenn Plugin-Subscriptions vorhanden sind, findest du diese auf der //Subscriptions//-Seite ganz unten. Du brauchst dann diese Subscriptions nicht nochmals oben einzugeben.
  
-{{plugins:mqtt_gateway:1246070608.png?w=400}}+{{plugins:mqtt_gateway:1246070608.png?400}}
  
 ===== Text-to-Value Conversions ===== ===== Text-to-Value Conversions =====
Zeile 387: Zeile 403:
 In jede Zeile eine Konvertierung. In jede Zeile eine Konvertierung.
  
-{{plugins:mqtt_gateway:1246070611.png?w=400}}+{{plugins:mqtt_gateway:1246070611.png?400}}
  
 Dieses Beispiel zeigt den Status von Enocean Fenstergriffen. Sendet der Fenstergriff "open", wird 3 an den Miniserver weitergesendet, ist gekippt ("tilted"), wird 2 weitergeleitet. Mit den Zahlen kann man Logiken abbilden, oder diese mit einem Status-Baustein wieder als Text darstellen lassen. Dieses Beispiel zeigt den Status von Enocean Fenstergriffen. Sendet der Fenstergriff "open", wird 3 an den Miniserver weitergesendet, ist gekippt ("tilted"), wird 2 weitergeleitet. Mit den Zahlen kann man Logiken abbilden, oder diese mit einem Status-Baustein wieder als Text darstellen lassen.
Zeile 397: Zeile 413:
 Auch andere Plugins können automatisch Conversions anlegen. Die findest du am Ende der Seite, wenn welche vorhanden sind. Auch andere Plugins können automatisch Conversions anlegen. Die findest du am Ende der Seite, wenn welche vorhanden sind.
  
-{{plugins:mqtt_gateway:1276706823.png?w=400}}+{{plugins:mqtt_gateway:1276706823.png?400}}
  
 ===== Incoming Overview ===== ===== Incoming Overview =====
Zeile 407: Zeile 423:
 ==== HTTP Virtual Inputs (Übertragung per HTTP) ==== ==== HTTP Virtual Inputs (Übertragung per HTTP) ====
  
-{{plugins:mqtt_gateway:1276706825.png?w=500}}+{{plugins:mqtt_gateway:1276706825.png?500}}
  
 Oben kannst du Einträge suchen und nach dem Status filtern. Oben kannst du Einträge suchen und nach dem Status filtern.
Zeile 413: Zeile 429:
 Die Symbole links zeigen, ob Die Symbole links zeigen, ob
  
-  * {{plugins:mqtt_gateway:1276706827.png?h=15}} die letzte Übertragung erfolgreich war, oder  +  * {{plugins:mqtt_gateway:1276706827.png?15}} die letzte Übertragung erfolgreich war, oder  
-  * {{plugins:mqtt_gateway:1276706828.png?h=15}} der VI am Miniserver nicht existiert, +  * {{plugins:mqtt_gateway:1276706828.png?15}} der VI am Miniserver nicht existiert, 
-  * {{plugins:mqtt_gateway:1276706829.png?h=15}} der Datensatz seit dem letzten Start noch nicht übertragen wurde (z.B. durch den Cache), +  * {{plugins:mqtt_gateway:1276706829.png?15}} der Datensatz seit dem letzten Start noch nicht übertragen wurde (z.B. durch den Cache), 
-  * {{plugins:mqtt_gateway:1276706830.png?h=15}} der Datensatz gefiltert wurde (Subscription Filter oder "Do-Not-Forward" Flag) , oder ob vielleicht +  * {{plugins:mqtt_gateway:1276706830.png?15}} der Datensatz gefiltert wurde (Subscription Filter oder "Do-Not-Forward" Flag) , oder ob vielleicht 
-  * {{plugins:mqtt_gateway:1276706831.png?h=15}} das Gateway keine Berechtigungen auf den VI am Miniserver hat. +  * {{plugins:mqtt_gateway:1276706831.png?15}} das Gateway keine Berechtigungen auf den VI am Miniserver hat. 
  
-Ein {{plugins:mqtt_gateway:1276706828.png?h=15}} Symbol bedeutet, dass dieser Virtuelle Eingang bei der letzten Übertragung am Miniserver nicht existiert hat (noch nicht angelegt, oder vertippt?)+Ein {{plugins:mqtt_gateway:1276706828.png?15}} Symbol bedeutet, dass dieser Virtuelle Eingang bei der letzten Übertragung am Miniserver nicht existiert hat (noch nicht angelegt, oder vertippt?)
  
-Das {{plugins:mqtt_gateway:1276706829.png?h=15}} Symbol bedeutet, dass dieser Wert bisher nicht neu an den Miniserver übertragen wurde. Das liegt in der Regel am Cache, dass gleiche Werte nicht mehrfach übertragen werden.+Das {{plugins:mqtt_gateway:1276706829.png?15}} Symbol bedeutet, dass dieser Wert bisher nicht neu an den Miniserver übertragen wurde. Das liegt in der Regel am Cache, dass gleiche Werte nicht mehrfach übertragen werden.
  
-Wenn du bei Einträgen ein {{plugins:mqtt_gateway:1276706831.png?h=15}} Symbol bekommst, prüfe in der Loxone Config, ob der LoxBerry-Benutzer an deinem Miniserver die nötigen Berechtigungen für diesen VI oder insgesamt an deinem Miniserver hat.+Wenn du bei Einträgen ein {{plugins:mqtt_gateway:1276706831.png?15}} Symbol bekommst, prüfe in der Loxone Config, ob der LoxBerry-Benutzer an deinem Miniserver die nötigen Berechtigungen für diesen VI oder insgesamt an deinem Miniserver hat.
  
 Der VI hat einen Copy-Button. Damit kannst du zügig neue Virtuelle Eingänge am Miniserver einrichten. Der VI hat einen Copy-Button. Damit kannst du zügig neue Virtuelle Eingänge am Miniserver einrichten.
Zeile 431: Zeile 447:
 Wenn du UDP als Übertragungsart gewählt hast, werden dir die Daten, und die möglichen Befehlserkennungen angezeigt. Wenn du UDP als Übertragungsart gewählt hast, werden dir die Daten, und die möglichen Befehlserkennungen angezeigt.
  
-{{plugins:mqtt_gateway:1276706832.png?w=500}}+{{plugins:mqtt_gateway:1276706832.png?500}}
  
 Du kannst mit dem Copy-Button direkt die Befehlserkennung kopieren, um sie am Miniserver in neue Virtuelle UDP-Eingangs-Befehle (Befehlserkennung) zu kopieren. Du kannst mit dem Copy-Button direkt die Befehlserkennung kopieren, um sie am Miniserver in neue Virtuelle UDP-Eingangs-Befehle (Befehlserkennung) zu kopieren.
Zeile 437: Zeile 453:
 ==== Show details and advanced settings ==== ==== Show details and advanced settings ====
  
-{{plugins:mqtt_gateway:1276706833.png?w=500}}+{{plugins:mqtt_gateway:1276706833.png?500}}
  
 Je nach Übertragungsart - HTTP oder UDP - werden dir zusätzliche Informationen und Optionen angezeigt. Je nach Übertragungsart - HTTP oder UDP - werden dir zusätzliche Informationen und Optionen angezeigt.
Zeile 453: Zeile 469:
 Neu im MQTT Gateway 2.x sind sogenannte Transformers. Damit ist es möglich, vom Miniserver eingehende Daten vor der Übertragung an MQTT zu modizieren. Neu im MQTT Gateway 2.x sind sogenannte Transformers. Damit ist es möglich, vom Miniserver eingehende Daten vor der Übertragung an MQTT zu modizieren.
  
-Die detaillierte Anleitung zu den Transformers findest du hier: [[plugins:mqtt_gateway:mqtt_gateway_udp_transformers:start|MQTT Gateway - UDP Transformers]]+Die detaillierte Anleitung zu den Transformers findest du hier: [[konfiguration:widget_help:widget_mqtt:mqtt_gateway_udp_transformers:start|MQTT Gateway - UDP Transformers]]
  
 ===== Bekannte MQTT-Geräte und Subscription-Topics ===== ===== Bekannte MQTT-Geräte und Subscription-Topics =====
Zeile 459: Zeile 475:
 Liebe Plugin-Benutzer! Bitte pflegt diese Tabelle mit euren eingesetzten Geräten, MQTT-Infos und Links!  Liebe Plugin-Benutzer! Bitte pflegt diese Tabelle mit euren eingesetzten Geräten, MQTT-Infos und Links! 
  
-Die Liste ist jetzt in diesem Unter-Artikel: [[plugins:mqtt_gateway:mqttgateway_bekannte_mqttgerate_und_subscriptiontopics:start|MQTT-Gateway - Bekannte MQTT-Geräte und Subscription-Topics]]+Die Liste ist jetzt in diesem Unter-Artikel: [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqttgateway_bekannte_mqttgerate_und_subscriptiontopics:start|MQTT-Gateway - Bekannte MQTT-Geräte und Subscription-Topics]]
  
 ===== Weitere Hinweise  ===== ===== Weitere Hinweise  =====
Zeile 466: Zeile 482:
   * Das Plugin integriert sich in den [[konfiguration:widget_help:widget_my_loxberry:healthcheck|LoxBerry Selbsttest / LoxBerry Healthcheck]]. Geprüft wird, ob das MQTT Gateway Service läuft, ob es Meldungen bei der Öffnung der Netzverbindungen gab, und ob die Broker-Verbindung korrekt funktioniert.   * Das Plugin integriert sich in den [[konfiguration:widget_help:widget_my_loxberry:healthcheck|LoxBerry Selbsttest / LoxBerry Healthcheck]]. Geprüft wird, ob das MQTT Gateway Service läuft, ob es Meldungen bei der Öffnung der Netzverbindungen gab, und ob die Broker-Verbindung korrekt funktioniert.
  
-{{:plugins:mqtt_gateway:notify.png?400|}}+{{:plugins:mqtt_gateway:notify.png?400}}
  
-  * Neue MQTT-Geräte ausprobieren, etwa weil Befehle weniger gut dokumentiert sind oder man die idealen Werte erst durch ausprobieren finden muss, ist über die Loxone Config schwierig (auf Miniserver laden, Neustart, Warten...) Da bietet es sich an, die Steuerung via MQTT erst einmal mit einer separaten Client Software auszuprobieren, bevor dann die fertigen Befehle in die Loxone Config übernommen werden. Einen Überblick über passende Software bzw. Apps dafür bietet https://www.hivemq.com/blog/seven-best-mqtt-client-tools/  +  * Neue MQTT-Geräte ausprobieren, etwa weil Befehle weniger gut dokumentiert sind oder man die idealen Werte erst durch ausprobieren finden muss, ist über die Loxone Config schwierig (auf Miniserver laden, Neustart, Warten...) Da bietet es sich an, die Steuerung via MQTT erst einmal mit einer separaten Client Software auszuprobieren, bevor dann die fertigen Befehle in die Loxone Config übernommen werden. Einen Überblick über passende Software bzw. Apps dafür bietet [[https://www.hivemq.com/blog/seven-best-mqtt-client-tools/]]  
   * Ebenfalls zum Testen nutzen kannst du den Quick Publisher des MQTT Gateways. Wenn du im Plugin ganz rechts oben das "i" klickst, oder auf die "Transformers & Logs" Seite gehst, findest du dort den "Quick Publisher". Damit kannst du rasch Werte an MQTT-Topics senden zum Ausprobieren.    * Ebenfalls zum Testen nutzen kannst du den Quick Publisher des MQTT Gateways. Wenn du im Plugin ganz rechts oben das "i" klickst, oder auf die "Transformers & Logs" Seite gehst, findest du dort den "Quick Publisher". Damit kannst du rasch Werte an MQTT-Topics senden zum Ausprobieren. 
  
Zeile 479: Zeile 495:
 ===== Fragen stellen und Fehler melden ===== ===== Fragen stellen und Fehler melden =====
  
-[[plugins:mqtt_gateway:mqtt_gateway_faq:mqtt_gateway_troubleshooting_guide|MQTT Gateway - Troubleshooting Guide]]+[[konfiguration:widget_help:widget_mqtt:mqtt_gateway_faq:mqtt_gateway_troubleshooting_guide|MQTT Gateway - Troubleshooting Guide]]
  
 GitHub: [[https://github.com/christianTF/LoxBerry-Plugin-MQTT-Gateway/issues]] GitHub: [[https://github.com/christianTF/LoxBerry-Plugin-MQTT-Gateway/issues]]
Zeile 495: Zeile 511:
 ===== Siehe auch ===== ===== Siehe auch =====
  
-  * [[plugins:mqtt_gateway:mqttgateway_bekannte_mqttgerate_und_subscriptiontopics:start|MQTT-Gateway - Bekannte MQTT-Geräte und Subscription-Topics]] +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqttgateway_bekannte_mqttgerate_und_subscriptiontopics:start|MQTT-Gateway - Bekannte MQTT-Geräte und Subscription-Topics]] 
-  * [[plugins:mqtt_gateway:mqtt_schritt_fur_schritt_mqtt_loxone|MQTT - Schritt für Schritt: MQTT -> Loxone]] +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_schritt_fur_schritt_mqtt_loxone|MQTT - Schritt für Schritt: MQTT -> Loxone]] 
-  * [[plugins:mqtt_gateway:mqtt_schritt_fur_schritt_loxone_mqtt|MQTT - Schritt für Schritt: Loxone -> MQTT]] +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_schritt_fur_schritt_loxone_mqtt|MQTT - Schritt für Schritt: Loxone -> MQTT]] 
-  * [[plugins:mqtt_gateway:mqtt_gateway_http_und_udp_interface|MQTT Gateway - HTTP- und UDP-Interface]] +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_gateway_http_und_udp_interface|MQTT Gateway - HTTP- und UDP-Interface]] 
-  * [[plugins:mqtt_gateway:mqtt_gateway_udp_transformers:start|MQTT Gateway - UDP Transformers]] +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway_udp_transformers:start|MQTT Gateway - UDP Transformers]] 
-  * [[plugins:mqtt_gateway:mqtt_gateway_faq:start|MQTT Gateway - FAQ]] +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway_faq:start|MQTT Gateway - FAQ]] 
-  * [[plugins:mqtt_gateway:mqtt_gateway_for_plugin_developers|MQTT Gateway for plugin developers]] +  * [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_gateway_for_plugin_developers|MQTT Gateway for plugin developers]]
- +
-  * Informationen und Best Practices zu Topics und Subscrictions: https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/ +
-  * Miele Home MQTT Gateway: https://www.loxforum.com/forum/projektforen/loxberry/plugins/176967-miele-mqtt-loxberry-mqtt +
-  * Verschiedene MQTT-Interfaces von Devices und Diensten: https://github.com/hobbyquaker/awesome-mqtt#interfaces +
-  * Fronius Hybrid und //go-eCharger// Bridge:  https://github.com/akleber/mqtt-connectors+
  
 +  * Informationen und Best Practices zu Topics und Subscrictions: [[https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/]]
 +  * Miele Home MQTT Gateway: [[https://www.loxforum.com/forum/projektforen/loxberry/plugins/176967-miele-mqtt-loxberry-mqtt]]
 +  * Verschiedene MQTT-Interfaces von Devices und Diensten: [[https://github.com/hobbyquaker/awesome-mqtt#interfaces]]
 +  * Fronius Hybrid und //go-eCharger// Bridge:  [[https://github.com/akleber/mqtt-connectors]]
  
  
 ---- struct data ---- ---- struct data ----
-pluginuebersicht.author : christiantf+pluginuebersicht.author : fenzl
 pluginuebersicht.logo : :plugins:mqtt_gateway:icon_64.png pluginuebersicht.logo : :plugins:mqtt_gateway:icon_64.png
-pluginuebersicht.status : STABLE +pluginuebersicht.status : STOPPED 
-pluginuebersicht.version : 2.1.0+pluginuebersicht.version : 2.1.999
 pluginuebersicht.min_lb_version : 1.4.3 pluginuebersicht.min_lb_version : 1.4.3
-pluginuebersicht.url_release : https://github.com/christianTF/LoxBerry-Plugin-MQTT-Gateway/archive/refs/tags/2.1.0.zip+pluginuebersicht.url_release : https://github.com/christianTF/LoxBerry-Plugin-MQTT-Gateway/archive/refs/tags/2.1.999.zip
 pluginuebersicht.url_prerelease :  pluginuebersicht.url_prerelease : 
 pluginuebersicht.description : Installiert den MQTT-Broker Mosquitto und stellt ein MQTT-Gateway für den Miniserver bereit. pluginuebersicht.description : Installiert den MQTT-Broker Mosquitto und stellt ein MQTT-Gateway für den Miniserver bereit.