Raspberry_pi-logo

Funksteckdosen von Überall steuern

Die Installation von Raspberry-remote scheint geklappt  zu haben so wie in der vorherigen Anleitung Beschrieben. Raspberry-Remote kann nun natürlich in Scripten verwendet werden oder per Cronjob angesteuert werden. Jedoch

24. weiter zu Webinterface mit Cronjobs >>

ist es ziemlich umständlich sich dafür jedesmal am Pi ei zu loggen und Befehle manuell aus zu führen. Raspberry-Remote bietet auch ein Webinterface mit. Dazu existiert im Ordner raspberry-remote ein Unterordner mit der Bezeichnung Webinterface. Um dieses ans laufen zu bringen muss zuvor der Apache2 und php5 installiert worden sein (siehe Webserver). Enstrepchend braucht Ihr den Ordnerinhalt nur in einen Wunsch Ordner im Verzeichnis /var/www kopieren. Achtung Seiteinem letzten Update von php5 liegt der HauptOrdner für Website in /var/www/html. Erstellt Euch dort einen Wunsch Ordner. Auch hier nehme ich das Beispiel von anderen Websites und nenne diesen Ordner remote.

Verschiebt nun den Inhhalt in dieses Verzeichniss::

Damit das Webinterface nun mit dem raspberry-remote Server kommunizieren kann, muss dieser im Hintergrund laufen. Daher müssen wir raspberry.remote noch komplieren und als Dienst laufen lassen. Soäter müssen wir noch dafür sorgen das dieser gleich beim starten des Raspberry mit startet und evtl. auch neu start falls er mal abstürzt. Auch das passiert immer wieder mal. Aber Glücklicherweise mit Ausnahmen.

Falls Ihr nicht mehr im Verzeichnis raspberry-remote seid, springt hinein:

Mit make daemon wir das ganze kompiliert und mit daemon & wird der daemon getsartet und bleibt am laufen. Nun könnt Ihr die Website zur Ansteuerung der Funksteckdosen bereits aufrufen. Später müssen wir dann noch unsere persönlichen Anpassungen vornehmen. Ruft die Website von einem anderen Gerät auf indem Ihr diew IP Adresse wie folgt im Browser eingebt:

Vermutlich passen nun allerdings die Codes Eurer Steckdopsen nicht zu dem Beispiel und die Schalterbeschreibungen sind sicher auch nicht Euroen Wünschen entsprechend. Zunächst sei hier gesagt das dies nur ein Beispiel ist. Es gibt im Netz einige andere WebfrontEnd hierzu die das ganze zunächst hübscher machen und auch für Smartphones oder eBoook Reader besser geeignet sind. Doch hier gehen wir zunächst auf die Details zu Anapsssung der Codes für die Funksteckdosen und deren Bezeichnungen ein.

In dem Ordner /var/www/html/remote findet Ihr die Datei config.php. Wie der Dateiname schon sagt werden hier die Konfigurationen fest gelegt. Doch Vorsicht. Das ist beeits ein PHP Script. Ein Komme zu wenig, eine Klammer entfernt und schon läuft das ganze nicht mehr. Macht Euch besser ein Backup des ganzen Ordners. nun zum Inhalt der Datei: Gelbe Bereiche solltet Ihr wie in dem Beispiel Anpassen damit die Kommunikation mit dem Remote-Server auch funktioert. Ansonsten bekommt ihr auf der Website vermutlich nur den Hinweis “Couldt not connect to Socket”.

