Azure IoT - homee macht sich auf in die Cloud

Ich mag mal mein letztes Abenteuer hier kurz niederschreiben. Ich bastle recht viel mit dem home rund um das Thema Metriken und deren Visualisierung und Auswertung.

Ich arbeite mich gerade in die Microsoft Welt ein (man moege die Steine bitte spaeter werfen, die machen mittlerweile richtig gutes Zeug) und dachte daher, dass Azure IoT in dem Zug eine gute Idee waere.

Projektziel: Alle homee Geraete sollen in Azure als IoT Devices vorhanden sein und alle Attributes sollen als Status des Twins in der Cloud vorhanden sein.

Im Nachgang wird dann mal n bissl mit Machine Learning und Konsorten gespielt.

Das Projekt baut auf .NET Core 2.1 auf, dem relativen neuen cross-Platform Projekt von MS. Als API wird (mal wieder) auf der geleakten Websocket API Definition aufgebaut. Der Einfachheit halber wird ASP.NET Core verwendet, da dort sog. HostedServices angeboten werden, die man wunderbar fuer den Zweck des Websocket Connection Managements verwendet werden kann.

Zum Start wird mit GET:all die Node-Liste geholt und mit der Device Liste aus Azure abgeglichen. Das Delta wird dann hinzugefuegt. Es werden auch beim Anlegen alle Attribute ein Mal als initialer Zustand des Twins gepusht. Ab diesem Zeitpunkt wird nur noch auf Attributes gehorcht und diese werden als Teilzustand in den Zustand des Twins gemerged.

Zusaetzlich schreibe ich das Ganze dann auch noch in eine SQL Server Datenbank, damit ich Grafana drauf werfen kann und schauen kann, ob alle Messages auch brav bis zu Azure IoT durch gehen.

Aktuell ist das Projekt noch nicht open-source-ready… viel hard-coded, secrets im Quellcode, etc. Hier aber ein paar kleine Ausschnitte:

Warum erzaehl ich euch das dann? Vielleicht regt das zum Nachdenken an und “inspiriert” andere sich mit dem Thema zu befassen.
Zum Thema Kosten: Ich komme mit dem Free-Tier in Azure gut aus. Dieses Erlaubt 8000 Messages pro Tag, was ich bisher mit 30 Geraeten (u.a. Motion Sensoren) nicht erreicht habe.

Freue mich auf Feedback!

10 „Gefällt mir“

Das muss ich erst nochmal in Ruhe lesen… :grin:

Bitte weitermachen :smiley:

OT: und ja, die Hölle ist längst zugefroren

Die naechsten Schritte waeren

  • Cloud to Device Messages (homeegramme und Node Actions triggern)
  • Meine ESP32 Boards an Azure anbinden

Wenn ich das mit den ESP32 Boards hinbekomme, dann kann ich mit komplett systemfremden Geraeten meine homee nodes triggern und kontrollieren :smiley:

:grinning: das geht doch schon :grinning: meine NodeMCU sind an MQTT angemeldet und können alles in homee steuern.
VG

1 „Gefällt mir“

Woran machst du das fest? Bei mir klappt das in der 2.20 noch.

Ich bekam keine Antworten auf die Message. Hab mich später mal mit Charles auf die WebApp aufgeschaltet und hab dort dann gesehen, dass CA nur einen call auf GET:all macht und bin dann darauf umgestiegen.

Kann ein ganz simples Layer 8 Problem bei mir sein :slight_smile:
Ich hab das mal im original Post entfernt.