Hallo, ich habe mir vor einigen Jahren ne kleine Steuerung gebaut die mir die Innentemperatur der einzelnen Räume unseres Hauses misst und aufzeichnet. Die Steuerung ist mit einem USB/Uart Chip fest an meinem PC im Büro angeschlossen. Mit einer eigenen Software lese ich die Messwerte aus und stelle sie grafisch dar. Ich würde das nun gerne so umbauen dass die Steuerung über das USB an ein Raspberry Pi angeschlossen wird. Über das lokale LAN sollte nun jedes Endgerät (PC, Smartphone etc.) auf einer Art Homepage auf dem PI die Messwerte angezeigt bekommen und per Button Druck Relais schalten können. Die Seite sollte auch so optimiert sein dass sie sich dem Anzeigeformat des Endgerätes anpasst. Als Hardware Entwickler fehlt mir hier die Übersicht womit ich mich beschäftigen sollte. Man wird im Netz von verschiedenen Techniken erschlagen und gefühlt werden wöchentlich ein halbes Dutzend neue Skriptsprachen gehypt. Ich bräuchte einen Wegweiser zum Einstieg. Womit muss ich mich beschäftigen? Gruß Alex
Zum Einstieg in die Webentwiklung ist https://www.freecodecamp.org/ echt fein. Das könnte dich vielleicht auch interessieren: http://www.instructables.com/id/Python-WebServer-With-Flask-and-Raspberry-Pi/
Alex schrieb: > Ich bräuchte einen Wegweiser zum Einstieg. Womit muss ich mich > beschäftigen? Ich würde dies mit Java umsetzen. mfg klaus
Alex schrieb: > Ich bräuchte einen Wegweiser zum Einstieg. Womit muss ich mich > beschäftigen? Zur Eigenbaulösung wäre vielleicht OpenHAB mit Mosquitto MQTT und Grafana eine Softwarealternative aus der Smarthome Ecke. Für den RaspberryPi gibt es OpenHasbian als fertig zusammengestelltes Betriebssystemimage.
Ein Webserver auf dem Pi ist der Anfang. Die Messwerte darauf anzuzeigen ist trivial. Fuer das Steuern brauchst Du Scriptverarbeitung im Webserver. Ich nutze dafuer klassisches HTML, das durch Perl/CGI bereitgestellt wird. nicht_maker
Alex schrieb: > Man wird im Netz von verschiedenen Techniken > erschlagen und gefühlt werden wöchentlich ein halbes Dutzend neue > Skriptsprachen gehypt. Das hast du nun davon!:-))) Offensichtlich ist auch hier "im Netz".... Axel H. schrieb: > Python-WebServer-W... Klaus R. schrieb: > mit Java umsetzen Wolfgang schrieb: > OpenHAB mit Mosquitto MQTT und > Grafana nicht_maker schrieb: > klassisches HTML, das durch Perl/CGI bereitgestellt wird
Ein kleines Howto mit verschiedenen Ansätzen und grundlegenden Beidpielen wäre im Forum Gold wert. Wer kann das und hat Zeit und Lust dazu?
Der Knackpunkt sind die "verschiedene Endgeräte", da wirds wirklich knifflig. Responsive Webdesign per CSS ... prost Mahlzeit. Davon abgesehen das die ganze Steuerei in der Heizung eh Mist ist. Mach nen ordentlichen hydraulischen Abgleich, dann rennt das Moped im optimalen Arbeitspunkt, die Hütte ist kuschelig und Du sparst noch Energie dabei. https://www.w3schools.com/cSS/css_rwd_intro.asp PS: kann man auch mit JavaScript machen, aber CSS ist einfacher.
:
Bearbeitet durch User
Simplex schrieb: > Wer kann das und hat Zeit und Lust dazu? Um dann für jeden Ansatz gnadenlos niedergemacht zu werden? Warum sollte man sich das antun? Leser, die davon profitieren, melden sich sowieso nie wieder, dafür gibt es eine grosse Mehrheit, die nur ihren Frust und Hass abreagieren will. Vom Forum wird das durch die Einführung der Bewertungen auch noch aktiv unterstützt. Georg
Auf dem Raspberry Pi gibt es zahlreiche Möglichkeiten. Berufliche programmiere ich Web-Services in Java. Ein relativ einfacher Java Webserver wäre der Apaceh Tomcat. Damit du die HTML Dokumente nicht mühsam durch String-Verkettung erzeugen musst, bietet sich JSF oder Freemarker an. Für JSF habe ich ein Tutorial: http://stefanfrings.de/jsf_tutorial/index.html Zuhause nutze ich auf dem Raspberry Pi hingegen den Apache HTTP Server mit dem PHP Modul (libapache2-mod-php7.0). Das wäre vermutlich am einfachsten einzurichten, denn da brauchst du nichts weiter zu tun, als dieses Paket zu installieren. Danach legst du einfach deine Scripte und statische Dateien im Verzeichnis /var/www/html ab. Um HTML zu lernen, empfehle ich Dir irgendein Tutorial durchzuarbeiten. Danach wird Dir SelfHtml als Nachschlagewerk dienen: https://wiki.selfhtml.org/
ARexx schrieb: > Das hast du nun davon!:-))) Offensichtlich ist auch hier "im Netz".... Damit hatte ich gerechnet :-) Aber wenigstens habe ich dann eine grobe Richtung. Es ist sehr deprimierend sich mit Dingen über längere Zeit zu beschäftigen und zum Schluss scheitert es an Kleinigkeiten. Wolfgang schrieb: > Zur Eigenbaulösung wäre vielleicht OpenHAB mit Mosquitto MQTT und > Grafana eine Softwarealternative aus der Smarthome Ecke. Für den > RaspberryPi gibt es OpenHasbian als fertig zusammengestelltes > Betriebssystemimage. Das klingt sehr interessant. Verstehe ich das richtig dass die Oberfläche quasi nur "konfiguriert" wird. Wie flexibel kann ich da eigene Geräte bzw. Protokolle hinter der Oberfläche implementieren?
> Ein kleines Howto mit verschiedenen Ansätzen Das wird nicht möglich sein, denn eine kleine Übersicht über alle gängigen Möglichkeiten würde schon ein dickes Buch werden. Der Punkt ist, das in Web Anwendungen zahlreiche Technologien miteinander verknüpft eingesetzt werden. Wenn man davon noch keine kennt, wird so ein Howto völlig unverständlich. Im Bereich der Web Entwicklung gibt es für jede Teilaufgabe gefühlt mindestens 10 gute Lösungen. Diese beliebig miteinander kombiniert ergibt wiederum hunderte Gesamtkonzepte. Das erschlägt jeden Anfänger verständlicherweise. Also schau Dir einfach irgendein Tutorial zu den hier genannten Techniken an und finde dabei heraus, welches Dir am verständlichsten erscheint. Und dann bleibe dabei. Es ist besser, eine weniger gute Technik voll zu beherrschen, als alles mal gesehen zu haben aber nichts zu beherrschen. HTML und CSS sollte man aber vorher schon einmal anhand von statischen Webseiten kennengelernt habe. > CGI wäre ein einfacher verständlicher Ansatz Zweifellos aber völlig veraltet. Damit würde ich mich nicht mehr beschäftigen.
Stefan U. schrieb: > Zuhause nutze ich auf dem Raspberry Pi hingegen den Apache HTTP Server > mit dem PHP Modul (libapache2-mod-php7.0). Das wäre vermutlich am > einfachsten einzurichten, denn da brauchst du nichts weiter zu tun, als > dieses Paket zu installieren. Ich denke ich werde mit Stefans Vorschlag anfangen. Mit HTML und CSS würde ich wohl relativ schnell zu einer passenden Oberfläche kommen. Die Kommunikation über den ttyUSB würde dann wohl in JavaScript erfolgen. Funktioniert das gut oder ist das ein Frickelei?
> Die Kommunikation über den ttyUSB würde dann wohl in > JavaScript erfolgen. JavaScript ist eine Programmiersprache für den Web Browser (normalerweise jedenfalls). Du wolltest doch die zu steuernde Hardware nicht an dein Smartphone/Laptop anschließen sondern an den Raspberry Pi, oder habe ich Dich falsch verstanden? Für den Zugriff auf den seriellen Port via PHP auf dem Raspberry Pi gibt es eine Anleitung. Sieht überschaubar aus: http://www.ko4bb.com/getsimple/index.php?id=serial-port-access-from-php-with-raspberry-pi
Klaus R. schrieb: > Ich würde dies mit Java umsetzen. Das ist doch mit Kanonen auf Spatzen geschossen, nur um eine popelige Webseite anzuzeigen die ein paar UART-Befehle absetzt. Weingut P. schrieb: > Der Knackpunkt sind die "verschiedene Endgeräte", da wirds wirklich > knifflig. > Responsive Webdesign per CSS ... prost Mahlzeit. In Zeiten von Frameworks wie Bootstrap ist das doch schon lange keine kniffelige Angelegenheit mehr. Ist ja schon fast kniffeliger eine "klassische" Webseite zu bauen :D Da es sich hier laut der Beschreibung nur um eine kleine Webseite (Komplexität dahingestellt) handelt, welche lediglich ein paar Werte ausgibt und durch Button-Klicks Aktoren schaltet wäre mein Mittel der Wahl ebenfalls eine einfache HTML-Seite mit Bootstrap als Basis-Framework. Dahinter dann wahlweise Javascript, PHP oder Python, welches die serielle Kommunikation des Pi mit der Schaltung abwickelt. Da kann man ja nehmen, womit man am besten zurechtkommt, was man schneller konfiguriert kriegt oder bei welchem einem die Bibltiotheken besser gefallen. Ans Ziel kommt man mit allen genannten Technologien und Bibliotheken für die serielle Kommunikation findet man dafür auch. Also: Apache-Server in Mindestkonfiguration auf den Pi, kleine Webseite gebastelt und Werte/Befehle wahlweise mit JS/PHP/Python mit der Steuerung austauschen. Fertig ist die Laube. Tutorials für HTML/CSS findet man wie Sand am Meer, die Installation und ggf. Einrichtung eines Apache findet man auch zuhauf im Netz. Als Bibliothek für Python kenne ich pySerial und habe damit schon sehr bequem gearbeitet. Zu Python muss man nur sagen, dass da die Einbindung in den Apache etwas mehr Aufmerksamkeit benötigt, als z.B. bei PHP. Dafür hat man mit Python auch direkt eine extrem hilfreiche Skriptsprache für die Zukunft kennengelernt und endet nicht mit unleserlichen HTML-PHP-Mischmasch-Dateien (schlimmstenfalls), sondern hat eine schöne Trennung zwischen den HTML-Dateien und dem Teil für die "Geschäftslogik" bzw. dem dynamischen Teil. Gruß Arno P.S.: Ich habe dich so verstanden, dass du nur die aktuellen Werte anzeigen möchtest. Falls du auch noch eine Historie oder irgendwelche Auswertungen anzeigen möchtest, musst du dir natürlich noch Gedanken um die Persitenz der Daten machen. Aber das steht erst mal auf einem anderen Blatt.
:
Bearbeitet durch User
> Das ist doch mit Kanonen auf Spatzen geschossen, nur um eine > popelige Webseite anzuzeigen die ein paar UART-Befehle absetzt. Was noch fast egal ist. Viel blöder ist, dass Java keine seriellen Ports unterstützt. Dazu muss man dann schon C Libraries über das JNI Interface ansprechen. Wenn man dabei keinen Knoten ins Hirn bekommen will, nimmt man was fertiges, wie die RxTxComm Library (http://rxtx.qbang.org/wiki/index.php/Download). Die wurde aber im Januar 2006 zuletzt verändert - klingt ein bisschen beängstigend. Wegen der Persistierung: Sei mit Datenbanken auf dem Pi vorsichtig. Damit verschleißt man sich die SD Karte ziemlich schnell. Speichere häufig veränderte Dateien lieber auf einen USB Stick/Festplatte/SSD.
Espeasy könnte auch dein Freund werden. Ohne lan per wifi, recht simpel. Mit global Sync hast Du all deine Messwerte zentral zur Verfügung. https://m.youtube.com/watch?v=dQ2opGCvqZA https://m.youtube.com/watch?v=5gomPXCLV9k https://m.youtube.com/watch?v=Sz26uxTG1sc Und so weiter.....
Alex schrieb: > Das klingt sehr interessant. > Verstehe ich das richtig dass die Oberfläche quasi nur "konfiguriert" > wird. Wie flexibel kann ich da eigene Geräte bzw. Protokolle hinter der > Oberfläche implementieren? Wenn du nur Kleinigkeiten (Steuerwerte, Messdaten, Schaltzustände, Schaltbefehle) zwischen deinen Geräten und dem Raspberry austauschen möchtest, kannst du in deinen Geräten als Protokoll MQTT implementieren (z.B. im ESP8266) und für den Datenaustausch benutzen. Fürs Smartphone gibt es etliche fertige MQTT Apps (für Android z.B. IoT MQTT Dashboard od. v.a.m.) wo du einfach deine Oberfläche konfigurierst. Für eigene Protokolle kannst du in OpenHAB wohl auch eigene Bindings bereitstellen - habe ich aber noch nicht gemacht.
Stefan U. schrieb: > Wegen der Persistierung: Sei mit Datenbanken auf dem Pi vorsichtig. Ja. > Damit verschleißt man sich die SD Karte ziemlich schnell. Speichere > häufig veränderte Dateien lieber auf einen USB Stick/Festplatte/SSD. Ich speichere die in einer DB in einer Ramdisk /dev/shm. Immer Mitternacht werden die gesammelten Daten in die DB auf der SD unter /home/xxx/log/xxx.db geschrieben. Beim Herunterfahren sichert ein von systemd gestartetes Script die Daten bis zum aktuellen Zeitpunkt in die DB unter /home/xxx/log/xxx.db. Beim Booten erzeugt ein Script in der crontab unter @reboot die DB in der Ramdisk und befuellt diese mit den letzten 1500 Records (etwas mehr als 1 Tag bei 1 Record je Minute) nicht_maker
Alex schrieb: > Als Hardware Entwickler fehlt mir hier die Übersicht womit ich mich > beschäftigen sollte. Wenn Du bereit bist eine wirklich neue Welt kennen zu lernen, auch wenn hier deswegen gleich das Geheule losgehen wird, gibt's eigentlich nur eine Antwort: Javascript Dazu: https://nodejs.org https://github.com/node-serialport/node-serialport http://expressjs.com https://socket.io/ https://code.visualstudio.com/ Wenn Du von den Klassikern wie C, C#, C++, Java, Assembler, Visual-Basic, Delphi etc. kommst, ist das alles ein ziemlicher Kulturschock, lohnt sich aber. Und das ganze Responsive-Design ist nichts besonderes. Entweder das bisschen CSS von Hand selber machen oder eben ein fertiges Framework reinklatschen. Es gibt dutzende. Such Dir eins aus.
Tippgeber schrieb: > gibt's eigentlich nur > eine Antwort: Das ist genau das Problem: zig verschiedene Lösungen, aber alle mit dem Anspruch auf die allein seligmachende Wahrheit. Georg
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.