kurz zu mir. Ich ein ziemlicher Neuling was OpenHab angeht, habe aber die ersten Schritte geschafft und bin begeistert.
Nun zu meinem Problem:
Ich habe eine Relaiskarte welche per USB an meinem Raspi angeschlossen ist. Dazu gibt es ein Programm mit dem ich die Karte über die Konsole schalten und abfragen kann.
Das Programm wird folgendermaßen aufgerufen:
Zum Einschalten des ersten Relais ./rel ttyACM0 -s1
Zum ausschalten des ersten Relais ./rel ttyACM0 -r1
In openHab habe ich jetzt das Exec Binding installiert, ein Thing angelegt mit Channels ausführen und das Ganze mit einem Switch verlinkt.
Als Befehl habe ich
Code: Alles auswählen
/srv/openhab2-userdata/myscripts/rel ttyACM0 -s1
Grundsätzlich funktioniert das. Wenn ich den Switch betätige wird das Relais geschaltet. Aber ich kann damit das Relais nur einschalten. Es gelingt mir nicht verschiedene Befehle je nach Schalterstellung des Switches zu senden.
Ich möchte also wenn der Switch auf ON gestellt wird
Code: Alles auswählen
./rel ttyACM0 -s1
Code: Alles auswählen
./rel ttyACM0 -r1
Gruß Frank
UPDATE
Ich bin jetzt ein kleines Stück weiter. Ich rufe den Befehl nun nicht mehr direkt auf sondern ein kleines shell Script welches den eigentlichen Befehl ausführt.
Code: Alles auswählen
#!/bin/bash
if [ "$1" = "off" ] || [ "$1" = "0" ] || [ "$1" = "OFF" ]
then
/srv/openhab2-userdata/myscripts/rel ttyACM0 -r1
else
/srv/openhab2-userdata/myscripts/rel ttyACM0 -s1
fi
Code: Alles auswählen
/srv/openhab2-userdata/myscripts/setrel.sh %1$s