Yeah, followed the getting started steps. Don’t really remember why I selected /usr/local/openhab . I had a good reason at some point.
Can’t hurt, that’s for sure.
I nuked the openhab.log file right before restarting last night, so easy to grab…
2016-06-19 22:32:34.345 [DEBUG] [o.config.core.ConfigDispatcher] - Processing openHAB default configuration file '/usr/local/openhab/configurations/openhab_default.cfg'.
2016-06-19 22:32:34.431 [ERROR] [o.config.core.ConfigDispatcher] - Default openHAB configuration file 'configurations/openhab_default.cfg' cannot be read.
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.7.0_101]
at java.io.File.createTempFile(File.java:2001) ~[na:1.7.0_101]
at org.eclipse.equinox.internal.cm.reliablefile.ReliableFile.getOutputStream(ReliableFile.java:341) ~[na:na]
at org.eclipse.equinox.internal.cm.reliablefile.ReliableFileOutputStream.<init>(ReliableFileOutputStream.java:98) ~[na:na]
at org.eclipse.equinox.internal.cm.reliablefile.ReliableFileOutputStream.<init>(ReliableFileOutputStream.java:49) ~[na:na]
at org.eclipse.equinox.internal.cm.ConfigurationStore.writeConfigurationFile(ConfigurationStore.java:113) ~[na:na]
at org.eclipse.equinox.internal.cm.ConfigurationStore$1.run(ConfigurationStore.java:99) ~[na:na]
at java.security.AccessController.doPrivileged(Native Method) [na:1.7.0_101]
at org.eclipse.equinox.internal.cm.ConfigurationStore.saveConfiguration(ConfigurationStore.java:97) ~[na:na]
at org.eclipse.equinox.internal.cm.ConfigurationImpl.update(ConfigurationImpl.java:255) ~[na:na]
at org.openhab.config.core.ConfigDispatcher.processConfigFile(ConfigDispatcher.java:212) [org.openhab.config.core_1.8.1.jar:na]
at org.openhab.config.core.ConfigDispatcher.initializeDefaultConfiguration(ConfigDispatcher.java:147) [org.openhab.config.core_1.8.1.jar:na]
at org.openhab.config.core.ConfigDispatcher.initializeBundleConfigurations(ConfigDispatcher.java:138) [org.openhab.config.core_1.8.1.jar:na]
at org.openhab.config.core.ConfigDispatcher.activate(ConfigDispatcher.java:99) [org.openhab.config.core_1.8.1.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_101]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_101]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_101]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_101]
at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.ServiceReg.getService(ServiceReg.java:53) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:141) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at java.security.AccessController.doPrivileged(Native Method) [na:1.7.0_101]
at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:139) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:468) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:467) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:594) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.equinox.internal.cm.ManagedServiceTracker.addingService(ManagedServiceTracker.java:65) [org.eclipse.equinox.cm_1.0.400.v20120522-1841.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:894) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:260) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:816) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:783) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70) [org.eclipse.equinox.util_1.0.400.v20120917-192807.jar:na]
2016-06-19 22:32:34.433 [DEBUG] [o.config.core.ConfigDispatcher] - Processing openHAB main configuration file '/usr/local/openhab/configurations/openhab.cfg'.
2016-06-19 22:32:34.467 [ERROR] [o.config.core.ConfigDispatcher] - Main openHAB configuration file 'configurations/openhab.cfg' cannot be read.
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.7.0_101]
at java.io.File.createTempFile(File.java:2001) ~[na:1.7.0_101]
at org.eclipse.equinox.internal.cm.reliablefile.ReliableFile.getOutputStream(ReliableFile.java:341) ~[na:na]
at org.eclipse.equinox.internal.cm.reliablefile.ReliableFileOutputStream.<init>(ReliableFileOutputStream.java:98) ~[na:na]
at org.eclipse.equinox.internal.cm.reliablefile.ReliableFileOutputStream.<init>(ReliableFileOutputStream.java:49) ~[na:na]
at org.eclipse.equinox.internal.cm.ConfigurationStore.writeConfigurationFile(ConfigurationStore.java:113) ~[na:na]
at org.eclipse.equinox.internal.cm.ConfigurationStore$1.run(ConfigurationStore.java:99) ~[na:na]
at java.security.AccessController.doPrivileged(Native Method) [na:1.7.0_101]
at org.eclipse.equinox.internal.cm.ConfigurationStore.saveConfiguration(ConfigurationStore.java:97) ~[na:na]
at org.eclipse.equinox.internal.cm.ConfigurationImpl.update(ConfigurationImpl.java:255) ~[na:na]
at org.openhab.config.core.ConfigDispatcher.processConfigFile(ConfigDispatcher.java:212) [org.openhab.config.core_1.8.1.jar:na]
at org.openhab.config.core.ConfigDispatcher.initializeMainConfiguration(ConfigDispatcher.java:169) [org.openhab.config.core_1.8.1.jar:na]
at org.openhab.config.core.ConfigDispatcher.initializeBundleConfigurations(ConfigDispatcher.java:139) [org.openhab.config.core_1.8.1.jar:na]
at org.openhab.config.core.ConfigDispatcher.activate(ConfigDispatcher.java:99) [org.openhab.config.core_1.8.1.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_101]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_101]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_101]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_101]
at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.ServiceReg.getService(ServiceReg.java:53) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:141) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at java.security.AccessController.doPrivileged(Native Method) [na:1.7.0_101]
at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:139) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:468) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:467) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:594) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.equinox.internal.cm.ManagedServiceTracker.addingService(ManagedServiceTracker.java:65) [org.eclipse.equinox.cm_1.0.400.v20120522-1841.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:894) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:260) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:816) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:783) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70) [org.eclipse.equinox.util_1.0.400.v20120917-192807.jar:na]
2016-06-19 22:32:34.486 [INFO ] [.o.core.internal.CoreActivator] - openHAB runtime has been started (v1.8.1).
2016-06-19 22:32:38.346 [INFO ] [o.o.i.s.i.DiscoveryServiceImpl] - mDNS service has been started
2016-06-19 22:32:38.463 [INFO ] [o.o.i.s.i.DiscoveryServiceImpl] - Service Discovery initialization completed.
2016-06-19 22:32:47.393 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'thermostat.sitemap'
2016-06-19 22:32:47.534 [INFO ] [penhab.io.rest.RESTApplication] - Started REST API at /rest
2016-06-19 22:32:47.896 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'default.sitemap'
2016-06-19 22:32:47.981 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'vera.sitemap'
2016-06-19 22:32:48.151 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'db4o.persist'
2016-06-19 22:32:48.212 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'mysql.persist'
2016-06-19 22:32:48.245 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'rrd4j.persist'
2016-06-19 22:32:48.259 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'logging.persist'
2016-06-19 22:32:48.279 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'exec.persist'
2016-06-19 22:32:48.398 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'other.items'
2016-06-19 22:32:48.494 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'locks.items'
2016-06-19 22:32:48.550 [INFO ] [c.internal.ModelRepositoryImpl] - Loading model 'thermostat.items'
(seems reasonable to stop copying info at this point)
…but that kind of brings up another question. When I was trying to enable debug logging for core, I added this to my logback.xml:
<logger name="org.openhab.config.core" level="TRACE" additivity="false">
<appender-ref ref="FILE" />
</logger>
…is that the correct method of getting core messages into openhab.log ?
SON OF A… well something certainly liked that chown -R! Just restarted after the chown, and now in my tcp binding log…
2016-06-20 08:17:09.657 [DEBUG] [AbstractDatagramChannelBinding:1337]- Setting up the outbound channel Channel [item=MYTHTV, command=0, direction=OUT, remote=/172.18.0.108:6948, bu
ffer=, isBlocking=false, isReconnecting=false, channel=, host=172.18.0.108, port=6948]
2016-06-20 08:17:09.658 [INFO ] [AbstractDatagramChannelBinding:1341]- 'Connecting' the channel Channel [item=MYTHTV, command=0, direction=OUT, remote=/172.18.0.108:6948, buffer=,
isBlocking=false, isReconnecting=false, channel=, host=172.18.0.108, port=6948]
2016-06-20 08:17:09.661 [DEBUG] [AbstractDatagramChannelBinding:1337]- Setting up the outbound channel Channel [item=MYTHTV3, command=OFF, direction=OUT, remote=/10.0.2.90:8888, bu
ffer=, isBlocking=false, isReconnecting=false, channel=, host=10.0.2.90, port=8888]
2016-06-20 08:17:09.664 [INFO ] [AbstractDatagramChannelBinding:1341]- 'Connecting' the channel Channel [item=MYTHTV3, command=OFF, direction=OUT, remote=/10.0.2.90:8888, buffer=,
isBlocking=false, isReconnecting=false, channel=, host=10.0.2.90, port=8888]
2016-06-20 08:17:09.665 [DEBUG] [AbstractDatagramChannelBinding:1305]- Setting up the outbound assigned channel Channel [item=MYTHTV3, command=ON, direction=OUT, remote=/10.0.2.90:
8888, buffer=, isBlocking=false, isReconnecting=false, channel=/172.18.0.55:41331::/10.0.2.90:8888, host=10.0.2.90, port=8888]
2016-06-20 08:17:09.666 [INFO ] [AbstractDatagramChannelBinding:1348]- There is already an active channel sun.nio.ch.DatagramChannelImpl@3596f070 for the remote end /10.0.2.90:8888
2016-06-20 08:17:09.668 [DEBUG] [AbstractDatagramChannelBinding:1337]- Setting up the outbound channel Channel [item=MYTHTV2, command=1, direction=OUT, remote=localhost/127.0.0.1:8
888, buffer=, isBlocking=false, isReconnecting=false, channel=, host=localhost, port=8888]
2016-06-20 08:17:09.669 [INFO ] [AbstractDatagramChannelBinding:1341]- 'Connecting' the channel Channel [item=MYTHTV2, command=1, direction=OUT, remote=localhost/127.0.0.1:8888, bu
ffer=, isBlocking=false, isReconnecting=false, channel=, host=localhost, port=8888]
Best of all, tcpdump verifies that udp packets are being blasted out on the correct port! Yay! (Now to go back a few days and not make it spew garbage… but that’s my deal. )
Wow, what a wild goose chase! Thanks so much @steve1 and @Udo_Hartmann an for hanging tough with this one!