Hi,
ich bin gerade dabei ein EnOcean Gateway auf Basis eines Raspberry Pi zu erstellen.
Ich mache das auf einer anderen Hardware als die auf der SmartHomeNG läuft, da ich dort wo die SmartHomeNG steht suboptimale Sende-/Empfangsbedingungen für EnOcean habe. Das Gateway kann ich überall platzieren, wo ich WLAN Versorgung habe. Um das Gateway mit SmartHomeNG kommunizieren zu lassen, wollte ich auf ein Standardprotokoll zurückgreifen und bin bei MQTT gelandet.
Die MQTT Kommunikation auf dem Gateway habe ich implementiert und kann über Tools wie mqtt-spy über einen Broker (mosquitto) auch sauber mit einem Gateway kommunizieren.
Nun komme ich zur SmartHomeNG Seite. Es gibt ein mqtt Plugin. Es ist seit 2015 (Aufnahme in smarthome.py) nicht gepflegt worden. Weiterhin erscheint mir das Pluin etwas simpel gestrickt zu sein (ohne Anspruch auf Vollständigkeit):
-----------------------------------------------------------------------------------
Feature Liste für das neu zu entwickelnde Plugin (work in progress):
Ich bin mir nicht sicher ob und wie das Plugin mit großen binären Daten umgehen soll. MQTT unterstützt im Prinzip die Übertragung von Bildern, Dateien oder anderen komplexen Datentypen.
Wenn Ihr noch wünsche für die Feature Liste habt, raus damit!
ich bin gerade dabei ein EnOcean Gateway auf Basis eines Raspberry Pi zu erstellen.
Ich mache das auf einer anderen Hardware als die auf der SmartHomeNG läuft, da ich dort wo die SmartHomeNG steht suboptimale Sende-/Empfangsbedingungen für EnOcean habe. Das Gateway kann ich überall platzieren, wo ich WLAN Versorgung habe. Um das Gateway mit SmartHomeNG kommunizieren zu lassen, wollte ich auf ein Standardprotokoll zurückgreifen und bin bei MQTT gelandet.
Die MQTT Kommunikation auf dem Gateway habe ich implementiert und kann über Tools wie mqtt-spy über einen Broker (mosquitto) auch sauber mit einem Gateway kommunizieren.
Nun komme ich zur SmartHomeNG Seite. Es gibt ein mqtt Plugin. Es ist seit 2015 (Aufnahme in smarthome.py) nicht gepflegt worden. Weiterhin erscheint mir das Pluin etwas simpel gestrickt zu sein (ohne Anspruch auf Vollständigkeit):
- Empfangene Strings werden immer ale Byte-Array an SmartHomeNG weitergereicht.
(Das sieht eher nach einer Python 2.7 kompatiblen Implementierung aus und macht innerhalb von SmartHomeNG zum Teil Probleme) - Es wird immer die aufwendigste Kommunikation mit dem Broker gewählt (Quality of Service 2)
- Es gibt bei ausgehenden Messages keine Möglichkeit, diese als 'to be retained' zu kennzeichnen
- Es gibt keine Möglichkeit einen 'Last Will' zu setzen
-----------------------------------------------------------------------------------
Feature Liste für das neu zu entwickelnde Plugin (work in progress):
- Smart Plugin
- Multi Instance fähig
- Unterstützung aller drei QoS Varianten
- 'to be retained' Unterstützung für Nachrichten
- Möglichkeit für den Client einen 'Last Will' zu setzen
- Vollständiges Type-Casting für ein- und ausgehende Nachrichten
- evtl. Möglichkeit das Datenformat des ausgehenden Paketes zu beschreiben (für Type-Casting)
- Unterstützung für Verschlüsselung der Kommunikation
- Unterstützung für clean/persistent sessions
- Das Plugin öffnet nur eine Client Session zum Broker
- Items in der Item-Tree Struktur publizieren (Abhängig von einem acl Attribut des jeweiligen Items (no, ro, rw)
Ich bin mir nicht sicher ob und wie das Plugin mit großen binären Daten umgehen soll. MQTT unterstützt im Prinzip die Übertragung von Bildern, Dateien oder anderen komplexen Datentypen.
Wenn Ihr noch wünsche für die Feature Liste habt, raus damit!

Kommentar