Hausbus3: Unterschied zwischen den Versionen
(Aus Raider wird Twix, ansonsten ändert sich nix.) |
Silsha (Diskussion | Beiträge) (- Störung) |
||
Zeile 1: | Zeile 1: | ||
{{ProjektInfoBox | {{ProjektInfoBox | ||
|name = Hausbus3 | |name = Hausbus3 |
Version vom 28. Mai 2014, 18:28 Uhr
Hausbus3 Release status: experimental [box doku] | |
---|---|
Beschreibung | |
Autor(en) | tiefpunkt |
Letzte Version | v3.0.1 |
Auf besonderen Wunsch wurde aus der kontinuierlichen Weiterentwicklung des Hausbus2 nun der Hausbus3. Er setzt auf ähnlichen Konzepten auf, ergänzt aber viel sinnvolles noch dazu.
Die Kommunikation auf dem Hausbus3 erfolgt via Message Queues, in diesem Falle MQTT. Zusätzlich ist es je nach Implementierung möglich, über HTTP und HTTPS mit kommunizieren, um auch ohne MQTT auf gewissen Dienste direkt zugreifen zu können.
Vorschläge und Kritik am Konzept sind gerne gesehen.
Message Queues
Der Hausbus2 ein Pull-Prinzip vor. Ein Teilnehmer, der über Events oder Sensorwerte benachrichtigt werden möchte, muss aktiv Geräte pollen, um den aktuellen Status zu erfahren, und somit eine eventuelle Änderung mitzubekommen.
Nachteile:
- Geräte müssen bekannt sein, nachträgliches Hinzufügen ist nur schwierig möglich.
- Polling ist doof.
Alternative: Eine Message Queue.
Nach einigen Überlegungen wurde MQTT als Protokoll ausgewählt. Gründe für die Auswahl:
- Lightweight
- Leicht zu implementieren, Libraries für viele Sprachen
- Last-Will-Funktion
- Inaktive Devices bekommen Meldungen an sie, sofern gewünscht, vom Broker gecacht und später nachgereicht.
- Authentifizierung, etc. möglich.
Topics
- /device/<devicename>/system
Systemdaten des Geräts, automatisch bereitgestellt durch die verwendete Library - /device/<devicename>/temperature
Temperatur-Sensor-Daten, falls sie anfallen. - /monitor
Topic für den Last Will,
HTTP/HTTPS
HTTP und HTTPS Kommunikation funktionieren fast ähnlich des Hausbus2. WIrd sich aber noch ändern, und dann auch ausführlicher dokumentiert.
Angebundene Geräte
tiefpunkt.vm.rzl
- Hostet den MQTT-Broker (mosquitto)
- hausbus3-exporters. Exportieren Sensordaten zu aktuell Cosm und OpenTSDB
Heizungssteuerung (heizung.rzl)
- Temperatursensoren
- Fensterstatus
Code
Basis-Implementierung: hausbus3-python
Endpunkte:
- hausbus3-raumstatus: Transferiert den Raumstatus (Hausbus1) auf den Hausbus3. Tut noch nicht.
- hausbus3-exporters: Exportiert auf dem Hausbus3 publizierte Sensorwerte zu Cosm und OpenTSDB.
- heizungssteuerung: Heizungssteuerung im Hauptraum. Durch die Nicht-Verfügbarkeit von tiefpunkt.vm.rzl aktuell nur in abgespeckter Version.