Hallo, ich habe einen Raspberry auf dem ein Python-Programm für eine Lichtsteuerung läuft. Das Programm steuert die Beleuchtung in dem es in festgelegten, statischen Mustern Befehle über eine RS232-Schnittstelle an eine Steuerbox sendet. Zukünftig möchte ich über eine Weboberfläche die Steuerung beeinflussen. Es sollen Bilder mit der Anordnung der Lampen auf der Weboberfläche zu sehen sein. Wenn ich in unterschiedliche Bereiche der Bilder klicke sollen unterschiedliche Befehle ausgeführt werden. Es sollen pro Bild also mehrere Buttons hinterlegt sein. Nun bin ich auf der Suche nach einer geeigneten Lösung. Ich habe mir schon mal Flask angeschaut. Allerdings ist mir hier nicht ganz klar wie ich einem Bild mehrere Buttons zuordnen kann. Bevor ich jetzt unnötig Zeit investiere um mich in eine Sprache einzuarbeiten und dann hinterher feststelle das es unnötig oder ineffizient war möchte ich mal eure Meinung hören wie man das am Besten realisiert. Eventuell mit "normalem" HTML? Aber dann bräuchte ich irgend ein "Add-On" was Befehle über die serielle vom RPI senden kann. Für das einfache Ansteuern der GPIO-Pins habe ich genug Beispiele im Netz gefunden, z.B. über PHP. Aber zur seriellen finde ich nichts. Perfekt wäre es natürlich wenn ich einfach eine Variable an das vorhandene Python-Programm übergeben könnte welches ich dann einfach erweitern würde.
R. F. schrieb: > Nun bin ich auf der Suche nach einer geeigneten Lösung. Ich habe mir > schon mal Flask angeschaut. Allerdings ist mir hier nicht ganz klar wie > ich einem Bild mehrere Buttons zuordnen kann. Teile und Herrsche! In Python nimmt man für sowas Flask oder Django als Backend wie du schon richtig recherchiert hast. Flask ist mehr bottum Up, während Django behauptet, Battery Included. Ich persönlich nehme öfter Flask da meine Projekte meisten eher klein sind, aber das ist Geschmackssache. Unabhängig davon, wirst du nicht drumherum kommen ein paar Dinge in HTML [js &CSS] zu machen, auch wenn du das Flask Framework als Backend hast. Das Image versiehst du mit Areas in HTML (jinja2 Templates sind deine Freunde) und jede Area Element linkt dann auf einen anderen Endpoint (bzw. denn gleichen mit anderer Payload). Außerdem wäre es irgendwie nett, wenn deine Steuerung einen Rückkanal für den Status Quo hat.
Nutze Flask, deine Weboberfläche machst du in HTML und CSS. Oder du nimmst Blueprints wenn es größer wird. Aber einfacher und sauberer als mit Flask wird es glaube ich nicht. IMHO
Danke für die Antworten. Dann werde ich erstmal mit Flask weitermachen. Hatte bedenken das es in die falsche Richtung läuft, aber dem ist ja offenbar nicht so. Also lerne ich hier erstmal weiter mit Flask.
Ich hab mal was mit web.py gebaut. Das war eigentlich auch sehr angenehm, halt kein dickes Framework und daher eher winzig: https://webpy.org/.
R. F. schrieb: > Danke für die Antworten. Dann werde ich erstmal mit Flask weitermachen. > Hatte bedenken das es in die falsche Richtung läuft, aber dem ist ja > offenbar nicht so. Also lerne ich hier erstmal weiter mit Flask. Flask ist sicherlich eine sehr gute Möglichkeit, wenn man kein vollständiges (und entsprechend großes) Framework wie Django erlernen will. Ich persönlich kenne und nutze beide, aber viel häufiger Flask. Was die Darstellung Deines Wohnraumes mit den Lampen etc. anget, so kannst Du das mit dem SVG in HTML5 machen. Dort lassen sich dann auch hübsche Buttons erzeugen, die bei einem Klick im Hintergrund einen AJAX-Call zu Deinem Flask- oder Django-Programm machen.
Jemand schrieb: > Was die Darstellung Deines Wohnraumes mit den Lampen etc. anget, so > kannst Du das mit dem SVG in HTML5 machen. Dort lassen sich dann auch > hübsche Buttons erzeugen, die bei einem Klick im Hintergrund einen > AJAX-Call zu Deinem Flask- oder Django-Programm machen. Wenn das Projekt mal solche Dimensionen annimmt würde ich gleich zu einem Hausautomatisierungs-Framework raten, z.B. ioBroker. Die Webgui kriegst du da mühelos on top, einfach per drag&drop paar widgets reinziehen. Ich hätte dem TE schon eher dazu geraten, allerdings, er hat ja momentan nur eine Lampe und bereits eine funktionierende Lösung.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.