Ich würde gerne eine IO-Instanz erstellen die sich die Daten von einem MQTT-Server abholt. Zur Zeit nutzte ich einen Webhook aber dafür braucht man immer die Freigabe nach außen was nicht immer möglich ist.
Jetzt die Frage gibt es eine Offizielle Version von einem MQTT-Client den man aus dem Modul ansprechen kann? Der in Symcon integrierte Server bringt mir ja hier nichts.
Ein Modul soll ja nicht von anderen abhängig sein.
Habt ihr einen Tipp wie ich das am besten gelöst bekomme.
Ich nutze seit kurzem ein Python Service welches per API das Script mit Parametern aufruft.
Das Python Service speichert die letzten Werte in einer sqlite DB und übermittelt sie an symcon nur bei Änderung und wenn IPS nicht erreichbar ist werden die letzten Werte zwischengespeichert und später übermittelt wenn IPS wieder da ist.
Wenn ich dieses Modul nutze wieder spricht es doch den Regeln zur Modulerstellung, dass Module in sich geschlossen sein sollen und nicht von anderen Modulen abhängig sind.
Stimmt so nicht.
Auszug, best Practice 1.6:
Ein Modul kann ohne sinvolle Funktion sein, solange keine anderen installierten Bibliotheken vorhanden sind. Sie muss aber darauf Hinweisen und trotzdem fehlerfrei installierbar sein
Es gibt auch einige andere Module welche mein IPSNetwork Modul benötigen, weil sie als Parent einen Websocket-Client benötigen.
Michael
Wäre es nicht wünschenswert wenn jetzt MQTT als Server in IP Symcon unterstützt wird, das es dann auch eine offizielle MQTT Client Instanz von IP Symcon gibt?
Solange es keine verschlüsselte Verbindung für MQTT gibt hab ich die weiteren Anstrengungen es in mein Modul einzubauen erst mal verworfen. Aber In der Richtung soll ja auch was kommen?!