
OH3 Anwesenheitserkennung
- peter-pan
- Beiträge: 2772
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: OH3 Anwesenheitserkennung
....
...davon bin ich weit entfernt. Ich bin froh, wenn ich "ls -alF" in der Konsole eintippen kann. Ich benutze Putty !!?? Hat das eine bestimmte Konsole ?

Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
- udo1toni
- Beiträge: 15269
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Anwesenheitserkennung
PuTTY hat damit nichts zu tun, PuTTY stellt lediglich ein Terminal zur Verfügung.
Welche Konsole Du gewöhnlich benutzt, ist in /etc/passwd hinterlegt, es ist der letzte Parameter in der Liste (die Liste führt alle User im System auf). Dort kann man auch sehen, dass die Standardkonsole des Users openhab /bin/false lautet, womit also verhindert wird, dass der User openhab sich überhaupt an einer Konsole anmelden kann (aber man kann das natürlich umgehen).
Gesendet von iPad mit Tapatalk
Welche Konsole Du gewöhnlich benutzt, ist in /etc/passwd hinterlegt, es ist der letzte Parameter in der Liste (die Liste führt alle User im System auf). Dort kann man auch sehen, dass die Standardkonsole des Users openhab /bin/false lautet, womit also verhindert wird, dass der User openhab sich überhaupt an einer Konsole anmelden kann (aber man kann das natürlich umgehen).
Gesendet von iPad mit Tapatalk
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
- peter-pan
- Beiträge: 2772
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: OH3 Anwesenheitserkennung
Erst mal Danke für den guten Tipp.
Ich hoffe, ich kann mir das eine Weile merken (in meinem Alter

Das hat mich dann auf die Idee gebracht den Befehl executeCommandLine mal mit einem Shell/Bash-Script zu verwenden, und siehe da, es hat geklappt.
Die Rule:
Code: Alles auswählen
rule "test execute"
when
Item Dummy_3 changed to ON
then
// Version 1 - funktioniert nicht - ich kann den Grund nicht finden
var pingresult = executeCommandLine(Duration.ofSeconds(10),"/bin/ping","-c5","-W1", "192.168.178.xy", ">", "/dev/null", "&&", "echo", "online", "||", "echo", "offline") // String in einer Variablen zwischenspeichern
logInfo("execute-Version 1","String - pingresult: {}", pingresult) // Log pingresult
// Version 2 - Der Shell-Befehl verpackt in einem Bash-Script, dann klappt's
pingresult = executeCommandLine(Duration.ofSeconds(10),"/bin/bash","/etc/openhab/scripts/ping_test.sh") // String in einer Variablen zwischenspeichern
logInfo("execute-Version 2","String - pingresult: {}", pingresult) // Log pingresult
/* Das Bash-Script - als Beispiel - Einfacher geht's aber mit dem Network-Binding ;) (Auch in OH3)
#!/bin/bash
INPUT=$(/bin/ping -c5 -W1 192.168.178.zz >/dev/null && echo 'online' || echo 'offline')
echo $INPUT
*/
end
Das Ergebnis im Log sieht dann so aus:
Code: Alles auswählen
2021-06-27 12:39:05.262 [INFO ] [.core.model.script.execute-Version 1] - String - pingresult: ping: offline: Der Name oder der Dienst ist nicht bekannt
2021-06-27 12:39:09.448 [INFO ] [.core.model.script.execute-Version 2] - String - pingresult: online
.things:
Code: Alles auswählen
Thing network:pingdevice:printerWF2760 [ hostname="192.168.178.ab", retry=1, timeout=5000, refreshInterval=60000 ]
Thing network:pingdevice:pi3b_ohtest [ hostname="192.168.178.cd", retry=1, timeout=5000, refreshInterval=60000 ]
Thing network:pingdevice:iPhoneSE1_Peter [ hostname="192.168.178.ef", retry=1, timeout=5000, refreshInterval=60000 ]
Thing network:pingdevice:iPhoneClaudia [ hostname="192.168.178.gh", retry=1, timeout=5000, refreshInterval=60000 ]
Code: Alles auswählen
Group:Number:SUM gNet "Netzwerk [%d]" <network> [NetworkAppliance] // Number of "Online"-Devices
Switch Printer_WF2760 "Drucker WF-2760 [MAP(tech.map):%s]" <workforce> (gNet) [Point] {channel="network:pingdevice:printerWF2760:online"}
Switch Pi3b_online "RPi3b OH-Test [MAP(tech.map):%s]" <network> (gNet) [Point] {channel="network:pingdevice:pi3b_ohtest:online"}
Switch iPhoneSE1_Peter "iPhoneSE1 Peter 43[MAP(tech.map):%s]" <iphone> (gNet) [Point] {channel="network:pingdevice:iPhoneSE1_Peter:online"}
Switch iPhone_Claudia "iPhone Claudia[MAP(tech.map):%s]" <iphone> (gNet) [Point] {channel="network:pingdevice:iPhoneClaudia:online"}
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
- peter-pan
- Beiträge: 2772
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: OH3 Anwesenheitserkennung
Hier noch ein kleiner Nachtrag. Ich habe das Ganze mal im internationalen Forum gepostet und ein lieber Mitstreiter hat auch gleich die Lösung gepostet. Hier also noch mal die überarbeitete Test-Rule:
Version 1 sollte nun deinen Wünschen entsprechen.
Ganz unten in der Rule findest du den Link des englischen Threads und die Lösung von Norbert.
Viel Spass!!!
Code: Alles auswählen
rule "test execute Command"
when
Item Dummy_3 changed to ON
then
// Version 1 - funktioniert nicht - ich kann den Grund nicht finden
var pingresult = executeCommandLine(Duration.ofSeconds(5), "/bin/bash", "-c", "/bin/ping -c5 -W1 192.168.178.99 > /dev/null && /bin/echo 'online' || /bin/echo 'offline'")
logInfo("execute-Version 1","String - pingresult: {}", pingresult) // Log pingresult
// Version 2 - Der Shell-Befehl verpackt in einem Bash-Script, dann klappt's
pingresult = executeCommandLine(Duration.ofSeconds(10),"/bin/bash","/etc/openhab/scripts/ping_test.sh") // String in einer Variablen zwischenspeichern
logInfo("execute-Version 2","String - pingresult: {}", pingresult) // Log pingresult
// Version 3 - Shell-Kommando - einfach
pingresult = executeCommandLine(Duration.ofSeconds(2),"/bin/ls", "-alF") // String in einer Variablen zwischenspeichern
logInfo("execute-Version 3","String - pingresult: {}", pingresult) // Log pingresult
/* Das Bash-Script - als Beispiel - Einfacher geht's mit dem Network-Binding ;)
#!/bin/bash
INPUT=$(/bin/ping -c5 -W1 192.168.178.99 >/dev/null && /bin/echo 'online' || /bin/echo 'offline')
echo $INPUT
*/
// https://community.openhab.org/t/how-to-use-executecommandline-correctly/123987 - Solution from @NorbertHD for Version 1
end
Ganz unten in der Rule findest du den Link des englischen Threads und die Lösung von Norbert.
Viel Spass!!!
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 28
- Registriert: 11. Jul 2019 17:40
Re: OH3 Anwesenheitserkennung
Super vielen Dank das werde ich dann mal mit dem IPhone meiner Frau testen.
Das hat zumindest unter OH 2.5 besser funktioniert als des Network Binding in 3.0.
Das hat zumindest unter OH 2.5 besser funktioniert als des Network Binding in 3.0.
- peter-pan
- Beiträge: 2772
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: OH3 Anwesenheitserkennung
...aber wie gesagt, das Iphone ist da nicht besonders geeignet, da es sich nach eine Weile von selbst in einen "deep-sleep" legt, auch wenn es im WiFi-Bereich ist.
Falls du dann meinst du hast sturmfreie Bude und du kannst deine Kumpels zusammen trommeln-> Pustekuchen ....

Falls du dann meinst du hast sturmfreie Bude und du kannst deine Kumpels zusammen trommeln-> Pustekuchen ....



Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 9
- Registriert: 9. Aug 2021 21:12
Re: OH3 Anwesenheitserkennung
Mit meinem Android handy klappt die Erkennung super. Mit meinem win10 Desktop (macht natürlich für eine Anwesenheitserkennung kein Sinn aber für andere Sachen) habe ich das Problem das er dauerthaft offline angezeigt wird. Habe sowohl via IP als auch hostname Mac getestet.
Jemand eine Idee (Netzwerk Modus am PC ist privat)
Jemand eine Idee (Netzwerk Modus am PC ist privat)
- peter-pan
- Beiträge: 2772
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: OH3 Anwesenheitserkennung
Ich weiss zwar nicht genau, was du damit meinst (evtl. Status: Privates Netzwerk ???), aber bei mir klappt das ganz gut:
Das Network-Binding ist installiert und konfiguriert ?
Thing (Channel) für PC angelegt und wird als Online angezeigt ? Und ein Switch-Item ist auch angelegt und mit dem Channel verlinkt ?
Dann sollte es eigentlich passen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 9
- Registriert: 9. Aug 2021 21:12
Re: OH3 Anwesenheitserkennung
Danke Peter, genau das meinte ich "Status Privates Netzwerk" bei öffentlich wird so einiges automatisch von MS geblockt. Habe genau so eingestellt, wenn ich in genau diesem Things die IP auf die einen anderen Gerätes wie zb. Handy, HUE etc. ändere ist auch online. Bin aber weiter gekommen, es liegt an der Windows Firewall, auf einer VM win7 konnte ich ganz abstellen (ob man das will ist ein anderen Thema) und es funktioniert. Mit Windows 10 kämpfe ich gerade noch das es bei abgeschalteter Firewall auf Ping reagiert. Wenn das auch klappt, muss man mal schauen das man eine sprechende Regel anlegt.
-
- Beiträge: 9
- Registriert: 9. Aug 2021 21:12
Re: OH3 Anwesenheitserkennung
Update: nur ICMPv4 Echoanforderung in der Firewall erlaubt macht zwar Pingbar via CMD vom anderen Gerät (die Funktion kann man damit super testen) jedoch reicht das nicht für OpenhHAB. Nur das Vollständige deaktivieren der Firewall hilft, also ist die Frage welche Regel man in der Firewall zusätzlich hinzufügen muss um es gezielt zu erlauben.
ICMP: zum testen erst mal lieber mehr freigeben als zu wenig
- für v4 und v6
- für Domain, privat und öffentliches Netzwerk
- beliebige Local IP
sonst fällt mir nichts mehr ein, echt schon komisch das alle meine Windows Geräte sich so verhalten
ICMP: zum testen erst mal lieber mehr freigeben als zu wenig
- für v4 und v6
- für Domain, privat und öffentliches Netzwerk
- beliebige Local IP
sonst fällt mir nichts mehr ein, echt schon komisch das alle meine Windows Geräte sich so verhalten