Mein Vorhaben: Ich möchte einen Raspberry Pi zu einem Webserver machen und ihn sicher vom Internet her publizieren, ohne meine Firewall oder Router zu verändern (also gemäss dem IoT Paradigma). Dazu habe ich mich entschieden, die folgenden Komponenten einzusetzen:
- WebIOPI Micro Framework in Python http://webiopi.trouch.com/INSTALL.html.
Dieses Framework ist in Python geschrieben und implementiert einen Webserver mit REST APIs vollständig self-contained, ohne auf einen Apache/mySQL … Unterbau angewiesen zu sein.
- Weaved Cloud Service https://www.weaved.com/
Weaved erlaubt die Fernabfrage und Fernsteuerung von Devices nach dem Broker-Prinzip (nur outbound Verbindungen vom Device ins Internet)
Der folgende Blog ist eine ganz knappe Minimalanleitung ohne Details. Das gesteckte Ziel konnte mit 2-3 Abenden Zeitaufwand locker erreicht werden.
1. Weaved Account lösen, siehe Youtube Filme
2. Installation WebIOPi laut Webseite http://webiopi.trouch.com/INSTALL.html. Die Einrichtung von Weaved ist im Installer eingebunden und einfacher als die manuelle Konfiguration (siehe https://www.weaved.com/installing-weaved-raspberry-pi-raspbian-os/).
$ tar xvzf WebIOPi-x.y.z.tar.gz
$ cd WebIOPi-x.y.z
$ sudo ./setup.sh
- Dann kommt die Frage, ob man via Internet zugreifen wolle -> Y -> weaved Installer
- Default Port 8000 -> 8123 -> Definition für Weaved: Protocol: webiopi Port 8123
- Servicename in Weaved: Weavedwebioipi8123
- Anmelden: Account eingeben, Passwort, Alias eingeben: webiopi-pigate1
Damit ist WebIOPi und Weaved schon initial fertig installiert. Unter /home/pi/WebIoPi/Web..../examples
findet man einige Beispiele.
Achtung: WebIoPi verwendet Python 3.2, viele andere Pakete laufen nur unter Python 2.7, so zum Beispiel smbus für die I2C Kommunikation! Damit dieses verwendet werden kann, muss WebIoPi Python 2.7 nutzen. Wenn auch Python 3.2 auf dem System zu finden ist, wird es 3.2 nutzen. Dies findet man so heraus: sudo webiopi -d -c /etc/webiopi/config und prüfe die erste Zeile auf der Konsole:
2015-07-08 08:57:15 – WebIOPi – INFO – Starting WebIOPi/0.7.0/Python3.2 <— oder Python2.7
Wenn es 3.2 ist, muss WebioPi für 2.7 neu installiert werden: stop webiopi, gehe zum Ort, wo die webiopi setup.sh ist:
cd /home/pi/webiopi und sudo nano setup.sh. Editiere diese Zeile: SEARCH=“python python3″ zu dieser SEARCH=“python“. Dann sudo ./setup.sh skip-apt und reboot.
3. Port in /etc/webiopi/config ändern auf 8000
sudo /etc/init.d/webiopi/stop
sudo /etc/init.d/webiopi/start
sudo /etc/init.d/webiopi/status
4. Daemon einrichten: sudo update-rc.d webiopi defaults
5. Lokales Login http://192.168.xx.xxx:8123 Passwort: Default user is „webiopi“ and password is „raspberry“. Danach sieht man die von WebIOPi erzeugte Webseite, eines der Beispiele, die mit dem WebIOPi Framework mitkommen. Mit dem Menu GPIO Header können wir jetzt die Konfiguration der GPIO Pins abfragen und der Zustand verändern d.h. schalten und walten!
Achtung: In Chrome könne die Pins nicht geändert werden!
6. Remote in Weaved nach Anmeldung mit gleichem Passwort wird die Seite identisch präsentiert
7. Installiere die Weaved App für iOS. So sieht diese dann aus. Man meldet sich mit dem Weaved Account an und sieht das Device webiopi-pigate1. Für den Zugriff auf dieses Device ist eine Anmeldung mit dem user webiopi nötig
Danach steht das WebIOPi Main Menu komplett auf dem iPhone zur Verfügung:
Update 20170106: Waved wurde zu remot3.it. Migration: http://forum.weaved.com/t/upgrade-your-pi-to-remot3-it-from-weaved/1154