Danke auf jeden Fall für deine Hilfe, aber ich habe da jetzt eine Lösung gefunden, die ganz gut funktoiniert.
Mit folgendem Shellskript im Verzeichnis /usr/local/etc/DoorPi/scripts/ rufe ich nun zwei Pythonskripte zum Starten des Blinkens und zum Ausschalten der LED auf.
Shell-Script
- #!/bin/bash
- CCU_IP=192.168.0.20 # IP-Adresse der CCU
- scriptsDir=/usr/local/etc/DoorPi/scripts/
- # HomeMatic CCU ISE_IDs
- HMiseid1=4038 # "EG Haustür SV Tagesriegel"
- # CCU-Systemvariable "EG Haustür SV Tagesriegel" auslesen
- lock=$(curl -s -k "http://${CCU_IP}:8181/rega.exe?x=dom.GetObject(${HMiseid1}).Value()")
- lock=${lock##*<x>}
- lock=${lock%%</x>*}
- # echo $lock
- # Tagesriegel-Status-LED aktivieren
- if [ "$lock" = 1 ]
- then
- # Tagesriegel-Status-LED über DoorPi aktivieren
- python ${scriptsDir}TagesriegelLedFlash.py &
- else
- killall -9 python ${scriptsDir}TagesriegelLedFlash.py
- python ${scriptsDir}TagesriegelLedOff.py
- fi
- exit 0
Das Skript fragt zunächst den Status einer Systemvariablen "EG Haustür SV Tagesriegel" meiner CCU ab. Ist der Status 1, dann wird das Pythonskript "TagesriegelLedFlash.py"
im Hintergrund aufgerufen. Ist der Status 0, dann wird das Pythonskript wieder beendet, falls es noch laufen sollte, und das Pythonskript "TagesriegelLedOff.py"
ausgeführt.
Hier noch der Vollständigkeit halber das auf der CCU laufende Skript zum Starten des obigen Shellskripts:
Code
- ! DoorPi Tagesriegel-LED ansteuern
- ! Version 1.0, Autor: dtp
- ! +++++ Einwahldaten des DoorPi +++++
- string login = "pi@192.168.0.21";
- ! #####################################################################
- ! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
- ! #####################################################################
- ! +++++ Tagesriegel-LED per Shellskript ansteuern +++++
- (dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC")).State("ssh "#login#" 'bash /usr/local/etc/DoorPi/scripts/TagesriegelStatus.sh'");