Welche Sprache für Haussteuerungsprojekt

  • Hallo,

    um mich möglichst kurz zu fassen hier meine Frage:
    Ich möchte mein raspi für eine Haussteuerung verwenden. Hierzu müssen 12 Temperatursensoren überwacht, 3 Zweiwegeventile und 4 Pumpen angesteuert werden. Außerdem müssen noch 16 Rollladentaster ständig abgefragt werden (über eine Interruptleitung).

    Meine bisherige Steuerung, die dies alles durchführt, besteht aus einer CControl II, welche ich in einer C-ähnliche Sprache programmiert habe.

    Durch die vielen Möglichkeiten, Programme auf der PI zu erstellen, bin ich am zweifeln und überlegen, mit welcher Sprache ich mein Projekt am besten ausführe.
    Basic habe ich bereits in den 80er Jahren programmiert, halte mich daher für fit. Kann Basic aber soetwas ähnliches wie Multithreading?
    In C, C++ und C# habe ich mal reingeschaut und mir einige Tutorials angesehen. Hier ist Multithreading ja kein Problem, ich müsste nur neu in das Lernen einsteigen. Und da scheinen mir die ganzen Variablen- und sonstigen Definitionen doch um einiges komplizierter.

    Könnt ihr mir Tipps geben, mit welcher Sprache ich mein Vorhaben durchführen sollte und möglichst eine Begründung dafür!
    Ich habe leider nicht so viel Zeit, die vielen unterschiedlichen Sprachen auszutesten.

    Danke für euer Verständnis und eure Hilfe.

    Heiko

  • Brauchst du wirklich Multithreading?
    Das ist normalerweise eine Box, die ich nicht anfassen wuerde, wenn es nicht unbedingt noetig ist.

    Ich wuerde dir Python empfehlen, da die Einstiegshuerde nicht vorhanden ist. C# auf dem Raspi wuerde ich nicht machen. C und C++ wenn du es hart, dreckig und schnell brauchst ;)

  • Hallo agitase,

    vielen Dank für Deine Antwort.
    Na, Multithreading habe ich auf der CControl II auch. Jedoch in einer einfacheren Form.
    Aber ich denke, wenn ich die mir gesetzten Aufgaben erfüllen möchte, brauche ich das doch. Letztendlich muss ich doch die Sensoren regelmäßig abfragen und ständig auf die Tasten der Rollläden warten.

    Aber ich wee mir mal Python näher anschauen.

    Gruß,
    Heiko


  • ... C und C++ wenn du es hart, dreckig und schnell brauchst ;)

    Ich hoffe Dir ist klar, dass Du mit dieser Aussage den Tatbestand der Blasphemie erfüllst :rolleyes:


    Ansonsten: ich denke, es kommt darauf an, wieviel Zeit und Aufwand Du investieren willst.
    Java wird meines Wissens direkt vom Prozessor unterstützt - sollte also recht flott sein.
    Ich für meinen Teil bevorzuge C und wenn es unbedingt sein muss auch mal C++ - aber das ist das Recht der Gewohnheit.

    Mit Basic sieht's vermutlich eher schlecht aus ... da war von kurzem hier im Forum mal eine Anfrage in der Richtung. Einfach mal suchen.

    Python ist für den Raspi scheinbar sehr verbreitet ... vieles wird auch mit PHP gemacht.

    Ich würd' mal in alles ein wenig reinschnuppern und mir das rauspicken, was mir am sympathischsten ist.

    ciao,
    -ds-

    PS: Hausautomatisierung gibts in Form von FHEM schon. Dazu findest Du sicherlich auch hier im Forum einiges. Ist meine Wissens in perl geschrieben - also würde sich u.U. perl ans Sprache anbieten, um FHEM evtl. selbst anpassen zu können ...

  • Multithreading wird in recht umfangreicher Weise auch von Lazarus / Free Pascal unterstützt. Eine ständig wachsende Anleitung zum Einsatz auf dem Raspberry Pi findet sich im Free Pascal Wiki unter http://wiki.lazarus.freepascal.org/Lazarus_on_Raspberry_Pi/de.

    Natürlich muss man bei der Implementation paralleler Threads einiges beachten, aber wenn man ein paar Vorsichtsmaßnahmen einhält, dann gibt es wenig Probleme. Wenn das System komplexe Steuerungsaufgaben umsetzen und gleichzeitig z. B. auf Benutzereingaben reagieren soll, dann führt am Multithreading kaum etwas vorbei.

  • Vielen Dank für die Antworten.

    Ich habe mich jetzt für Python und C entschieden. Werde mir beides einmal ansehen. Geany ist geladen.

    Python scheint mir, für mein Alter, etwas einfacher zu sein, bei C habe ich durch mein vorhandenes Programm
    die Möglichkeit, Programmteile durch geringfügige Änderungen leichter übernehmen zu können.
    Aber evtl. birgt das auch weitere Fehlerquellen.
    Mal sehen.

    Gruß,
    Heiko

Jetzt mitmachen!

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