MIOS Binding has stopped working recently

I am running Openhab 2.5.7 Just today I am getting the following error. any help would be appreciated.

2020-08-20 18:24:08.325 [ERROR] [el.item.internal.GenericItemProvider] - Binding configuration of type ‘mios’ of item ‘SystemZWaveStatusString’ could not be parsed correctly.
org.eclipse.smarthome.model.item.BindingConfigParseException: Config for item ‘SystemZWaveStatusString’ could not be parsed. Bad thing format ‘unit:homeVera, system:/ZWaveStatus,in:MAP(miosZWaveStatusIn.map)’
at org.openhab.core.binding.internal.BindingConfigReaderDelegate.processBindingConfiguration(BindingConfigReaderDelegate.java:55) ~[?:?]
at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:369) ~[?:?]
at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:338) ~[?:?]
at org.eclipse.smarthome.model.item.internal.GenericItemProvider.processBindingConfigsFromModel(GenericItemProvider.java:210) ~[?:?]
at org.eclipse.smarthome.model.item.internal.GenericItemProvider.modelChanged(GenericItemProvider.java:404) ~[?:?]
at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:311) ~[?:?]
at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:149) ~[?:?]
at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:247) ~[?:?]
at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.processWatchEvent(FolderObserver.java:310) ~[?:?]
at org.eclipse.smarthome.core.service.WatchQueueReader.lambda$3(WatchQueueReader.java:323) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_265]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_265]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_265]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_265]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_265]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_265]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]
Caused by: org.openhab.model.item.binding.BindingConfigParseException: Config for item ‘SystemZWaveStatusString’ could not be parsed. Bad thing format ‘unit:homeVera, system:/ZWaveStatus,in:MAP(miosZWaveStatusIn.map)’
at org.openhab.binding.mios.internal.MiosBindingProviderImpl.parseBindingConfig(MiosBindingProviderImpl.java:183) ~[?:?]
at org.openhab.binding.mios.internal.MiosBindingProviderImpl.processBindingConfiguration(MiosBindingProviderImpl.java:142) ~[?:?]
at org.openhab.core.binding.internal.BindingConfigReaderDelegate.processBindingConfiguration(BindingConfigReaderDelegate.java:53) ~[?:?]
… 16 more

Adding. I have updated my Raspberry PI instance to 2.5.7 with the latest Zulu 8 32bit Java. And the PI instance doesn’t seem to have this issue.

I have tried manually installing on Debian 10 and Ubuntu 20. Both are using the same version of OpenHAB and Java.

I still get the above error for all my MIOS Items.

Any input guys? Do I need to add more info?

Turned debugging on for the MIOS binding. updated log entry below:

2020-08-22 09:56:28.263 [DEBUG] [ab.binding.mios.internal.MiosBinding] - bindingChanged: start provider ‘org.openhab.binding.mios.internal.MiosBindingProviderImpl@19bc516’, itemName ‘MyGarageDeadboltId’

2020-08-22 09:56:28.263 [DEBUG] [ab.binding.mios.internal.MiosBinding] - registerItemWatch: start miosProvider ‘org.openhab.binding.mios.internal.MiosBindingProviderImpl@19bc516’, itemName ‘MyGarageDeadboltId’

2020-08-22 09:56:28.264 [DEBUG] [ab.binding.mios.internal.MiosBinding] - registerItemWatch: no connector miosProvider ‘org.openhab.binding.mios.internal.MiosBindingProviderImpl@19bc516’, itemName=‘MyGarageDeadboltId’

2020-08-22 09:56:28.265 [DEBUG] [ios.internal.MiosBindingProviderImpl] - processBindingConfiguration: Exception parsing/validating context ‘test.items’, item’My2GarageDeadboltId (Type=NumberItem, State=Uninitialized)’, bindingConfig ‘unit:homeVera, device:9/id’. Exception is Config for item ‘My2GarageDeadboltId’ could not be parsed. Bad thing format ‘unit:homeVera, device:9/id’.

2020-08-22 09:56:28.266 [ERROR] [el.item.internal.GenericItemProvider] - Binding configuration of type ‘mios’ of item ‘My2GarageDeadboltId’ could not be parsed correctly.

org.eclipse.smarthome.model.item.BindingConfigParseException: Config for item ‘My2GarageDeadboltId’ could not be parsed. Bad thing format ‘unit:homeVera, device:9/id’

at org.openhab.core.binding.internal.BindingConfigReaderDelegate.processBindingConfiguration(BindingConfigReaderDelegate.java:55) ~[?:?]

at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:369) ~[?:?]

at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:338) ~[?:?]

at org.eclipse.smarthome.model.item.internal.GenericItemProvider.processBindingConfigsFromModel(GenericItemProvider.java:210) ~[?:?]

at org.eclipse.smarthome.model.item.internal.GenericItemProvider.modelChanged(GenericItemProvider.java:404) ~[?:?]

at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:311) ~[?:?]

at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:149) ~[?:?]

at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:247) ~[?:?]

at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.processWatchEvent(FolderObserver.java:310) ~[?:?]

at org.eclipse.smarthome.core.service.WatchQueueReader.lambda$3(WatchQueueReader.java:323) ~[?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_265]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_265]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_265]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_265]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_265]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_265]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]

Caused by: org.openhab.model.item.binding.BindingConfigParseException: Config for item ‘My2GarageDeadboltId’ could not be parsed. Bad thing format ‘unit:homeVera, device:9/id’

at org.openhab.binding.mios.internal.MiosBindingProviderImpl.parseBindingConfig(MiosBindingProviderImpl.java:183) ~[?:?]

at org.openhab.binding.mios.internal.MiosBindingProviderImpl.processBindingConfiguration(MiosBindingProviderImpl.java:142) ~[?:?]

at org.openhab.core.binding.internal.BindingConfigReaderDelegate.processBindingConfiguration(BindingConfigReaderDelegate.java:53) ~[?:?]

... 16 more

Still nothing?

Tried rebooting Vera? Any changes to Vera?

Thanks for the reply Greg, Vera hasn’t changed as far as I am aware. I have narrowed down the problem and have a solution which I will outline below.

OK everyone, I finally have narrowed down what is causing the issue. I have a work around at present, but would be interested in what people think should be the longer term solution.

My current environment:

  • OpenHAB running on a PI
  • Visual Studio Code with OpenHAB 0.7.0 and openHAB Alignment Tool 2.0.8

Environment I have been testing:

  • OpenHAB on Debian / Ubuntu (trialling both)

Observations

  • Both instances running the same Java JDK
  • Same config files
  • Same bindings
  • Everything the same!

Issues

  • MIOS Binding throwing the above errors
  • All other bindings behaving

Solution / Workaround

  • I tracked down the issue to the MIOS Binding having issues with the “thing” eg. {mios=“unit:homeVera, device:1/id”}
  • The issue was in the MiosBindingProviderImpl.java file
  • Line of code being matcher = IN_CONFIG_PATTERN.matcher(inThing);
  • Current MIOS Binding doesn’t handle a space between unit and device.
  • This doesn’t cause an issue on the PI, but breaks the Ubuntu and Debian versions
  • Removing the space fixes the issue.
  • The MIOS Item Generator doesn’t output the thing definition with a space.
  • the Visual Code OpenHAB Alignment plugin adds the space.

Final thoughts

  • Is this actually an issue? does MIOS Binding need to handle the space?
  • Does the Visual Code Alignment tool need updating as to not add the space?

In any case, I have a way forward at the moment, but interested to hear everyone’s thoughts.

1 Like