EZR Dashboard 2017

Um mein angeeignetes Wissen durch Fachbücher und Web Tutorials in NodeJs und AngularJs zu festigen war ich auch der Suche nach einen kleinen Projekt. Nach ein paar Überlegungen viel die Entscheidung auf eine kleine Web Applikation zur Auswertung unserer Heizungssteuerung.

Zielsetzung:

  • Herstellen eine Kommunikation zum XML Interface der Möhlenhoff Alpha 2
  • Aufzeichnen der Soll- und Ist Temperaturen der einzelnen Räume
  • Aufzeichnen des Schaltzustandes des Aktors (Stellantrieb)
  • Auswertung der Daten via Webinterface
  • Node.js für das Backend
  • AngularJs AngularJs für das Frontend
  • Bootstrap für das Grundlegende Design
  • mongoDB als No-SQL Datenbank
  • PM2 für den produktiven Einsatz
  • Und mein Raspberry PI 2 sollte als Webserver eingerichtet werden

image-center

Der Startschuss fiel im Juli 17, wo ich damit anfing eine Basis Aplikation zur erstellen. In dieser Basis Applikation implementierte ich eine einfache User Anmeldung via JSON Webtoken und eine einfache REST-API zum Datenaustausch zwischen den AngulaJS Client und den Node.js Server Applikation. Danach folgten die ersten Test der Schnittstelle zum XML Interface der Heizungssteuerung.

Nach den ersten erfolgreichen des Test war die Aufzeichnung der Daten schnell umgesetzt. Während die Datenaufzeichnung EZR_Logger bereits auf meinen Raspberry PI 2 im Dauertest lief, konnte ich es kaum erwarten die Daten auch auszuwerten. Ich verbrachte jede freie Minute mit den Suchen einer geeigneten Chart Biliothek und eines geeigneten Bootstrap Templates um schnellstmöglich eine Auswertung auf die Beine zu stellen.

placeholder image 1 placeholder image 2 placeholder image 3 placeholder image 4 placeholder image 5 placeholder image 6 placeholder image 7 placeholder image 8 placeholder image 9 placeholder image 10 placeholder image 11
Click to enlarge

Ich wurde zum Glück relativ schnell fündig. Für die Line Charts setze ich auf Angular-nvD3. Bei der Fülle an vorhanden Bootstrap themes war es ein leichtes ein passendes Template(https://wrapbootstrap.com/themes/admin) zu finden. Nun konnte ich endlich durchstarten und hatte die Applikation nach nur 3 langen Abenden online.

Nach einer Woche im Testbetrieb kam mir noch die Idee, dass es nicht schlecht wäre die aktuelle Außentemperatur mit Aufzuzeichnen, jedoch hatte ich keine einfache Möglichkeit die Außentemperatur von meiner Heizung abzugreifen. Deshalb entschied mich dafür mir die benötigten Daten von der OpenWeatherMap API zu holen. Die neue Funktion EZR_Weather_logger war innerhalb kürzester Zeit integriert.

Der aktuelle Entwicklung stand EZR_Dashboard V1.0 ist auf Github zu finden.

Realisierte Features

  • Einfache Benutzeranmeldung via JSON Webtoken
  • Einfache Benutzerverwaltung
  • Auslesen der Aktualdaten aus dem XML Interface der Möhlenhoff Alpha 2
  • Aufzeichnung der ausgelesen Daten in eine Datenbank (MongoDB)
  • Kommunikation zur Openweather API (Wetterdaten Aufzeichnung)
  • Verschlüsselte Client Verbindung (https)
  • Einfache Web Client zur Auswertung der Daten

Fachbücher/Web Tutorials:

Download Source Code

dgrill.at/downloads