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 ??
