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!