Laden...

Web HMI für Hausautomation - Feedback zu Konzept

Erstellt von Tygan vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.547 Views
T
Tygan Themenstarter:in
3 Beiträge seit 2018
vor 5 Jahren
Web HMI für Hausautomation - Feedback zu Konzept

Hallo zusammen,

ich arbeite im Maschinenbau und erstelle da Visualisierungen für Maschinen und industrielle Bildverarbeitungssysteme - das sind alles Desktopanwendungen mit WPF.

Für ein privates Projekt möchte ich mich nun mal an eine Web Anwendung wagen. Bevor ich aber nun in die falsche Richtung renne wollte ich mal mein bisheriges Konzept vorstellen und fragen ob man das so machen kann oder ob mir wer mit Erfahrung im Web Bereich eine besseren Ansatz zeigen kann.

Konkret geht es um die Visualisierung meiner Haus Steuerung:

  • Messwerte und Charts von Wetterstation und Heizung
  • Jalousiesteuerung
  • Visu und Schalten der Beleuchtung

And die Steuerung komme ich über eine .Net Dll und einige Daten liegen auch in einer MariaDB.

Mein Plan ist ein Backend mit asp.net und der webapi zu erstellen das über eine REST Api die Anzeigedaten bereit stellt und Funktionen für die Steuerung von Licht und Jalousien bietet.

Als Frontend hatte ich Vue.js angedacht, durch die Trennung von Front und Backend sollte das aber auch mit anderen Tools machbar sein.

Ist das so ein sinnvoller Ansatz?

Y
102 Beiträge seit 2005
vor 5 Jahren

Darstellung von Messwerten der Wetterstation und Heizung sollte kein Problem sein. Falls du asp.net core benutzen möchtest, musst du halt schauen, ob die dll benutzbar ist. Die Frage ist, wie detailiert und genau eine Visualisierung deiner Beleuchtung machen möchtest 3D Darstellung? Schematische Darstellung? Generell solltest du aber genügend Möglichkeiten finden, dir eine Visualisierung zu basteln.

Da du aber eine Trennung des Frontends vom deiner Logik und Backends angedacht hast, sollte es im ersten Schritt egal sein, ob dein Frontend Vue.js/Angular/... oder eine Konsolenanwendung ist.

T
Tygan Themenstarter:in
3 Beiträge seit 2018
vor 5 Jahren

Danke für die Rückmeldung.

Die Kommunikations DLL gibts nicht für .net core. Werde eine Framework Anwendung brauchen.
Habe mal auf Basis dieses Beispiels experimentiert, das sieht ganz übersichtlich aus.

Die Beleuchtungsvisualisierung soll nichts aufwendiges werden, ein paar Buttons/LEDs auf dem Raumplan reichen mir.

Da du aber eine Trennung des Frontends vom deiner Logik und Backends angedacht hast, sollte es im ersten Schritt egal sein, ob dein Frontend Vue.js/Angular/... oder eine Konsolenanwendung ist.

Jop so ist der Plan, bin mir nur noch nicht sicher wo genau die Trennung zwischen Front und Backend ist. Liefert das Backend wirklich nur die Daten und die Funktionen zur Steuerung oder muss da auch Logik zur Navigation und Visualisierung rein?

Werde die Tage mal ein Paar Videos zu Vue.js und der Webapi auf Pluralsight anschauen und dann mal etwas experimentieren.

16.806 Beiträge seit 2008
vor 5 Jahren

Du kannst ASP.NET Core Problemlos für den Serverteil verwenden.
ASP.NET Core läuft sowohl mit der .NET Framework Runtime wie auch mit der .NET Core Runtime.
Einfacher wäre es, wenn Du natürlich .NET Core verwendest, weil Du dann flexibler beim Betrieb bist.
Ich hab das zB mit ASP.NET Core und .NET Core gemacht, das dann auf meiner Synology in einem Docker Container läuft.

Für die UI nimmst dann Angular, Vue oder was anderes.

Der Datenaustausch zwischen Server- und Client erfolgt dann via REST (oder WebSockets) und inhaltlich über Json.
UI-Darstellungen machst Du ebenfalls durch JavaScript, zB D3.js (das nimmt Microsoft für alle Anwendungen) oder 3D Ansichten zB auf Basis von three.js

Der Datenaustausch beinhaltet NUR Daten.
Funktionen werden rein durch REST-Calls abgebildet.

Eine Server-Komponente kann nicht die Information haben, wie die Navigation aussieht (ausser die Navigation bezieht sich auf Hypermedia, was hier unnötig ist, denke ich).

T
Tygan Themenstarter:in
3 Beiträge seit 2018
vor 5 Jahren

Du kannst ASP.NET Core Problemlos für den Serverteil verwenden.
ASP.NET Core läuft sowohl mit der .NET Framework Runtime wie auch mit der .NET Core Runtime.

Hört sich gut an, das schau ich mir mal an. In dem ASP.NET Core Beispiel ist das noch detaillierter beschrieben als in dem alten Beispiel damit sollte ich das hinbekommen.

UI-Darstellungen machst Du ebenfalls durch JavaScript, zB D3.js (das nimmt Microsoft für alle Anwendungen) oder 3D Ansichten zB auf Basis von three.js

D3.js sieht auch gut aus das sollte für meine Anwendung reichen, 3D muss dann nicht sein... werde wohl so genug zu lernen haben.

Der Datenaustausch beinhaltet NUR Daten.
Funktionen werden rein durch REST-Calls abgebildet.

Ok, gefällt mir so habe ich eine saubere Trennung.

Vielen Dank für die Erklärung.