OH2 seems to stop reading in x.things file after a while

Got this error after about 4 days of operation and maybe 20-30 times of updating the items and things file.

19:13:14.275 [ERROR] [hab.binding.exec.handler.ExecHandler] - An exception occurred while executing ‘/enlistments/TpLink/tplink.exe --ip --action check’ : ‘Cannot run program “/enlistments/TpLink/Tp”: CreateProcess error=2, The system cannot find the file specified’

the matching thing was:
exec:command:office_desk_backlight_check “TP-PlugStatus” [command="/enlistments/tplink.exe --ip --action check", interval=15, timeout=5, transform=“REGEX(.stateX":"(.)”.*)", autorun=true]

Once I got this error, it almost looked like it wasn’t really reading in the .things configuration any more. No logs messages saying it was, and that “Tp Link” vs “TpLink” was a typo that I corrected within a couple of seconds.

Ideas on what could have caused this? Have others seen this when trying to debug/config?

More information…

Restarted OH2. The check item is working now, but the item above it, the thing I used to set the start of the device is now incorrect, in the old style.

When I save the .things file, I get:

19:29:48.402 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'jack.things’
19:29:48.413 [INFO ] [smarthome.event.ThingUpdatedEvent ] - Thing ‘exec:command:office_desk_backlight_check’ has been updated.
19:29:48.428 [INFO ] [smarthome.event.ThingUpdatedEvent ] - Thing ‘exec:command:office_desk_backlight’ has been updated.

However, when I try and switch it on and off, I now get:

19:29:59.982 [INFO ] [lipse.smarthome.io.net.exec.ExecUtil] - executed commandLine ‘/enlistments/tplink.exe on’

which is the old form… the new form should have " --ip --action " in the command line, like the example above. Tried commenting out the item and the thing, witnessed them being removed, but when they get back in, they still have the old line.


Okay, that one was a duh on me… forgot to save the rules file.

I keep on forgetting that I can’t get the EXEC .thing binding above to turn that device on an off, and resort to a rule to get that object changed.

Am I still missing something?