Darstellungen aus C-Prg im Browser sichtbar

  • Hallo Forenteilnehmer,


    ich hoffe, meine Überschrift klingt verständlich.


    Folgender Sachstand:
    Ich plane und programmiere eine Haussteuerung in C. Diese steuert meine komplette Heizungsanlage (Kaminkessel, Gastherme und Solarkollektoren), sämtliche Rollläden, Markisen, diverse schaltbare Steckdosen etc.
    Die Programmierung in C ist zwingend, da ich das Programm aus meiner aktuellen Steuerung verwenden möchte.


    Da meine geplante Steuerung keinen Bildschirm oder ein sonstiges Ausgabegerät besitzt, sollen die Ausgabedaten (Temperaturen, Schaltzustände der Ventile, Einstellungen etc.) über andere im Haus vorhandene Geräte (iPad, Laptop mit Win7, Smartphone) über den Browser erfolgen. Die Verbindung erfolgt über WiFi bzw. LAN.


    Trotz diverser Recherche im weiten Netz komme ich nicht richtig weiter. Hier also meine Fragestellung:


    Wie kann ich innerhalb meines C-Programmes eine html-Darstellung ermöglichen, so dass ich mit den anderen Geräten auf meine Haussteuerung zugreifen kann? Also, der Browser (Safari, IE, Chrome etc) soll quasi als Bildschirm fungieren.


    Noch ein Hinweis: Apache2 ist installiert und funktionsfähig. Eine Test-Html-Seite kann wie gewünscht aufgerufen werden.


    Hoffe auf ein paar handfeste Hilfen.


    Vielen Dank schon mal im Voraus.


    Heiko

    Edited once, last by heikoho ().

    • Official Post

    also du hast ein C Programm welches die ganzen daten sammelt und notfalls änderungen vornimmt, richtig? Ich würde eine Datenbank bauen wo Temp.werte, Einstellungen usw. gespeichert. Desweiteren ein webinterface (php, python) welches die werte ausliest, diagramme erstellt, Knöpfe zum schalten anbietet usw.
    Dein C Programm zieht sich die Daten aus der Datenbank und handelt dementsprechend.

  • Moin der Herr ...


    Fangen wir doch mal mit etwas Basiswissen an:


    Code
    Die Programmierung in C ist zwingend, da ich das Programm aus meiner aktuellen Steuerung verwenden möchte.


    Was ist das und was tut das?
    Ist das was Fertiges oder selbst Gebautes?
    Nur mal so ganz grob ...


    cu,
    -ds-

  • Hallo dreamshader,


    ich weiß zwar nicht, was das mit meiner Frage zu tun hat, aber ich möchte dir gerne antworten:


    Die aktuelle Steuerung habe ich 2005 begonnen selbst zu programmieren. Und zwar für die C-Control von C.....
    Das System läuft bis heute einwandfrei und ist bis 2011 von mir selbst ständig verbessert und erweitert worden.
    Bisher wurden die Darstellungen auf einem 3"Touchscreen ausgegeben.
    Und da das bisherige Programm sehr C-ähnlich ist, kommt für mich nur dieser Umstieg in Frage.


    Und jetzt fragt bitte nicht, warum ich umsteige und warum ich nicht Perl, Python, C++ oder sonsteine der vielen
    Möglichkeiten verwende. Ich habe mich einfach dafür entschieden.


    Gruß,
    Heiko

    • Official Post

    also willst du am ende mit dem Programm eine "html" Seite schreiben, die die infos enthält (die jetzt auf dem 3"" Bildschirm zu sehen sind) und somit via Browser aufgerufen werden kann?


  • Hallo Heiko,


    danke für die Info.
    Was ich mit meiner Frage bezwecke: es ist perfekt so wie es ist :) ...


    Es hätte ja durchaus sein können, dass Du das C-Programm das Deiner Steuerung als Sourcecode beilag, erweitern willst.
    Es hätte genauso gut sein können, dass Du versuchst, ein exisitierendes Binary zu erweitern.
    In beiden Fällen wäre es sicherlich relativ aufwendig geworden aber ... ich weiß, ich wiederhole mich ... ist es perfekt.


    Außerdem hast Du mich damit schon mal wissen lassen, dass Du bereits Programmiererfahrung hast.


    Jetzt ist die nächste Frage, wie das Ganze dann aussehen soll.
    Du kannst - das wäre jetzt zum Einstieg mal der einfachste Weg - eine HTML-Seite per Hand erstellen, und dort z.B. einen Button "Licht aus" und einen "Licht an" platzieren.
    Die Buttons sind in einer FORM die als action method, z.B. POST, hat platziert.
    Das Target dieser Form ist ein sog. cgi.
    Das wiederum ist Dein C-Programm, das das Licht abhängig vom geklickten Button, ein bzw. ausschaltet.
    Dazu musst Du die Argumente des Aufrufs aus den übergebenen Umgebungsvariablen auswerten.
    Dazu findest Du z.B. hier weiterführende Informationen.


    So, ich glaube, das reicht erst mal für den Anfang ...
    Nicht, dass Du mir noch einen Hitzkoller vor lauter Informationen bekommst ;) ...


    ciao,
    -ds-

  • Hi,


    danke für Eure Antworten - und das trotz der Hitze.


    dbv: Ja, genau so stelle ich mir das vor


    dreamshader: Danke für Deine Ausführungen. Werde mir mal Deine weiterführenden Informationen anschauen.
    Prinzipell ist das bereits ein guter Lösungsvorschlag. Einfach eine Standard-Webseite mit HTML erstellen und dort
    nur die Tasten/Buttons und veränderlichen Anzeigen anpassen.
    Ich mache mir mal genauere Gedanke über das Wochenende.


    Danke nochmals.


    Heiko


  • Hallo Heiko,
    ja ... so in der Art ;) ...


    Aber mach Dir im Moment noch keine Gedanken über die Realisierung. Wenn Du das Prinzip von cgi verstanden hast und in der Lage bist, den Querystring auszuwerten, dann sehen wir weiter.
    Dann hast Du aber bereits den geistig aufwändigsten Part hinter Dir.
    Falls Du übers WE ein C-Programm einbindest aber einen Fehler bekommst: mach Dir keinen Kopf, das ist bei Deinem Wissensstand über cgi normal und hat nichts weiter zu bedeuten.


    cu,
    -ds-