Die HausCodes befinden sich im Bereich nach array(“.  Hier blau markiert. Ebenso könnt Ihr Euch die Bezeichnung der Funksteckdose beliebig anpassen.Speichert das ganze und versucht erneut die Website auf zu rufen. Wer immer noch “Couldt not connect to Socket” als Hinweis bekommt sollte alles nochmals überpüfen. Evtl. arbeitet Ihr auch schon mit einer neueren Version von raspberry-remote. Dazu später mehr  im unteren Teil dieser Seite. Alternativ könnt Ihr anstatt localhost auch dei IP des Raspberry eintagen. Das hat jeoch den nachteil dies jedes mal angepasst werden muss wenn Ihr den Pi woanders anklemmt oder er sich eine neue IP Adresse vom Router holt. Aber einen Versuch ist es Wert, falls die Namensauflösung aus Irgnendeinem Grund im Pi nicht läuft.
 

Wer nun noch keine Erfolge vorweisen kann sollte sich die Problemlösungen weiter unten einmal anschauen,


Start des Daemon nach Neustart und Absturz:

Um das ganze nun aber noch dauerhaft Funktionsfähig zu machen weil der Pi irgendwann mal neu startet muss der daemon beim start mit ausgeführt werden. Ebenso müssen wir dafür sorgen das er neu startet falls der daemon mal abstürzt. Dazu erstellen wir uns zunächst ein kleines Script. Diesen Codeschnippsel habe ich von der Website alex bloggt (https://alexbloggt.com/funksteckdosen-raspberry-pi-teil1/). Anders als dort beschrieben habe ich das Script allerdings auch in den Ordner /var/www gelegt um mir eine etwas einfachere Anpassung und Erweiterung zu ermöglichen. So kann ich per FTP darauf zugreifen und schnell weiteren Code einbauen. Entsprechend habe ich mir einen Ordner erstellt der shScripte genannt wurde:

Gebt nun folgendes ein und speichert es:

Um nun alles passend zu machen empfiehlt Alex den daemon um zu benennen. Ich gestehe ich weiß nicht recht warum aber ich vermute irgendwelche Überschneidungen. Also richt ich man danach. Da auch das Script darauf angepasst ist!:

Nun muss das obige Script noch ausführbar gemacht werden:

Nun müssen wir über einen Cronjob nur noch das ganze starten bei einem reboot des Pi und ein Intervall dafür setzen falls der daemon sich aufhängt:

und wir fügen an das Ende ein:

 

Das ganze speichern und idealerweise einen Neustart des Pi einleiten um das ganze zu testen. Nun sollte unser Webinterface für die Funksteckdosen auch nach dem Start des Pi laufen. Hier habe ich eigentlich nie Probleme gehabt. Wenn waren es immer nur Tippfehler. Sollte der daemon mal abstürzen, braucht ihr nur fünf Minuten warten bis das Script ausgeführt wird. Natürlich lässt sich der Zeitfaktor beliebig anpassen.

 


Evtl. weitere Schritte bei Problemen

Bei Problemen nach der Installation habe ich mehrfach ratlos da gestanden weil ich keine Funktion beim schalten sehen konnte. Hier einge Lösungen zu diversen Situationen:



Problem: Hauscodes sind von Haus aus beschränkt

Ein erster Hinweis darauf ist das Eure Seite wie hier im Beispiel aufgerufen wird, aber einige Codes nicht funktionieren. Zu erkennen daran das der Status sich nicht ändert (Grün). Im Original von raspberry-remote funktioneren nur die Hauscodes. 00000, 00001 und 00010. Was habe ich gesucht bis ich darauf einen Hinweis fand. Aber eigentlich ganz einfach Öffnet in dem Ordner raspberry-remote die Datei daemon.cpp. Sucht die Zeile in der steht nPlugs=. Häufig steht hier eine 10 dahinter, also nPlugs=10. um nun aber alle Hauscodes zu unterstützen sollten ihr daraus eine 1110 machen. Achtung in einigen Versionen hat auch das nicht geholfen und nahc viel Recherche und einigen Versuchen hat dann 1280 weiter geholfen. Also zwei Möglichkieten:

Problem Couldt not connect to socket::

Ein weitees Problem das Unterschiedliche Ursachen haben kann. Tritt das Problem von vorneherein ein dann hat fast immer nur eines geholfen. Die alte Version von raspberry-remote zu installieren. Dies wurde auf der vorherigen Seite schon angesporchen. Aber sicher steltl sich die Frage wir installiere ich das ganze. Zunächts geht Ihr den normalen Weg über git-Hub wie schon zuvor besprocjhen. Dann solltet Ihr Euch die ältere Version von gutHub herunter laden: ( https://github.com/xkonni/raspberry-remote/tree/40a0c6d9f35d5ee29a8d9f89d23d760527003dbe ). Die Datei ist in der regel gezipt. entpackt diese. Ich habe das auf einem Windows PC gemacht und dann per FTP auf den raspberry kopiert. Danach habe ich den Inhalt im Ordner raspberry-remote gelöscht und die Dateien aus dem entzippten Ordner in den eigentlichen Ordner rasperry-remote kopiert. Dies sollte ja eigentlich unter /home/pi/raspberry-remote liegen. Nun muss die Einrichtung neu gemacht werden:

Achtung wer das Webinterface nutzt muss auch folgenden Schritt ausführen wie schon oben beschrieben:

Ein neustart und prüfen ob das Webinterface nun funktioniert. Wenn nicht den daemon evtl. wie oben wieder von Hand starten oder das Script ausführen. Prüft zur Not auch noch mal das Script selbst.
WEnn es nun noch Probleme gibt kopiert wiederum die Vorlage des Webinterfaces in den Ordner /var/www/html/remote. In diversen Versionen ist der php Code etwas anders. Siehe nächste Problemschilderung:

 

Problem: Änderung der Hauscodes je nach Version von raspberry-remote

In neueren Versionen von rapsberry-remote wurde in das Webinterface gleich weitere Steckdosen von diversen Herstellern berücksichtigt. Kopiert also einmal die den Inhalt des Webinterfaces aus dem Ordner ~/raspberry-remote/webinterface wieder in den html Pfad. Vergleicht den Inhalt der config.php mit der vorherigen Datei. Die array Zeilen haben hier oft einen Eintrag mehr für andere Funksteckdosenhersteller. Passt Euro Codes darin entsprechend an. Leider kann ich hier kein Beispiel geben. Da ich nie mit diesen neuen Codes arbeiten konnte. Wenn irgendwann doch, werde ich hier alles veröffentlichen.

 


Weitere Links zu Raspeberry 433 MHz Projekten:

 

Website_Design_NetObjects_Fusion

Projekte rund um Elektronik, Server, Windows und mehr

 Projekte | Blog | Impressum


zum Geschützen Bereich