OH3 Anwesenheitserkennung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

DarkOfSoul
Beiträge: 28
Registriert: 11. Jul 2019 17:40
Answers: 0

OH3 Anwesenheitserkennung

Beitrag von DarkOfSoul »

Moin Moin zusammen,

ich hatte in OH 2.5 eine Anwesenheitserkennung aus einer Mischung von Fritzbox Binding und Ping. Immer wenn sich ein Handy was sich im W-Lan befand die Verbindung verliert. Wurde eine gewisse Zeit gewartet und dann das Gerät noch mal angepingt. Leider habe ich aus der Dokumentation nicht verstanden wie ich das Kommando in OH3 schreiben muss.

Code: Alles auswählen

val String pingresult = executeCommandLine("/bin/sh@@-c@@ping -c5 -W1 192.168.178.101 >/dev/null && echo 'online' || echo 'offline'", 10000)
Vielleicht kann mir einer den Befehl so umschreiben wie ich den in OH3 einsetzen muss damit er Funktioniert. Wenn er mir das auch noch erklären kann wie es sich zusammensetzt. Hoffe ich das ich die anderen Befehle selbst erstellen kann.

Vielen Dank!
DarkOfSoul

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: OH3 Anwesenheitserkennung

Beitrag von udo1toni »

Weißt Du, dass das Network Binding das nativ anbietet?


Gesendet von iPad mit Tapatalk
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

DarkOfSoul
Beiträge: 28
Registriert: 11. Jul 2019 17:40
Answers: 0

Re: OH3 Anwesenheitserkennung

Beitrag von DarkOfSoul »

Wenn du meinst das, daß Network Binding eine Funktion hat mit der ich nach einer gewissen Zeit nachschauen kann ob das Gerät wieder Online ist. Das wußte ich nicht und werde mir das mal am WE anschauen.

Man kann bei den zahlreichen Bindings ja nicht alle kennen. Das erklärt aber vielleicht warum man nichts im Netz gefunden hat.

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: OH3 Anwesenheitserkennung

Beitrag von udo1toni »

Na, das Network Binding kann regelmäßig Pings zu einem Gerät schicken. Der entsprechende Channel zeigt dann an, ob der Ping erfolgreich war oder nicht.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2771
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 Anwesenheitserkennung

Beitrag von peter-pan »

Ich hab das Network-Binding unter OH2 auch im Einsatz und das funktioniert auch soweit ganz gut, ausser mit IOS-Handys, die meöden sich manchmal von allein wieder ab (ddep-sleep ??!!).

Aber rein interessehalber, wie die richtige Parameter-Benutzung von "executCommandLine()" wäre.

Ich habe schon mal rumexperimentiert:

Code: Alles auswählen

rule "test execute"
when
    Item Dummy_3 changed to ON
then
//   val String pingresult = executeCommandLine(Duration.ofSeconds(10),"/bin/sh@@-c@@ping -c5 -W1 192.168.178.75 >/dev/null && echo 'online' || echo 'offline'")  // String in einer Variablen zwischenspeichern
   val String pingresult = executeCommandLine(Duration.ofSeconds(10),"ping","-c5","-W1", "192.168.178.123", ">/dev/null", "&&", "echo", "online", "||", "echo", "offline")  // String in einer Variablen zwischenspeichern
    logInfo("execute","String - pingresult: {}", pingresult)                             // Log  pingresult

end
VSC zeigt dann auch keine Fehlermeldung an. Aber im Log finde ich:

Code: Alles auswählen

2021-06-25 16:09:12.250 [INFO ] [rg.openhab.core.model.script.execute] - String - pingresult: ping: offline: Der Name oder der Dienst ist nicht bekannt
2021-06-25 16:10:36.835 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'test.rules'
2021-06-25 16:10:58.123 [INFO ] [rg.openhab.core.model.script.execute] - String - pingresult: ping: offline: Der Name oder der Dienst ist nicht bekannt
Egal ob ich mit einer falschen oder richtigen IP-Adresse teste.
Mir ist auch nicht ganz klar, warum "/bin/sh@@-c" benötigt wird ?? :oops: :cry:
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

DarkOfSoul
Beiträge: 28
Registriert: 11. Jul 2019 17:40
Answers: 0

Re: OH3 Anwesenheitserkennung

Beitrag von DarkOfSoul »

Guten Abend Ihr beiden,

also ich bin vom Network Binding bis jetzt begeistert. Das reagiert ja auch viel besser als die Erkennung über maconline. Okay das mit dem IOS könnte vielleicht noch zu einen Problem führen. Das werde ich mir die nächsten Tage mal genau beobachten.

@peter-pan: Habe ich dich richtig verstanden. Das dein Test zwar keine Fehlermeldung gab aber anscheinendie richtige IP nicht als Online erkannt hat?

Benutzeravatar
peter-pan
Beiträge: 2771
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 Anwesenheitserkennung

Beitrag von peter-pan »

..ja, genau. Du kannst die Rule so kopieren wie sie ist. Als Trigger zum Testen habe ich einfach ein ungebundenes Switch-Item (Dummy_3) genommen, du kannst aber auch jeden anderen Schalter zum triggern verwenden. Schau mal hier in der Doku.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: OH3 Anwesenheitserkennung

Beitrag von udo1toni »

Es kann sein, dass der gesamte Pfad zu ping angegeben werden muss.

Wichtig unter openHAB3 ist in der Tat, dass nun Leerzeichen nicht ersetzt werden, sondern stattdessen die Teilstrings als einzelne PÜarameter übergeben werden, wie peter-pan das gezeigt hat.


Gesendet von iPad mit Tapatalk
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2771
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 Anwesenheitserkennung

Beitrag von peter-pan »

Ich hab das mal in der Shell-Konsole ausprobiert und da klappt es mit und ohne Gesamtpfad:

Code: Alles auswählen

openhabian@openHABPi:~ $ /bin/ping -c5 -W1 192.168.178.75 > /dev/null && echo online || echo offline
online
openhabian@openHABPi:~ $ ping -c5 -W1 192.168.178.75 > /dev/null && echo online || echo offline
online
openhabian@openHABPi:~ $
Aber in der Rule ist kein Unterschied :?: :?:
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: OH3 Anwesenheitserkennung

Beitrag von udo1toni »

Ja, aber das Verhalten in der Konsole kann durchaus nicht unwesentlich abweichen. Das hängt damit zusammen, dass die Konsole konfiguriert werden kann. Für den User openhab ist die Konsole aber nicht konfiguriert, z.B. der Suchpfad für die Anwendungen (weshalb man im Zweifel komplette Pfade oder auch die Anwendung mitgeben muss, also z.B. den Interpreter)
Es gibt übrigens in debian mindestens zwei verschiedene Konsolen, nämlich bash und sh, weitere können nachinstalliert werden. Jede Konsole hat ihre Eigenheiten, und geübte Programmierer wählen bewusst eine bestimmte Konsole, um diese Eigenheiten zu ihrem Vorteil zu nutzen :)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten