Habe bzgl. LE Scan einen Script geschrieben:
#!/bin/bash
hcitool lescan > /tmp/res.txt & sleep 10
pkill --signal SIGINT hcitool
sleep 1
markus=$(grep -c 0E:0A:14:09:7E:11 /tmp/res.txt)
if [ $markus -gt 0 ]; then
echo 1
else
echo 0
fi
rm /tmp/res.txt
Der Script liefert auch 1 bei "Sichtbarkeit":
markus@qfserver:/opt/fhem$ sudo ./lescan_markus.sh
1
markus@qfserver:/opt/fhem$
Leider zeigt PRESENCE trotzdem immer absent an:
2014.11.20 17:05:05 5: PRESENCE (Pebble.Markus) - blocking scan result: Pebble.Markus|1|absent
2014.11.20 17:05:05 5: PRESENCE (Pebble.Markus) - script output: 0
2014.11.20 17:04:54 5: PRESENCE (Pebble.Markus) - execute local shell script: Pebble.Markus|/opt/fhem/lescan_markus.sh|1
2014.11.20 17:04:54 5: PRESENCE (Pebble.Markus) - starting blocking call for mode shellscript
2014.11.20 17:04:54 5: PRESENCE (Pebble.Markus) - starting local scan
2014.11.20 17:04:25 4: PRESENCE (Pebble.Markus) - rescheduling next check in 300 seconds
Woran könnte das liegen?
hmm, da steht aber ja extra in der Log-Zeile:
2014.11.20 17:05:05 5: PRESENCE (Pebble.Markus) - script output: 0
So bekomme ich es 1-zu-1 von der Shell zurückgeliefert.
Bitte beachte auch, ob dein FHEM User unter dem fhem.pl läuft, ausreichende Rechte für einen Aufruf von hcitool lescan hast ;-)
In deinem lokalen versuch, hast du ja "sudo" verwendet. Evtl. auch sudo im Skript verwenden.
Ich bekomm es einfach nicht hin :'(
fhem habe ich zur Gruppe sudo hinzu gefügt und die Befehle werden im Script mit sudo aufgerufen.
Alles ohne Erfolg >:(
Was ist mit dem File /tmp/res.txt? Wem gehört das File? root oder fhem? Da du das Skript vorher als root auf der Shell gestartet hast, sollte es nicht möglich sein für fhem da rein zu schreiben.
Nein, am TXT kann es nicht liegen, da muss hem ja nicht rein schreiben, nur der Script liest daraus.
Er wird aber auch von user hem angelegt.
Mittlerweile habe ich es wohl hinbekommen.
Problem war, dass der Aufruf von hcitool mit sudo auch das sudo Passwort wollte.
Dies umgehe ich, indem ich in der sudoers das deaktiviere.