cool, das es läuft.
Nur das ich das richtig verstanden hab...es war der Eintrag in der
Code: Alles auswählen
/etc/sudoers
CU
Cyrelian
Code: Alles auswählen
/etc/sudoers
Code: Alles auswählen
Switch MOB001 "Zu Hause [%s]" { exec="<[/etc/opt/iphonedetect.sh:60000:REGEX((.*?))]" }
Code: Alles auswählen
Frame label="Presence" {
Text item=MOB001
Switch item=MOB001 icon="present" valuecolor=[ON="green",OFF="blue"]}
Code: Alles auswählen
#!/bin/bash
declare -a DEVICES
hping3 -2 -c 10 -p 5353 -i u1 192.168.1.154 -q >/dev/null 2>&1
DEVICES=`arp -an | awk '{print $4}'`
CHECK="xx:xx:xx:xx:b6:d5"
if [[ ${DEVICES[*]} =~ $CHECK ]]
then
echo "ON"
else
echo "OFF"
fi
Code: Alles auswählen
etc/opt
Code: Alles auswählen
etc/sudoers
Code: Alles auswählen
arp -an | awk '{print $4}'
Code: Alles auswählen
ip neigh flush all
Code: Alles auswählen
arp -an | awk '{print $4}'
Code: Alles auswählen
hping3 -2 -c 10 -p 5353 -i u1 192.168.1.154 -q >/dev/null 2>&1
Code: Alles auswählen
#!/bin/bash
declare -a DEVICES
sudo hping3 -2 -c 10 -p 5353 -i u1 192.168.1.154 -q >/dev/null 2>&1
DEVICES=`sudo arp -an | awk '{print $4}'`
CHECK="xx:xx:xx:xx:b6:d5"
if [[ ${DEVICES[*]} =~ $CHECK ]]
then
echo "ON"
else
echo "OFF"
fi
Code: Alles auswählen
pi@raspberrypi:/etc/opt $ ./iphonedetect.sh
ON
pi@raspberrypi:/etc/opt $ ./iphonedetect.sh
OFF
Code: Alles auswählen
/usr/sbin/hping3 -2 -c 10 -p 5353 -i u1 192.168.000.000 -q >/dev/null
DEVICES=`/usr/sbin/arp -an | awk '{print $4}'`
if [[ $DEVICES == *48:XX:XX:XX:XX:XX* ]]
then
echo "Seppy anwesend"
curl --max-time 2 --connect-timeout 2 --header "Content-Type: text/plain" --request POST --data "ON" http://homebox.heideweg.local/rest/items/PresenceSeppyMobile
else
echo "Seppy abwesend"
curl --max-time 2 --connect-timeout 2 --header "Content-Type: text/plain" --request POST --data "OFF" http://homebox.heideweg.local/rest/items/PresenceSeppyMobile
fi
Code: Alles auswählen
{ exec="<[/etc/opt/iphonedetect.sh:60000:REGEX((.*?))]" }
Code: Alles auswählen
Switch MOB001 "Zu Hause [%s]" { exec="<[/etc/opt/iphonedetect.sh:60000:REGEX((.*?))]" }
Code: Alles auswählen
String MOB002_WLAN "Handy 02 [%s]" (gPraesenz) {exec="<[/scripts/detectiphone02.sh:60000:REGEX((.*?))]"}
Code: Alles auswählen
rule "Jemand ist zuhause"
when
Item MOB001_WLAN changed or
Item MOB002_WLAN changed or
System started
then
if (MOB001_WLAN.state == "Anwesend" || MOB002_WLAN.state == "Anwesend"){
logInfo("PraesenzRules:", "Jemand ist zuhause")
}
if (MOB001_WLAN.state == "Abwesend" && MOB002_WLAN.state == "Abwesend"){
logInfo("PraesenzRules:", "Alle unterwegs")
}
end
rule "MOB002 ist Zuhause"
when
Item MOB002_WLAN changed or
System started
then
if (MOB002_WLAN.state == "Anwesend"){
logInfo("PraesenzRules:", "MOB002 ist Zuhause")
MOB002.postUpdate(ON)
}
else {
logInfo("PraesenzRules:", "MOB002 ist nicht Zuhause")
MOB002.postUpdate(OFF)
}
end
rule "MOB001 ist Zuhause"
when
Item MOB001_WLAN changed or
System started
then
if (MOB001_WLAN.state == "Anwesend"){
logInfo("PraesenzRules:", "MOB001 ist Zuhause")
MOB001.postUpdate(ON)
}
else {
logInfo("PraesenzRules:", "MOB001 ist nicht Zuhause")
MOB001.postUpdate(OFF)
}
end
Code: Alles auswählen
ON=Anwesend
OFF=Abwesend
undefined=unbekannt
-=-Fehler bei der Initialisierung-
1.) Cron Job, kommt in die "crontab" crontab --helponkelbobby hat geschrieben:Hallo Seppy,
danke... ich werde heute Abend mal Deine Variante ausprobieren.
Wo und wie muss ich denn den cron in openHAB integrieren, dass er das Script ausführt? Muss ich dafür ne Rule erstellen?
wo auf dem Raspberry liegt denn die /rest/items?
sorry, dass ich solche Anfängerfragen stelle ...
Grüße
Bobby
Code: Alles auswählen
http://ipvondeinemopenhab:8080/rest/items
aber gerne dochseppy hat geschrieben:@Cyrelian: Danke