das ist mein allererster Post hier. Bitte seht mir deshalb Unzulänglichkeiten nach.
[PROLOG]
Ich muss voranstellen, dass ich absoluter Neuling im Bezug auf openHAB(3) auf dem raspberry Pi (3B) bin und auch mit diesem und Linux nur rudimentäre Erfahrung habe. Seit 4 Tagen durchsuche ich diverse openHAB Foren, aber komme einfach nicht weiter und hoffe deshalb auf Eure Hilfe.
[AUFGABENSTELLUNG]
Ich habe VELUX Rollläden für Dachfenster mit Fernbedienung. Um die Steuerung "smart" zu machen, habe ich die Fernbedienung "filetiert", Kabel an die Kontakte für UP | STOP | DOWN angelötet und diese mit den GPIO Pins des rasperry pi verbunden. Mit je einem simplen Python Skript (für UP | STOP | DOWN) kann ich so die Rollläden steuern. Das funktioniert auch problemlos, wenn ich das Skript auf dem raspi direkt starte.
Nachdem ich mit mit openHAB3 beschäftigt habe, würde ich jetzt gerne das openHAB rollershutter item nutzen, um meine 3 Skripte über die 3 Buttons des items starten zu lassen (Rückgabewerte und Statusabfragen brauche ich nicht!). Ich habe dazu eine Rule angelegt, die wie folgt aussieht:
[PROBLEM]
Mein Problem ist, dass ich das Skript aus openHAB3 heraqus nicht zum Laufen bekomme.
Meine bisherige Recherche hat mir 3 Optionen aufgezeigt, wie ich das Skript starten könnte:
1. Skript direkt in der Rule als "Python Skript" hinterlegt
Ergebnis:--> funktioniert nicht; es kommt auch kein Fehler
2. Skript liegt "irgendwo" auf dem raspi --> Aufruf über das EXEC Binding
Ergebnis: das erscheint für mich als Neuling so komplex, dass ich nicht durchblicke
3. Skript liegt "irgendwo" auf dem rapsi --> Aufruf des Skripts über den Befehl executeCommandLine
Hier habe ich den Thread viewtopic.php?t=4657 gefunden, mir ist aber unklar, wo ich den Befehl wie reinsetzen muss (in die Rule?) und wo das Skript mit welchen Rechten liegen muss.
Ich würde mich sehr über Eure Hilfestellung (möglichst unter Vermeidung des EXEC Bindings) sehr freuen!
[FACTS]
Ich nutze openHab 3.0.1 auf dem raspberry pi 3B.
Installierte Bindings u.a.: EXEC Binding 3.0.1
Mein Python Skript sieht so aus:
Code: Alles auswählen
#!/usr/bin/python3
import time
import RPi.GPIO as GPIO
# Es wird die BCM Nummerierung benutzt
GPIO.setmode(GPIO.BCM)
# Rollladen Pins vorbereiten
GPIO.setup(17, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(22, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(27, GPIO.OUT, initial=GPIO.LOW)
# Rolladen runterfahren
GPIO.output(27, GPIO.HIGH)
time.sleep(0.1)
GPIO.output(27, GPIO.LOW)
time.sleep(0.05)
GPIO.output(27, GPIO.HIGH)
time.sleep(0.1)
GPIO.output(27, GPIO.LOW)
time.sleep(0.05)
GPIO.output(27, GPIO.HIGH)
time.sleep(0.1)
GPIO.output(27, GPIO.LOW)
Tobias