Raspberry Pi: GPIOs schalten
Mit FHEM lassen sich auch die GPIOs des Raspberry Pi steuern. Generell gibt es einige Möglichkeiten, eine entsprechende Steuerung zu verwirklichen. Als Informationsquelle empfiehlt sich hier die Low-Level Peripherals Seite des Embedded Linux Wiki
Bash Script
Zum schalten der GPIOs via Bash kann folgendes Script (fhem-gpio.sh) verwendet werden:
#!/bin/bash PORT=$1; if ! [ -d /sys/class/gpio/gpio$PORT ] then echo "$PORT" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio$PORT/direction fi STATE=$2; if [ $STATE -gt 1 ] then STATE=1 fi echo "$STATE" > /sys/class/gpio/gpio$PORT/value
Der Aufruf des Scripts erfolgt dann mit Angabe der Pinnummer sowie des Zustands des Pins, z. B.:
fhem-gpio.sh 17 1 # Pin 17 in High-Zustand versetzen fhem-gpio.sh 17 0 # Pin 17 in Low-Zustand versetzen
Wichtig: Das Script muss leider unter root (z.B. per sudo) aufgerufen werden. Der Einfachheithalber kann das Script unter /usr/sbin kopiert werden.
Perl-Modul
In Arbeit: Perl-Modul basierend auf BCM2835-Modul
Dummy-Schalter
Über einen Dummy-Schalter kann das Bash-Script dann getriggert werden.
Im Fall von FS20 sähe eine entsprechende Schalter-Definition beispielsweise so aus:
define gpio_17 FS20 [Hauscode] [Devicecode] attr gpio_17 dummy 1 define act_on_gpio_17 notify gpio_17 {\ if ("%" ne "off") {\ system("sudo fhem-gpio.sh 17 1 &")\ } else {\ system("sudo fhem-gpio.sh 17 0 &")\ }\ }