Die nächsten Schritte mit OpenHAB auf dem ARM-Rechner: GPIOs

Es kann weiter gehen, da die Sonne scheint. Häh?
Naja, die Heizung hatte ja im April noch einiges zu tun, daher konnte ich den kleinen Olinuxino nicht für Installations- und Dokumentations-Zwecke zweckentfremden.

Am wichtigsten war für mich erstmal, dass der kleine Rechner auch was “tun” kann in der echten Welt. Also ganz simpel was an- oder ausschalten. Für solche Schalter eignen sich die General Purpose Input Output Pins, kurz GPIOs. Man kann sie als Ein- oder Ausgang verwenden, als Eingang erkennen sie Spannungen zwischen 0V und 3,3V, als Ausgang können sie solche Spannungen erzeugen (aber nur ganz wenig Strom, also auf einen hohen Widerstand achten!). Letzteres habe ich mit einer LED, die zu ihrem eigenen Schutz mit einem Widerstand in Reihe geschaltet ist, getestet: Den einen Pol an den GPIO-Pin anschließen, den anderen an Masse.

Aber wie jetzt den GPIO-Pin aktivieren? Mit OpenHAB! (es geht auch von Linux aus (Stichwort /sys/class/gpio, aber wir wollen uns ja hier mit OpenHAB beschäftigen).

Zuerst die Vorbedingungen: Das sogenannte Binding muss installiert werden. Ganz allgemein ist ein Binding ein Modul von OpenHAB, welches die Kommunikation mit irgendwas anderem übernimmt. Wir brauchen also das GPIO-Binding und gucken mal in die OpenHAB-Wiki , wie wir das installieren. Also https://github.com/openhab/openhab/wiki/GPIO-Binding ansurfen und nachlesen (englisch können wir doch alle ein bisschen… :-/ ).

Glücklicherweise kann dieses Binding einfach über die Paketverwaltung installiert werden! Also

apt-get install openhab-addon-binding-gpio

ins Terminal eingeben und kurz warten – fertig.

Irgendwie logisch ist es, dass nicht jeder beliebige Linux-User, der auf unserem ARM-Rechnerchen eingeloggt ist, die GPIO-Pins betätigen darf. Dafür sorgt die in Linux eingebaute Sicherheit. Nur der root-User darf das nämlich. Das führt dazu, dass das ganze OpenHAB-Programm vom root-User gestartet werden muss. Hierzu bearbeiten wir mit nano die Datei /usr/lib/systemd/system/openhab.service:

nano /usr/lib/systemd/system/openhab.service

und ändern dort die Zeilen

user=root
group=root

(vorher sollte da statt root=openhab gestanden haben)
nano beenden mit ctrl-x, bestätigen und Eingabetaste.

Tja, und wie wird jetzt ein GPIO-Pin mit unserem Schalter aus dem letzten Artikel verbunden? Da gab es doch so Dateien…? Items und Sitemaps und so…? Gut erinnert, Glückwunsch! Die Items-Datei ist jetzt gefragt, wir können sie wieder mit nano bearbeiten:

cd /etc/openhab/configurations/items/
nano default.items

Am Ende der Zeile unseres “tollen Schalters” fügen wir { gpio="pin:NNN" } hinzu, wobei das NNN durch die gewünschte Pin-Nummer (nicht die von deiner EC-Karte!) ersetzt wird, ich nehme die 112 (auf dem Olinuxino der erste GPIO-Pin des “LCD_CON” genannten Ports):

Switch  ersterSchalter  "Toller Schalter" { gpio="pin:112" }

sollte da jetzt stehen. Dann OpenHAB neu starten (viele Änderungen kann OpenHAB im laufenden Betrieb vornehmen, aber solche grundsätzlichen Verschaltungen nicht):

service openhab restart

Wenn du jetzt eine LED oder ein Relais o.ä. an den richtigen GPIO angeschlossen hast, sollte was passieren: Du bewegst, wie im letzten Artikel beschrieben, den Schalter im Browser-Fenster und innerhalb von ein paar Zehntelsekunden sollte die LED leuchten, das Relais schalten oder was auch immer!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.