openHAB Systembefehle wie Neustart, herunterfahren per Schalter ausführen

openHAB Systembefehle per Schalter ausführen

In diesem Beitrag erkläre ich wie ihr openHAB Systembefehle per Schalter ausführen könnt. Doch worum geht es genau? Mir geht es um die folgenden Systembefehle, die jeder der openHAB auf einem Raspberrry Pi installiert hat nutzt.

Wir nutzen hierfür das Exec Binding. Das Exec Binding könnt ihr für diverse Anwendungen nutzen. Eine davon ist eben das ausführen von gängigen openHAB Systembefehlen. So muss ich für einen Neustart des openHAB 2 Service oder einem Reboot des RAspberry Pi nicht extra per ssh auf die Kiste.

openHAB Systembefehle – openHAB Exec Binding installieren

Als erstes müsst ihr das Exec Binding installieren. Entweder ihr installiert ihr das Binding über die Paper UI. Geht auf Add-ons (1), auf Bindings (2) sucht nach exec und drückt install (3). Alternativ pflegt ihr die addons.cfg (meine Empfehlung).

openhab-exec-binding-install

 

Werbung
IA0KPHNjcmlwdCBhc3luYyBzcmM9Ii8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzIj48L3NjcmlwdD4NCjwhLS0gT25lU21hcnRIb21lIC0tPg0KPGlucyBjbGFzcz0iYWRzYnlnb29nbGUiDQogICAgIHN0eWxlPSJkaXNwbGF5OmJsb2NrIg0KICAgICBkYXRhLWFkLWNsaWVudD0iY2EtcHViLTY4ODcwMjQzNzgwMDQzMjEiDQogICAgIGRhdGEtYWQtc2xvdD0iNzcxMjIyOTQ0MCINCiAgICAgZGF0YS1hZC1mb3JtYXQ9ImF1dG8iPjwvaW5zPg0KPHNjcmlwdD4NCihhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7fSk7DQo8L3NjcmlwdD4NCg==

openHAB Systembefehle – ohne Passwort erlauben

Ohne Passwort? Naja, nicht ganz. Es geht darum, dass ihr das ausführen der Befehle ohne Passwort erlauben müsst, sonst funktioniert es nicht. Ihr kennt das wahrscheinlich. Ihr loggt euch per ssh auf dem Raspberry Pi ein und beim ersten sudo Befehl müsst ihr das Passwort einmalig neu eingeben. Dies verhindert aber das ausführen per exec Binding. Ohne Passwort heißt hier also nur, dass ihr das erste Passwort nicht mehr eingeben braucht. Das Passwort ist beim Login natürlich weiterhin aktiv.

Loggt euch also per ssh auf dem Raspberry Pi ein.

Nun fügt ihr in der Datei eine neue Zeile ein. Als erstes steht der User, den ihr verwenden wollt. Da ich openHABian nutze, ist es bei mir openhab. Hinter NOPASSWD: könnt ihr noch die Befehle eingrenzen. Ich habe es komplett geöffnet, da nur ich per Passwort an openHAB komme.

openHAB Systembefehle – openHAB Exec Things, Items Sitemap

Für jeden Befehl legt ihr euch entweder ein Thing an.  Oder nutzt so wie ich dynamische Feldzuweisung, in dem ihr z.B. bei sudo einfach shutdown oder reboot per Switch Mapping in der Sitemap nutzt. Legt ein .things file an und nutzt den folgenden Inhalt.

Die erste Zeile ist für den Neustart von openHAB2. Die zweite Zeile ist zum Neustart oder herunterfahren des Raspberry Pi. %2$s wird durch eine Zeichenkette über das Item gefüllt. Autorun heißt, dass der Befehl bei Wertänderung direkt ausgeführt wird. Erthält also z.B. das Thing exec:command:piservice den Wert shutdown, so wird sudo shutdown ausgeführt.

Nun nutzt eine bestehende Itemdatei oder legt eine neue an. Hier kommt folgendes rein. Über Thingsnamen + angehängtem :input, übernehmt ihr den Wert aus der Sitemap.

In die Sitemap könnt ihr nun folgendes einfügen.

Nun bekommt ihr folgende Knöpfe in der Systemmap.

openhab-exec-binding.rebootpng

Falls ihr den Fehler An exception occurred while formatting the command line with the current time and input values : ‚Format specifier ‚%2$s“ im Log seht. Diesen könnt ihr ignorieren. Sobald das Element in der Sitemap ein Wert erhält ist der Fehler weg.

Ihr könnt wie geschrieben auch viele andere Dinge machen. Unter den folgenden Links einige Beispiele wie Python per openHAB (englisch) ausführen.

Ihr nutzt das Exec Binding auch? Wofür hinterlasst ein Kommentar.

 

 

Werbung
3 Comments
  1. Nette idee aber leider funktioniert „%2$s“ nicht und bringt immer Fehlermeldungen.
    Ohne %2$s wird der Befehl aber nicht genutzt

  2. Danke, hat geklappt!
    Hatte erst als User „openhabian“ in der /etc/sudoers.d/010_pi-nopasswd angegeben weil ich dachte, wenn ich den User bei SSH angeben muss dann auch dort. Dass es den User „openhab“ gibt wusste ich gar nicht.
    Wie immer top Tutorial

    Hinterlasse einen Kommentar