ich bin openHAB User seit 1.8 und war immer stiller Mitleser bzw. Anwender der verschiedenen Lösungen die hier und auf anderen Kanälen angeboten wurden.
Ich hatte immer einen Mix aus Tipps von Seppy, Cyrelian, udo1toni, rIkoshak, stormi, etc. und bin damit gut gefahren.
Aktuell bin ich auf:
RasPi 5
OpenHabian 4.2.3
Seit den Anfängen benutze ich eine Präsenzerkennung aus einem Mix von Klenzl, Seppy & Cyrelian. Das hat seit Anfang ganz gut funktioniert , bis ich vor kurzem auf openHAB 4.0 gewechselt habe.Jetzt funktioniert irgendwie nix mehr.
Sitzt das Problem vor dem Rechner oder hat sich was geändert?
Ich poste hier mal meine Konfig
Items:
Code: Alles auswählen
ITEMS:
//Boris
String MOB1_WLAN "Boris Handy - WLAN-Ping" (gPraesenz) {channel="exec:command:MOB1_WLAN:output"}
String MOB1_BT "Boris Handy - Bluetooth" (gPraesenz) {channel="exec:command:MOB1_BT:output"}
Code: Alles auswählen
RULE (text based):
rule "Boris ist zu Hause"
when
Item MOB1_WLAN changed from OFF to ON or
Item MOB1_BT changed from OFF to ON
then
postUpdate(MOB1, ON)
logInfo("MOB1", "MOB1 ist an")
end
rule "Boris ist nicht mehr Zuhause"
when
Item MOB1_WLAN changed from ON to OFF or
Item MOB1_BT changed from ON to OFF
then
if ( MOB1_WLAN.state == OFF && MOB1_BT.state == OFF ) {
postUpdate(MOB1, OFF)
logInfo("MOB1", "MOB1 ist aus")
}
end
Code: Alles auswählen
#!/bin/bash
if [ -z "$1" ];
then
echo "PING SCRIPT SAYS - So geht das nicht"
exit 1;
fi
sudo ping -c1 $1 > /dev/null
if [ $? -ne 0 ];
then
echo "OFF"
else
echo "ON"
fi
Code: Alles auswählen
#!/bin/bash
#1=Boris, 2=B, 3=V, 4=V
case $1 in
# Hier ist die MAC Adresse grossgeschrieben, bei MB001/2 muss sie klein sein
1) MAC="80:XXX:5C" ;;
2) MAC="A8:XXX:B9" ;;
3) MAC="B0:XXX:9C" ;;
4) MAC="A8:XXX:83" ;;
esac
if sudo /usr/bin/l2ping -c 1 $MAC &> /dev/null
then
echo "ON"
else
echo "OFF"
fi
Code: Alles auswählen
//Präsenz
Thing exec:command:MOB1_WLAN [command="/etc/openhab/scripts/ping.sh 192.168.XXX", interval=20, timeout=30, transform="REGEX((.*?))"]
Thing exec:command:MOB1_BT [command="/etc/openhab/scripts/bt.sh 1", interval=20, timeout=30, transform="REGEX((.*?))"]
Code: Alles auswählen
#Praesenz
/etc/openhab/scripts/ping.sh 192.168.XX
/etc/openhab/scripts/bt.sh 1
Ich hatte in den letzten Tagen viele Log - Einträge eingebaut, Excec Binding auf Trace, etc.
Die Versuche bringen mich zu der Annahme, dass ich ein Problem mit dem if-Clause habe. Ich laufe dort einfach nicht rein - Ausführen der Scripts auf der Konsole bringen ordentliche Ergebnisse ...
Ich danke Euch schon mal im Voraus
Vorweihnachtliche Grüße
Boris