Search

Register

Thanks for signing-up! You will receive an email with further instructions to activate your account!

username already taken
You already have an account? .

Login

Forgot password?
Don't have an account yet? Register now for using the UI-Designer and the forum or creating projects.

Einfache Verbindung mit dem raspberry pi

Project Information

  • Created April 10, 2015
  • By simi-chan
Attached UI-Designer Configs
Raspberry Pi
Hier erkläre ich in einzelnen Schritten, wie man die NetIO-App schnell und einfach mit dem raspberry pi verbinden kann um komfortabel verschiedene Befehle auszuführen. Und das ganze ohne netio_server.py

Description

Dieses Projekt befasst sich mit der einfachen Verbindung der NetIO App zu dem Raspberry Pi mit aktuellem Raspbian wheezy.

Um das System zu aktualisieren den Befehl
sudo apt-get update -y && sudo apt-get upgrade -y
eingeben und Enter drücken. Das System sollte nach Ausführung der Befehle auf dem aktuellen stand sein.

Um die App mit dem Raspberry Pi zu verbinden, brauchen wir auf dem Pi einen TCP Socket. Diesen erstellen wir auf dem Pi mit ncat.
Zum installieren diesen Befehl eingeben und wieder mit Enter bestätigen:
sudo apt-get install -y nmap

Wenn der Vorgang abgeschlossen ist, kann der Socket mit folgendem Befehl erstellt werden:
sudo ncat -4 -e /bin/bash -l 4321 -k &
Der Port 4321 kann natürlich geändert werden.

Im UI-Designer kann jetzt eine neue Fernbedienung angelegt werden.
Unter Connections wird jetzt der Pi hinzugefügt.
Name: Kann frei gewählt werden, muss dann in den Seiten als connection eingetragen werden.
IP: Die IP des Raspberry Pi
(Kann mit dem Befehl
hostname -I
rausgefunden werden)
Port: 4321 (Wenn der Port in dem ncat Befehl geändert wurde, natürlich hier entsprechend anpassen)

Um den Socket automatisch bei einem neustart des Pi erstellen zu lassen, kann ein Cronjob angelegt werden:
crontab -e
Hier ganz unten die folgende Zeile hinzufügen
@reboot sudo ncat -4 -e /bin/bash -l 4321 -k &
und die Datei Speichern (ctrl-x, mit y oder j bestätigen und ENTER drücken.

Die App kann jetzt die Verbindung zum Pi herstellen und Befehle ausführen.
Damit dies Problemlos funktioniert, müssen entweder die Befehle eine Antwort geben, z. B.:
pi@raspberrypi ~ $ cat /sys/class/thermal/thermal_zone0/temp
29862
pi@raspberrypi ~ $
Hier gibt der Befehl
cat /sys/class/thermal/thermal_zone0/temp
die Antwort
29862

Allerdings darf der Befehl auch nicht mehrere Antworten hintereinander geben, wie es in diesem Beispiel-Script der Fall ist:
#!/bin/bash
echo "Antwort 1"
sleep 5
echo "Antwort 2"

Wird eine zweite Antwort gesendet, verliert die App kurzzeitig die Verbindung zum Pi.

Wenn ein Befehl keine Antwort zurückgibt, z. B. der rote Button aus der angehängten Fernbedienung:
pi@raspberrypi ~ $ irsend send_once led red
pi@raspberrypi ~ $
dann muss bei dem Button, der diesen Befehl sendet, requiresSendReponse deaktiviert werden - durch klick auf “Add Attribute” und “requiresSendReponse” wird das Feld hinzugefügt und man kann den Haken bei requiresSendReponse entfernen.

Auch labels mit read-Befehl funktionieren, wie in der Beispielfernbedienung das aktuelle Datum mit Uhrzeit oder die CPU-Temperatur des Pi.


Vielen Dank an Klaus (klausreichenecker2) für die Hilfe dafür im Forum und natürlich ganz besonderen Dank an die Entwickler dieser tollen App!

Attachments