Forum: Mikrocontroller und Digitale Elektronik Smart Home Raspberry Pi: Visualisierung ?


von Peter091 (Gast)


Lesenswert?

Hallo community,

ich plane für meine Wohnung eine kleine Smart-Home-Steuerung mit einem 
Raspberry Pi und einem 7" Touchscreen.

Die Funktionen, die ich mir bisher grob ausgedacht habe sind folgende:

- Steuerung von diversen Aktoren (Lichter, Geräte usw.)
- Steuerung der Fußbodenheizung
- Auslesen vom Stromverbrauch
- Anzeigen von Wetterdaten und Terminen


Dafür möchte ich gerne meine eigene Visualisierung (GUI) entwickeln und 
habe bisher damit schon gute Erfahrungen auf dem Raspberry mit Python 
gemacht (Modul: PyQt mit dem QtDesigner)

Nun möchte ich mit der ganzen Sache etwas Herausforderung mit ins Spiel 
bringen und suche noch nach alternativen Lösungen zu Python.

Ich denke so an C# oder Java.


Frage an Euch: Gibt es denn Möglichkeiten mit C# oder mit Java (oder 
evtl. andere Sprachen) gute und funktioniell anspruchsvolle 
Oberflächen/Visualisierungen zu realisierien, die mithilfe von Buttons 
oder Drop-Down Menü's über ein Touchscreen angezeigt werden?

Liebe Grüße

von Lieber Anonym (Gast)


Lesenswert?

Kleiner Tipp. Openhab. Ist das was du möchtest in fertig. Und läuft auch 
auf einem RPI.

von Sascha W. (sascha-w)


Lesenswert?

Eine Möglichkeit währe auch die Oberfläche über HTML zu machen. Auf dem 
Display halt im Browser im Vollbildmodus. Hat den Vorteil das das ganze 
auch von anderen Geräten steuerbar wird ohne alles noch mal neu zu 
gestalten.

Sascha

von Peter091 (Gast)


Lesenswert?

Lieber Anonym schrieb:
> Kleiner Tipp. Openhab. Ist das was du möchtest in fertig. Und
> läuft auch
> auf einem RPI.

Danke für den Tipp. Da ich aber die Herausforderung suche und dabei 
gleichzeitig eine neue Programmiersprache (nach Python) erlernen möchte 
würde ich diesen Weg doch ungerne wählen.

@Sascha:
HTML ist eine gute Alternative, jedoch ist HTML nur eine "Anzeige". Es 
sollte dahinter natürlich noch ein Programm laufen, welches für die 
ganzen Funktionen zuständig ist (z.B. GPIO ansteuern, usw). Eben dieses 
"Programm" sollte dann auch mit einer GUI laufen.


Erweiterbar sollte das ganze dann noch mit einer App sein, von welcher 
ich die ganze Steuerung über mein Smartphone bediene. Über diverse 
Schnittstellen sollte das in Echtzeit möglich sein.


Wie gesagt, ich weiß dass es solche Bausteine und Apps schon in komplett 
fertig gibt.
Da ich mir aber die Zeit gerne damit vertreibe neue Sachen zu 
erlernen/auszuprobieren würde ich das Projekt gerne "selbst entwickeln" 
und dabei noch eine neue Programmiersprache lernen.


Die Frage ist nur, ob sich dafür Java oder C/C++/C# am besten eignet?

von Skyper (Gast)


Lesenswert?

Wie wäre es mit C++ und Qt... und wenn es bei der Anzeige "mehr" sein 
soll, dann gibt es noch Qwt... und du hast ja mit Qt schon Erfahrung. 
:-)

von Wolfgang (Gast)


Lesenswert?

Peter091 schrieb:
> Es sollte dahinter natürlich noch ein Programm laufen, welches für die
> ganzen Funktionen zuständig ist (z.B. GPIO ansteuern, usw). Eben dieses
> "Programm" sollte dann auch mit einer GUI laufen.

Du willst doch nicht wirklich deine ganzen GPIO-Leitungen da hin führen, 
wo das Display für die GUI ist?

