Dieser Beitrag wurde seit einem Jahr nicht mehr aktualisiert. Im Internet ist das manchmal eine halbe Ewigkeit. Es kann daher sein, dass die Informationen und Links nicht mehr aktuell sind.
Ich habe nach einem Weg gesucht, bisher nicht von homee unterstütze Geräte in homee zu integrieren. In diesem kleinen Tutorial möchte ich Dir zeigen, wie sich über einen kleinen Umweg viele andere Geräte (z.B. Fernseher und Funksteckdosen mit 433Mhz) in homee integrieren lassen.
Inzwischen hat sich eine weitere und bessere Möglichkeit zur Integration von virtuellen Geräten in homee ergeben: zum Beitrag “Virtuelle Geräte in homee mit Node-RED”
Voraussetzungen
Hinweis: Die Installation ist grundsätzlich auch auf anderen Systemen möglich. Dazu werden unter Umständen jedoch andere Befehle benötigt.
Installation der benötigten Software
Um die virtuellen Geräte erstellen zu können, brauchen wir NodeJS, NPM, Node-RED und ein Plugin. Zur Installation melden wir uns zuerst per SSH auf dem RPi an. Anstelle des raspberrypi.local kannst du auch die IP-Adresse eingeben.
ssh pi@raspberrypi.local
Anschließend aktualisierst Du mit folgenden Befehlen die Paketquellen und fügst eine Paketquelle für NodeJS hinzu.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential
Der Befehl node -v
sollte Dir nach der erfolgreichen Installation die Versionsnummer ausgeben.
Nun installieren wir Node-RED und die benötigten Pakete von NPM.
sudo npm install -g node-red --unsafe-perm
node-red
cd ~/.node-red
npm install node-red-contrib-wemo-emulator
npm install wemore@latest
Damit Node-RED auch nach einem Neustart läuft, erstellen wir nun mit folgendem Befehl eine neue Datei
sudo nano /etc/init.d/node-red
und fügst dort folgenden Inhalt ein:
#!/bin/sh
### BEGIN INIT INFO
# Provides: node-red
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
dir="/home/pi"
cmd="DEBUG=* sudo node-red --userDir /home/pi/.node-red"
user="pi"
name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"
get_pid() {
cat "$pid_file"
}
is_running() {
[ -f "$pid_file" ] && ps -p `get_pid` > /dev/null 2>&1
}
case "$1" in
start)
if is_running; then
echo "Already started"
else
echo "Starting $name"
cd "$dir"
if [ -z "$user" ]; then
sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
else
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
fi
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see $stdout_log and $stderr_log"
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n "Stopping $name.."
kill `get_pid`
for i in 1 2 3 4 5 6 7 8 9 10
# for i in `seq 10`
do
if ! is_running; then
break
fi
echo -n "."
sleep 1
done
echo
if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo "Stopped"
if [ -f "$pid_file" ]; then
rm "$pid_file"
fi
fi
else
echo "Not running"
fi
;;
restart)
$0 stop
if is_running; then
echo "Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status)
if is_running; then
echo "Running"
else
echo "Stopped"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Mit STRG+O
lässt sich die Datei speichern, mit STRG+X
wird der Editor geschlossen.
Jetzt geben wir der Datei noch die richtigen Rechte und sorgen für den Autostart.
sudo chmod 755 /etc/init.d/node-red
sudo update-rc.d node-red defaults
Wenn alles funktioniert hat, lässt sich Node-Red mit sudo /etc/init.d/node-red start
starten.
Das Webinterface von Node-Red erreichst Du anschließend über die Adresse
http://raspberrypi.local:1880 (oder alternativ wieder mit der IP).
Erstellen des virtuellen Geräts
In der linken Spalte sind die so genannten Nodes aufgelistet, die sich nun verwenden lassen. Das virtuelle Gerät simuliert einen WeMo Switch. Um diesen zu erstellen ziehen wir den orangenen Node “wemo emu” in den Flow. Mit einem Doppelklick kannst Du den Node analog dem Beispiel im Bild konfigurieren.
Für einen ersten Test fügen wir noch einen Debug-Node hinzu. Mit einem Klick auf Deploy wird der Flow anschließend aktiviert.
Gerät zu homee hinzufügen
In homee fügen wir nun ein neues WLAN Gerät hinzu. Dazu wählen wir den Typ Belkin Wemo. Nach einem kurzen Moment sollte das virtuelles Gerät in der Liste auftauchen und sich auswählen lassen.
Nach Abschluss der Prozedur steht das Gerät in der Geräteliste zur Verfügung und lässt sich ein- und ausschalten. Nach einem Schaltvorgang erscheinen die in der Konfiguration gesetzten Informationen (Topic und Payload) im Debug Tab. An Stelle des Debug-Nodes lassen sich nun andere Nodes mit dem WeMo Node verknüpfen. Zum Beispiel können in Abhängigkeit des Payloads HTTP Requests ausgeführt werden.
Node-RED ist eine vielseitige und flexible Lösung zur Verbindung von weiteren Smart-Home Geräten. Neben den Standard Nodes gibt es unter anderem Plugins für Harmony Hub, RCSwitch, Hue Lampen und viele mehr. Die Plugins lassen sich am besten über npmjs.com finden.
In einem weiteren Post zeige ich bald wie sich eine Anwesenheitserkennung über Node-RED und die Fritzbox realisieren lässt.