Oberfläche für Küchen-Zentrale

  • Hallo liebe Maker,

    Ich habe mir eine kleine Medienzentrale für die Küche gebastelt. Die Hardware funktioniert nun und ist fertig für den Einsatz.

    Als Software hab ich mir folgendes vorgestellt:

    Die Hauptfunktion soll ein Internetradio sein.
    Der Pi soll sich beim Start gleich mit einem Internet-Radio verbinden und abspielen. Die Bedienelemente (leiser ,lauter, stationswechsel ..) sollen auch gleich verfügbar sein.

    Terminkalender

    Desweiteren sollen die aktuell anfallenden Termine (webcal) angezeigt werden. (Kalenderblatt oä)

    Chefkoch

    Über einen Browser soll die Webseite http://www.chefkoch.de aufrufbar sein

    Bildschirmschoner

    Bei Normalbetrieb soll der pi nach einer Minute Bilder von einem Netzlaufwerk als Diashow anzeigen.

    Im Moment denke ich daran, das Raspbian in einen Kiosk-Mode zu zwingen und die Anwendung komplett selber zu schreiben. Da hock ich dann aber wohl bis Februar dran.

    Oder hat jemand eine Idee, wie ich mir so eine Oberfläche einfacher zusammenbauen kann?

    Das Setup:

    • Raspberry Pi 3 Model B ARM-Cortex-A53
    • Raspberry Pi 7-inch touch screen display
    • HiFiBerry Amp+
    • WiFi USB 802.11n
    • LEICKE Netzteil 60W 12V 5A
  • Hallo KopakRas,

    so eine GUI ist doch mit den passenden Tools schnell programmiert.

    Wenn Du Dich noch auf keine Programmiersprache festgelegt hast, dann empfehle ich Dir Lazarus / FreePascal.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    • Offizieller Beitrag

    Wenn Du Dich noch auf keine Programmiersprache festgelegt hast, dann empfehle ich Dir Lazarus / FreePascal.

    Und ich brainfuck und whitespace....Wie kommt man auf solche Sprachen? Der Support für diese Sprachen wird hier im Forum überwältigend sein :conf:

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • hast du Programmiererfahrung? Wenn ja, mit welchen Sprachen?

    Vom Aufbau einer ALU mit Dioden, über direkte Programmierung in Opcodes. Assembler (8051, 6510, 68000, 80x86, Cyclone, TMS320) desweitern über Basic, Pascal, Delphi, C, C++, Visual Basic, Java, Python, Javascript, PHP.

    Ja und auch HTML+CSS kenn ich zu genüge, arbeite z.Z. als Full-Stack-Webdeveloper, devop oder was auch immer :)

    Aktuell denke ich an wxPython zur Umsetzung.
    Aber der Vorschlag von Timm Thaler, DashUI zu nutzen, klingt sehr interessant.

  • Na ja, wxPython ist unter Python IMHO das am wenigsten eingesetzte Framework... (nutzt das überhaupt noch wer?). Wenn du Python nutzen möchtest, dann macht der Einsatz von Kivy oder Python + Qt deutlich mehr Sinn.

    Da stimme ich zu. Zu wxWidgets/wxPython: Glaube kaum, selbst unter C++ nicht mehr so verbreitet... Ich hatte damals als mir tkinter zu blöd wurde mit wxPython weiter gemacht. Der Port nach Python 3 ist AFAIK immer noch nicht ganz fertig (Project Phoenix, https://wiki.wxpython.org/ProjectPhoenix), jedenfalls war das immer ein Trauerspiel. Würde ich nicht mehr drauf setzen.

    Aaaaber:

    Zitat von Guido van Rossum

    wxPython is the best and most mature cross-platform GUI toolkit, given a number of constraints. The only reason wxPython isn't the standard Python GUI toolkit is that Tkinter was there first.

    Un der BDFL hat immer Recht :angel:

    Edit: natürlich nicht ganz. Man betrachte die Kommentare dieser StackOverflow-Antwort: https://stackoverflow.com/a/4048416 ;)

    Ich bin ja ein Verfechter des Web-based UI und würde diesen Weg einschlagen. Wenn du eh Webdev bist, solltest du hier schneller gute Ergebnisse erzielen können.

  • Hallo dbv,

    Und ich brainfuck und whitespace....Wie kommt man auf solche Sprachen? Der Support für diese Sprachen wird hier im Forum überwältigend sein :conf:

    Lazarus ist deswegen naheliegend, weil z.B.

    • 4 von 7 Lazarus-Programmierer einen Raspberry Pi besitzen und diesen ebenfalls in Lazarus / FreePascal programmieren
    • seit ein paar Wochen kann man auch Arduinos über Lazarus / FreePascal programmieren
    • der vom FreePascal-Compiler erzeugte Binärcode ist recht gut
    • es gibt ein Lazarus-Forum, das zunehmend auch KnowHow und Unterstützung bzgl. Raspberry Pi bietet
    • dort verzettelt man sich nicht in Programmiersprachen - man entwickelt einfach nur Lösungen
    • es gibt kaum eine andere Programmierumgebung, mit der man in so kurzer Zeit ansprechende und funktionale GUIs erstellen kann
    • etliche Packages (meist mit sehr guten Tutorials) können bei Bedarf in eigene Entwicklungen übernommen werden

    Ich denke, man darf ruhig mal einen Blick über den Tellerrand werfen, und braucht nicht immer versuchen, mit BASH und Python unsinnig viel Zeit zu verplempern.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (27. November 2017 um 19:27)

  • Ich darf dann mal ergänzen:

    • seit ein paar Wochen kann man auch Arduinos über Lazarus / FreePascal programmieren

    Nicht nur Arduinos, sondern prinzipiell jeden ATtiny und ATmega von Atmel aus der 8-bit-Reihe. Die Xmegas sollen angeblich auch gehen, hab ich aber nicht probiert.

    • der vom FreePascal-Compiler erzeugte Binärcode ist recht gut

    Besser mitunter als der vom GCC, wenn auch nicht so gut wie der vom Ada-Compiler.

    • es gibt kaum eine andere Programmierumgebung, mit der man in so kurzer Zeit ansprechende und funktionale GUIs erstellen kann

    Und man hat die Auswahl zwischen GTK, Qt4, Qt5 oder ganz abgefahren der MSE-IDE.

  • Wenn du Python nutzen möchtest, dann macht der Einsatz von Kivy oder Python + Qt deutlich mehr Sinn.

    Was mich an Python etwas verstört: Früher(tm) hieß es immer, Basic ist Pfui, weil das im Interpreter läuft, dadurch lahm ist und der Interpreter Ressourcen verschwendet. Was nicht stimmte, denn es gab und gibt durchaus gute Compiler für diverse Basic-Dialekte.

    Heute läßt man einen Dreizeiler für eine CGI-Ausgabe in Python laufen, ruft dafür einen um mehrere Größenordnungen ressourcenfressenderen Python-Interpreter auf, und kein Mensch stört sich an der miesen Performance.

    Haben wir uns dran gewöhnt, miese Softwareperformance einfach durch immer leistungsfähigere Hardware zu ersetzen? Oder hab ich da was übersehen?

  • LCARS ;)

    Hab ich für meine Haussteuerung versucht und musste feststellen: Das angeblich gute Design ist bei kleinen Displays nicht wirklich brauchbar - und versagt bei flexiblen Displays (Webseite auf verschiedenen Touch-Devices und am FHD-Monitor, zugegeben hier nicht gefragt) völlig, weil nicht sinnvoll skalierbar.

    Stellte sich am Ende als genauso unsinnige Idee raus wie seinen Echo Dot "Computer" zu rufen... ;)

  • Heute läßt man einen Dreizeiler für eine CGI-Ausgabe in Python laufen, ruft dafür einen um mehrere Größenordnungen ressourcenfressenderen Python-Interpreter auf, und kein Mensch stört sich an der miesen Performance.

    Das ist aber Gejammer auf Milli- bis Mikrosekundenebene, und bei der durchschnittlichen Internetgeschwindigkeit hier in DE kommt's darauf jetzt echt nicht an.

  • Das ist aber Gejammer auf Milli- bis Mikrosekundenebene, und bei der durchschnittlichen Internetgeschwindigkeit hier in DE kommt's darauf jetzt echt nicht an.

    Gut das ist jetzt nicht Python, aber: Ich habe für meine Haus"steuerung", die erstmal nur verschiedene Parameter (Heizung+Solaranlage, Energieverbrauch, Gewächshaus) erfaßt und die Daten visuell aufbereitet, mit oben erwähntem Node-Red plus Dash-UI angefangen. Das lief auf dem Raspi ganz passabel und das UI sah auf dem PC im Browser auch ansprechend aus. Gut, es zog auf dem Raspi im Leerlauf schon 8% Prozessorleistung.

    Dann hab ich das auf dem Tablet versucht - und die getesteten Browser brauchten mitunter 20-30sec um überhaupt das Menu zum Umschalten der Oberfläche zu öffnen. Auf dem Smartphone lief es gleich gar nicht. Und auf dem Raspi im damals Iceweasel trieb das UI den Prozessor in den Blackout, da half nur Hardware-Reset.

    Mit FHEM oder Openhub und dessen UI ein ähnliches Desaster.

    Dann hab ich die gleiche bzw. inzwischen eine höhere Funktionalität mit Lazarus in Pascal geschrieben, mit CGI-Modulen für die Belieferung der Webseiten mit Inhalt und Diagrammen und minimalem Javascript in den Webseiten. Das läuft in jedem Browser auf jedem Gerät flüssig, und die Auslastung des Raspi schwankt zwischen nicht meßbar und 1-2%.

    Und der Witz: Abgesehen vom damals nicht vorhandenen Netzwerkzugriff hätte ich Dir das gleiche UI (in systembedingt geringerer Auflösung und Farbtiefe) vor 20 Jahren auf dem Amiga 500 geschrieben und das hätte auch funktioniert. In AmigaBasic. Im Interpreter.

    Ich mein, der Raspi hat 10x mehr Bildschirmpixel, 100x höheren Systemtakt, 1000x mehr Arbeitsspeicher, 10000x mehr Plattenspeicher als der Amiga 500 - und dann zwingt eine simple Anwendung, die ein paar Messwerte grafisch darstellen soll ihn in die Knie.

  • Hallo,

    Zitat


    Haben wir uns dran gewöhnt, miese Softwareperformance einfach durch immer leistungsfähigere Hardware zu ersetzen?

    Ja.

    Zitat


    Oder hab ich da was übersehen?

    Ja.

    Zitat

    Heute läßt man einen Dreizeiler für eine CGI-Ausgabe in Python laufen,

    Nein. Python+CGI möchtest du seit ca. 10 Jahren nicht mehr einsetzen, weil technisch veraltet. Stand der Dinge ist bei Python WSGI. Wenn du natürlich noch Python als CGI-Skript serverseitig ausführst -> selber Schuld.


    Und wenn du wirklich konsequent wärst, dann solltest du den Amiga auch blöd finden. Der hat nämlich die miese Softwareperformance des C64 und C128 einfach durch leistungsfähigere Hardware ersetzt. Wie du siehst, hast du damals schon aktiv den Teufelskreis des "wir brauchen mehr Performance" unterstützt...

    Gruß, noisefloor

  • Hallo,

    Zitat


    Ist aber genau das, was viele Raspi-Projekte machen.

    Wie gesagt: selber Schuld! Immerhin wird das weder hier im Forum propagiert noch im deutschen Python-Forum.

    So rein interese halber: nenn' doch mal bitte ein paar Projekte bzw. poste mal die Links.

    Python+CGI ist in der Tat wenig performant, weil für jeden Prozess eine neue Instanz von Python gestartet wird. Was halt dauert und Ressourcen braucht. Plus geht das in der Regel mit dem Apache Webserver einher, was auch nicht so performant ist.

    WSGI hat die Performanceeischränkung nicht - und mit der Verwendung eines WSGI-kompatiblen Webframeworks ist so wie so alles (Routing, Request Handling, Formulardatren) einfacher als mit CGI.

Jetzt mitmachen!

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