i only did my rule like that as thats how its done in the turorial will change now …
rule "Kodi Video Library Scan"
when
Item Kodi_Rescan received command
then
executeCommandLine("/etc/openhab2/scripts/Kodi_rescan.sh")
end
log returns
2018-08-02 20:56:01.378 [ERROR] [lipse.smarthome.io.net.exec.ExecUtil] - couldn't execute commandLine '/etc/openhab2/scripts/Kodi_rescan.sh'
java.io.IOException: Cannot run program "/etc/openhab2/scripts/Kodi_rescan.sh": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) ~[?:?]
at java.lang.Runtime.exec(Runtime.java:620) ~[?:?]
at java.lang.Runtime.exec(Runtime.java:450) ~[?:?]
at java.lang.Runtime.exec(Runtime.java:347) ~[?:?]
at org.eclipse.smarthome.io.net.exec.ExecUtil.executeCommandLine(ExecUtil.java:63) ~[?:?]
at org.eclipse.smarthome.model.script.actions.Exec.executeCommandLine(Exec.java:43) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1085) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1060) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1046) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:991) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:143) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:864) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:223) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
at org.eclipse.smarthome.model.script.runtime.internal.engine.ScriptImpl.execute(ScriptImpl.java:82) ~[?:?]
at org.eclipse.smarthome.model.rule.runtime.internal.engine.RuleEngineImpl.lambda$2(RuleEngineImpl.java:345) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method) ~[?:?]
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247) ~[?:?]
at java.lang.ProcessImpl.start(ProcessImpl.java:134) ~[?:?]
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ~[?:?]
... 33 more
==> /var/log/openhab2/events.log <==
2018-08-02 20:56:01.354 [ome.event.ItemCommandEvent] - Item 'Kodi_Rescan' received command ON
Shouldn’t openhabian be a member of the openhab group? I don’t have an openHABian install right now so I don’t know how it gets set up by default, but in my mind it makes more sense to have the files be owned by openhab:openhab and have the openhabian user be a member of the openhab group.
That should work through samba, but perhaps it doesn’t. Like I said, I don’t have an openHABian install to work with right now so can’t check.
But the standard approach would be that the file’s would be owned by either the user’s group or by some other group that doesn’t correspond with a user (e.g. sudo, dialout, gpio, etc). To give a user access to the files one usually adds that user to the group owner of the file, not change the group ownership of the file itself to the other user’s group. But maybe this is caused by a limitation of the samba share.
I think i am done. I can’t think of anything anymore. That’s similar to how execute scripts (i put the shell scripts in a subfolder recently).
Could you double check the characters in you rule? If you copy it to the linux shell and write an ls with a space in front, do you get the file listed?