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
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
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?
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)
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
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??
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
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).
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.