Da ist es doch wesendlich günstiger, GUI und GPIO auf zwei getrennten 
Rechnerchen laufen zu lassen, die über (W)LAN verbunden sind (z.B. 
ESP8266 als Access Point, wenns nichts großes werden soll)

von jürgen (Gast)


Lesenswert?

ich würde dir Lazarus empfehlen. Damit ist GUI-Entwicklung bequem

 Grüße Jürgen

von Heinz (Gast)


Lesenswert?

Meine Empfehlung:

Apache, PHP, MySQL, Ajax

Steuerung in php schreiben, die legt Daten in die MySQL Datenbank
Datenhaltung in MySQL
Webseite ajax, jquery, liest Daten aus der MySQL Datenbank
Zusätzlich noch volkszaehler.org als Datelogger zum Kurven anzeigen

von Heinz (Gast)


Lesenswert?

Ich nochmal:

Vorteil der Lösung:
Kannst du auf deinem Smartphone, PC usw. bedienen, auch aus der Ferne.
Anzeige kann man auf einem billigen Tablet über WLAN machen,
welches bspw. fest an der Wand installiert ist.

Eine in C, C++ programmierte Lösung ist bei weitem nicht so flexibel.
Willst du das wirklich??

von Michael U. (amiga)


Lesenswert?

Hallo,

Peter091 schrieb:
> Lieber Anonym schrieb:
>> Kleiner Tipp. Openhab. Ist das was du möchtest in fertig. Und
>> läuft auch
>> auf einem RPI.
>
> Danke für den Tipp. Da ich aber die Herausforderung suche und dabei
> gleichzeitig eine neue Programmiersprache (nach Python) erlernen möchte
> würde ich diesen Weg doch ungerne wählen.

mein Bekannter diskutiert gerade mit OpenHAB.
Wenn man mehr als irgendwas übernehmen will, wird es wohl zur 
Herausforderung.
Verhalten des Systems bei Ausfall von OpenHAB durch defekt o.ä.
Verhalten des Systems bei Neustart von OpenHAB.
Zeitsteuerung ("Schaltuhr"), wo man schnell auf ein anders Zeitprogramm 
switchen will und Rückkehr zu normal (Party-Taste).
Datenbankanbindung für Persistenzen usw.

Gruß aus Berlin
Michael

von Paul F. (zwanni)


Angehängte Dateien:

Lesenswert?

Ich bin auch seit einem Jahr dran meine komplett eigene Steuerung zu 
entwickeln und mache es auf einem Pi mit PHP, Datenbank, µC mit LAN für 
die Ein-/Ausgänge, Bedienterminal usw. Es macht schon Spaß und immer 
wenn man mal Lust hat, baut man was neues ein. Ich muss mich aber meinen 
Vorrednern anschließen, mit einer stationären Lösung musst du für 
Browser/App alles nochmal extra aufbauen. Das würde ich zumindest von 
Anfang an einplanen. Es mag Menschen geben die so eine Ausdauer haben, 
mir ist es selbst so schon manchmal zu viel Arbeit. Meine Einzige 
stationäre Bedienstelle ist ein Touchpanel ohne Display mit reiner 
Schaltzustand Anzeige/Steuerung (Bild noch aus der Entwicklung).

: Bearbeitet durch User
von K. J. (Gast)


Angehängte Dateien:

Lesenswert?

Jup bei mir das selbe Lighttpd + PHP + RRD + Mysql, allerdings hab ich 
keine Bedieneinheit am LCD sondern nur eine Anzeige, 7" war mir zu klein 
und größere LCDs mit Touch sind zu schwer zu bekommen und Teuer.

Fals es jemanden interessiert auf dem LCD ist die Anzeige mit minimalen 
Xserver und Conky verbraucht unter <10MB RAM und das Conky script last 
sich zur Laufzeit verändern, und übernimmt die Änderungen selbstständig.

Als Bedienelement hab ich nur einen Kapazitiven Slider um die Graphen 
durchblättern zu können, Rest Steuere ich per PC,Handy oder halt die 
normalen Schalter.

von Axel (Gast)


Lesenswert?

Peter091 schrieb:
> eine neue Programmiersprache (nach Python) erlernen

Python ist keine Programmiersprache sondern eine Krankheit ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.