Welche Programmiersprache für GUI bezogene Hausautomationssoftware

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Moin erstmal an allle,

    Ich bin neu hier im Forum und totaler Linux/Raspberry Neuling.

    Als Neuling hat man natürlich so einige Fragen, also komme ich gleich zur Sache:

    Ich möchte eine Hausautomations-Software entwickeln, die sich auch über ein
    Touchdisplay bedienen lassen soll.
    Wichtig dabei ist für mich das es vorallem Optisch sehr gut aussieht.
    (funktionieren tun ja viele Programme).
    Desweiteren soll die Kommunikation mehrerer Raspy`s untereinander funktionieren.
    Dachte entweder Raumvernetzung oder Systemvernetzung(Licht,Heizung, etc.).

    Welche Programmiersprache ist da zu empfehlen?
    Habe Bisher nur Anfänger-Fortgeschrittene Kenntnisse in der Web-Entwicklung(HTML, CSS, javascript).

    Gibts da vielleicht auch gleich gute Literatur für Anfänger zum lernen.


    Habe nochmal `n paar kleine Fragen, möchte aber nicht für jede ein Topic erstellen:


    1.Kann man mit wiringPi auch die direction eines einzelnen Pins festellen statt nur über readall?

    2.Kann man bei den 433Mhz Funksteckdosen auch die Funkdimmer von Elro einbinden?

    3.Gibt es einen Bidirektionalen Funkbus den ich mit dem Raspberrypi verwenden kann um bsp. Tempartursensoren in einer Schalterdose abzufragen?

    4.Kann ich mit dem Raspberrypi 16A AC messen?

    Einmal editiert, zuletzt von bimbo (28. Januar 2014 um 22:12)

  • Welche Programmiersprache für GUI bezogene Hausautomationssoftware? Schau mal ob du hier fündig wirst!

  • ich denke mal das dir bekannteste sollte javascript/css/php/html sein
    damit kann man es im prinzip auch realisieren
    und schön ausschaun tut es dann auch ;)

    ansonsten könnte dich GTK: http://www.gtk.org/ interresieren ;)

    (I) mehr käse = mehr löcher
    (II) mehr löcher = weniger käse
    (I) = (II)
    mehr käse = weniger käse
    :denker:

  • Wow wie schnell man hier antworten bekommt.


    Also momentan bastle ich auch grad an einer WebGUI.
    Problem dabei ist halt das man (grad bei mobile devices) sehr auf die Hardware beschränkt ist.
    Damit meine ich z.B. HTML5 unterstützung bei älteren Geräten wie bei mir der iPod touch 2g.

    Außerdem kann man mit PHP ja nur sehr beschränkt auf Eingaben reagieren die nicht via
    Web sind (GPIO etc.).
    Des weitern ist`s doch relativ schwer(zumindest aktuell für mich) auf wichtige Dinge schnell genug zu abzuarbeiten.(Brandmelde, Einbruchmelde, "Zeitschaltuhr/Timer").

    Zusätzlich wäre ja cool wenn man quasi logische Verknüpfungen direkt über GUI festlegen könnte.
    Bsp. Taster 21 schaltet Leuchte 34.

    Naja und das Rad möchte ich ja auch garnicht neu erfinden, aber vlt möchte ich ein neuer Hersteller sein;)

    Der Entschluss was eigenes neues zu entwickeln stand bei mir (bestimmt auch vielen anderen) schon mit der beschaffung des Raspberry Pis fest.

    Ansonsten könnte ich ja auch einfach bestehende Systeme wie EIB/KNX , Loxeone oder FHEM oder was es sonst noch alles für gute Sachen gibt nutzen.

    back to topic:

    welche Progammiersprache ist denn jetzt eher zu empfehlen, ich denke die Auswahl könnte man ja auf Python und C beschränken.
    Wie gesagt ich möchte eine eigene günstige Alternative erschaffen.

  • Ich würde Ruby mit in die Runde schmeißen, RPI ist nicht gerade Ruby-Teritorium, aber für Webprojekte wie du sie im Kopf hast eignet sich Ruby on Rails ziemlich gut. Performancetechnisch scheint das auf dem Pi auch gut zu laufen.
    Relativ einfach zu erlernen, es steht eine HighLevel-Webumgebung zur Verfügung was die ganzen Sachen einfach macht was die Oberfläche angeht (mit Twitter Bootstrap ist dann auch das Layout schon fast fertig und für alle Geräte optimiert (auch attomatisch)).
    Python hat ähnliches ist aber im Web-bereich nicht so erfolgreich, und wie gut das mit den ganzen coolen Features zusammenarbeitet weiß ich da nicht.

    C selbst würde ich absolut nicht nehmen dafür, C++ ginge, aber für Web???
    insgesamt kannst du mit allen wunderbar mit den GPIOs arbeiten, auch mit PHP, ist bloß ein bisschen mehraufwand, aber es ist sicher weniger Aufwand als eine Weboberfläche mit C/C++ zu schreiben.
    Ruby und Python haben eine Verknüpfungsebene für C/C++ um auf deren Funktionen zugreifen zu können, PHP kennt sowas auch irgendwie, hab ich aber nie verwendet.

  • Dachte eig an eine "normale" Software für Raspberry mit touchscreen und zusätzlich web für mobile.

    Wie könnte man den nur mal als beispiel GPIO`s miteinander verknüpfen?


  • Der Geschmack "Perl" ist dabei aber eher für die Oldies unter uns, oder?

    Ich behaupte dass Perl mit Moose Python und Ruby überlegen sind - schneller ist es eh...

    Und CPAN ist nach wie vor das Mass aller Dinge was Modul-Repositories angeht.

    Dass eine Menge Leute sehr schlechten code mit Perl erstellt haben (und erstellen) dafür kann Perl (fast) nichts.

    Ok - in der wirklichen Welt ist es eine Frage des Geschmackes welche Skriptsprache man bevorzugt, aber Perl hält sowohl als Sprache als auch als Ökosystem mit Python und Ruby locker mit.

    Ich empfehle mal einen Blick in Modern Perl.

  • Du solltest dir definitiv mal Node.js anschauen. Es ist sehr gut geeignet für das was du vorhast. Gerade wenn Du schon JavaScript Kenntnisse hast. Es gibt eine Menge einfach einzubindender Pakete mit denen Du zum Beispiel die gpio pins des Raspberry Pi ansprechen kannst. Ein Paar weite Gründe für warum Node.js, kannst du hier nachlesen.

    Vieles was du ansprichst kann pimatic bereites: Logische Verknüpfung, GPIOs schalten, Temperatur auslesen, Funksteckdosen schalten,...

    Ich würde mich freuen wenn Du dich gegen die grüne Wiese entscheiden würdest und in die Programmierung einsteigst. Glaube mit, es gibt noch genug zu tun und durch die Modualisierung von pimatic kannst Du jeden teil selbst gestalten. Wenn Du möchtest kannst du sogar dein eigenes Frontend entwickeln.

    Einmal editiert, zuletzt von sweetpi (30. Januar 2014 um 09:52)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!