camueller / SmartApplianceEnabler

This gateway software turns existing devices into smart appliances.
GNU General Public License v2.0
126 stars 40 forks source link

Komponentenkommunikation mit MQTT #124

Closed camueller closed 2 years ago

camueller commented 3 years ago

Zur Integration des SAE in andere Systeme und auch zur Modularisierung des SAE selbst sollten die Komponenten (Schalter, Zähler, Requests?) über MQTT miteinander kommunizieren.

Ein vorhandener MQTT-Broker sollte verwendebar sein, aber der SAE sollte auch einen MQTT-Broker "mitbringen" um die Installation einfach zu halten.

Bei mehreren Raspis sollte es reichen, wenn lediglich einer davon mit dem SHM kommuniziert und die anderen lediglich mit Zählern und Schaltern interagieren.

Testweise erstmal MQTT auf einem Tasmota-Gerät aktivieren und schauen, wie es funktioniert: https://tasmota.github.io/docs/MQTT

Als Client bietet sich Eclipse Paho an: https://wiki.eclipse.org/Paho https://www.infoq.com/articles/practical-mqtt-with-paho/ https://www.baeldung.com/java-mqtt-client

Als Broker scheint Eclipse Mosquitto eine gute Wahl: https://mosquitto.org

Allgemeine Infos zu MQTT: https://www.hivemq.com/mqtt-essentials/

https://jaxenter.de/iot-allrounder-27208#

Weinschenk commented 3 years ago

Ich würde eher auf mosquitto setzten als auf hive...sowohl bei Hobby als auch beruflichen IIOT Projekten treffe ich den häufiger an

camueller commented 3 years ago

Ja, ich im Moment plane ich mit Eclipse Mosquito (Broker) und Eclipse Paho (Client).

henne49 commented 3 years ago

Hallo, ist es schon abzusehen ab wann mqtt kommen könnte, da ich leider mit dem HTTP Ansatz bei mir nicht weiterkomme: https://github.com/camueller/SmartApplianceEnabler/issues/144

camueller commented 3 years ago

Bisher habe ich noch nichts gemacht. Bis das implementiert ist, wenn noch viele Monate vergehen ...

camueller commented 2 years ago

Enthalten in Version 2.0.

matschie1 commented 2 years ago

Wenn ich es richtig verstanden habe, basiert die interne Kommunikation des SAE Seit 2.0 auf MQTT. Der SAE meldet auch MQTT Daten an den Broker.

Kann auch die Werteabfrage (Leistung, An/Aus, Anforderung) via MQTT erfolgen? Aktuell muss ich sonst via Node-Red die Werte aus MQTT abfragen und per HTTP request bereitstellen, das dürfte ja einfacher gehen. Außerdem: Wie kann eine externe Anforderung ausgelöst werden? Oder geht das nur via "Ampel"?

camueller commented 2 years ago

Aktuell kann der Zählerwert noch nicht vom MQTT-Broker gelesen werden und auch Schaltbefehle können noch nicht VIA MQTT weitergegeben werden. Beides ist aber geplant.

Die Web-Oberfläche des SAE kommuniziert mit dem Java-Backend via REST. Diese Calls können ja auch aus einer anderen Quelle kommen.