Seite 1 von 1

[solved] mal wieder python script

Verfasst: 15. Nov 2020 14:21
von Evil74
Hallo zusammen

Ich habe florgendes Problem:

ich habe ein Python skript

Code: Alles auswählen

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT)
GPIO.output(25, 1)
time.sleep(10)
GPIO.output(25, 0)
GPIO.cleanup()
das funktioniert auch aus der Komandozeile


Das würde ich gerne über openhab aufrufen

Das item:

Code: Alles auswählen

Switch LED2"LED2" {channel="exec:command:LED2:run"}
Das thing

Code: Alles auswählen

Thing exec:command:LED2 [command="sudo /usr/bin/python /home/openhabian/conrad/led.py %2$s",  transform="REGEX((.*?))"]
Fehlermeldungen aus dem Log kommen nicht mehr (was ganz schönlange gedauert hat). trotzdem geht die Lampe nicht an. Jemand vielleicht eine Idee?

Re: mal wieder python script

Verfasst: 15. Nov 2020 18:27
von udo1toni
Ich gehe mal davon aus, dass Du die Anweisung exakt so in der Whitelist drin stehen hast.

Aber zuerst ein Tipp: Du solltest grundsätzlich immer versuchen, ohne sudo auszukommen.

sudo fragt normalerweise immer nach dem Passwort (und nebenbei muss der User, der den Befehl aufruft, natürlich auch in der sudoers Liste stehen).
Du kannst das mit der Passworteingabe vermeiden, indem Du den Befehl mit nopassword einträgst. Allerdings möchte sudo dennoch beim ersten Aufruf interaktiv bedient werden ("Bedenken Sie, dass mit großer Macht große Verantwortung einher geht...") Das bedeutet, Du musst Dich mit dem user openhab anmelden (denn openHAB läuft unter dem User openhab, nicht etwa unter dem User openhabian oder pi oder gar einem User, den Du selbst angelegt hast). Blöderweise darf sich der User openhab gar nicht am System anmelden. Das kann man zwar umgehen, aber wie gesagt ist das ganze Hantieren mit sudo gar nicht notwendig, es reicht, mittels

Code: Alles auswählen

sudo adduser openhab gpio
den User openhab zusätzlich zur Gruppe gpio hinzuzufügen. Danach sollte ein Programm, welches vom User openhab aufgerufen wird, das Recht haben, die GPIO zu nutzen.
Alternativ kannst Du auch den Befehl

Code: Alles auswählen

sudo usermod -aG gpio openhab
verwenden, der bewirkt das gleiche.

[solved] mal wieder python script

Verfasst: 16. Nov 2020 19:24
von Evil74
Hallo

Vielen Dank das war die Lösung ohne sudo. und gelernt habe ich auch viel über den log :D