Navigation Menu

Skip to content
This repository has been archived by the owner on May 17, 2021. It is now read-only.

[onewire] - Only tries initial owserver connection once? #4859

Closed
bracklanna opened this issue Dec 4, 2016 · 26 comments
Closed

[onewire] - Only tries initial owserver connection once? #4859

bracklanna opened this issue Dec 4, 2016 · 26 comments

Comments

@bracklanna
Copy link

bracklanna commented Dec 4, 2016

OpenHAB 1.8.3 with onewire binding active appears to only attempt a connection to the designated owserver server (in this case at 127.0.0.1) ONCE, when OpenHAB initially starts up.

If the owserver daemon either isn't ready & listening when OpenHAB starts, the OH onewire binding --> owserver TCP connection fails, and is never retried.

Similarly, if the owserver daemon needs to be restarted at some later time, perhaps because it quit of its own accord or as part of other system maintenance, OpenHAB & onewire binding never again look for the owserver.

Expected Behavior

Suggested behavior: Make available in the onewire section of openhab.cfg a configuration option defining how frequently the onewire binding should re-attempt to retry and/or reset a broken or non-existent initial owserver TCP connection.

Current Behavior

When openhab.sh is first started, when the onewire binding loads it attempt to connect to the defined owserver IP / port. (In my case, 127.0.0.1:4304). If the owserver is not responding or is not started, openhab.sh & onewire binding never again try to locate the owserver. It is necessary to kill & restart openhab.sh to re-establish the connection.

Your Environment

  • Version used: OH 1.8.3
  • Environment name and version: Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
  • Operating System and version: Ubuntu 16.04 LTS / i386
@9037568
Copy link
Contributor

9037568 commented Dec 4, 2016

I haven't been able to find the official site for the java owfs library being used here. Anyone know where that lives?

@watou
Copy link
Contributor

watou commented Dec 4, 2016

Anyone know where that lives?

Is it https://github.com/pakerfeldt/jowfsclient ?

@9037568
Copy link
Contributor

9037568 commented Dec 4, 2016 via email

@9037568
Copy link
Contributor

9037568 commented Dec 4, 2016

This looks like it's a fairly easy fix.

But there's already a "retry" setting for the binding. Do we need a new one or can we use this one?

# the retry count in case no valid value was returned
# upon read (optional, defaults to 3)
#onewire:retry=

I've done an initial implementation using this one that appears to work nicely. This includes a new optional 'retryInterval' configuration setting that defines the time between retries (default of 60 seconds).

I don't have an owserver to test against, however.

@bracklanna
Copy link
Author

bracklanna commented Dec 4, 2016

This looks like it's a fairly easy fix. But there's a "retry" setting for the binding. Do we need a new one or can we use this one?

My understanding is that the current #onewire:retry= setting applies to the 1wire sensor network retry interval, not the owserver connection-attempt status.

That is, let's say you have 25 1Wire sensors on a 1wire bus, and one or more sensors is not giving reliable data readings, e.g. due to electrical noise or physical bus wiring problems -- in that case, the binding uses #onewire:retry= count to know how many times to re-attempt a read on the non-responsive sensors, before giving up & moving on to other sensors.

That is separate from the issue I'm asking/requesting on, which is the overall connection to the owserver daemon. I retested this morning (by killing & restarting the owserver daemon in my setup) and can verify that after the owserver daemon connection drops, OH + onewire binding never re-attempts the connection (i.e. to localhost:4304.)

I have a working owserver here and can test for you, please advise on where to download an updated JAR for testing.

Thank you.

@bracklanna
Copy link
Author

bracklanna commented Dec 4, 2016

Also, as I understand it the current #onewire:retry= for sensors is an absolute number of tries (before fail / giving up,) not an interval.

Suggest clarifying that by making the new config option something like:

#onewire:server_retry_interval=
## Retry interval (in seconds) to re-attempt a broken TCP/IP connection to owserver

I propose the default retry interval to be 60 seconds, with a minimum interval of 1 second (to avoid flooding a network or hammering a server,) and no maximum interval.

To cover all possible future use cases (e.g. maybe involving some kind of fancy super-paranoid network firewalling setup) perhaps it would be good to include a "DISABLE" option as well, which would prevent any re-try attempt (after the first startup attempt upon initial OpenHAB startup.)

@9037568
Copy link
Contributor

9037568 commented Dec 5, 2016

Here's a jar of my initial attempt that uses the existing retry config setting.

Based on your input, I agree we need a new setting. I'll work on that soon. I think a minimum interval of 5 seconds sounds better, but I agree a "no retry" option is needed. Probably this will be implemented by setting the number of retries to 0.

@bracklanna
Copy link
Author

bracklanna commented Dec 5, 2016

Tested.
Works fine in both these scenarios:

  1. owserver already up & running when OpenHAB is started up, then owserver killed, and manually restarted.

  2. owserver NOT up & running when OpenHAB is started. (owserver manually started up after OH is already running.)

Comments:
The retrying of individual sensors is fundamentally different from the retrying of the owserver:4304 TCP connection, so I do not think the 2 functions should be bundled into 1 config option. It makes sense to try a flaky sensor X number of times, then give up (at least until the next polling loop) -- in fact it is necessary to give up on a sensor at some point, else the binding never moves on to the healthy sensors in line after the bad one(s).

But the owserver:4304 TCP connection should be retried at a specified interval indefinitely, because an OH setup that depends on 1Wire sensor data (e.g. temperature for example) will not function correctly without that data.

I agree that 5 seconds is probably fine as a minimum interval, that gives good responsiveness while keeping CPU/network load reasonable.

My comments are inserted into the log output, marked with ### below:
Log file output:

### owserver daemon was up and running at time OpenHAB was started: ---------
###

20:10:29.101 [INFO ] [o.o.b.o.i.c.OneWireConnection :150  ] - Connected to owserver [IP 'localhost' Port '4304']
20:10:30.108 [INFO ] [runtime.busevents             :26   ] - BackBedTempSensor state updated to 59.78750000000000142108547152020037174224853515625
20:10:31.228 [INFO ] [runtime.busevents             :26   ] - KitchenTempSensor state updated to 59.78750000000000142108547152020037174224853515625
20:10:33.517 [INFO ] [runtime.busevents             :26   ] - FrontBedTempSensor0 state updated to 61.47500000000000142108547152020037174224853515625

20:10:34.863 [DEBUG] [m.r.internal.engine.RuleEngine:305  ] - Executing rule 'FRONT BEDROOM THERMOSTATIC CONTROL'
20:10:34.879 [INFO ] [runtime.busevents             :26   ] - FrontBedroomTempSensor state updated to 63.72500000000000142108547152020037174224853515625
20:11:09.732 [INFO ] [runtime.busevents             :26   ] - FrontBedTempSensor5 state updated to 65.525000000000005684341886080801486968994140625#

###
###MANUALLY KILLED -9'ed the owserver daemon ----------
###

20:12:29.114 [ERROR] [o.o.b.o.i.c.OneWireConnection :299  ] - couldn't establish network connection while read attempt 1 '28.FFC7B870160520/temperature' ip:port=localhost:4304
java.net.SocketException: Broken pipe
	at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.8.0_91]
	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) ~[na:1.8.0_91]
	at java.net.SocketOutputStream.write(SocketOutputStream.java:132) ~[na:1.8.0_91]
	at java.io.DataOutputStream.writeInt(DataOutputStream.java:198) ~[na:1.8.0_91]
	at org.owfs.jowfsclient.internal.OwfsConnectionImpl.sendRequest(OwfsConnectionImpl.java:209) ~[org.owfs.jowfsclient-1.2.6.jar:na]
	at org.owfs.jowfsclient.internal.OwfsConnectionImpl.exists(OwfsConnectionImpl.java:158) ~[org.owfs.jowfsclient-1.2.6.jar:na]
	at org.openhab.binding.onewire.internal.connection.OneWireConnection.checkIfDeviceExists(OneWireConnection.java:251) ~[bundlefile:na]
	at org.openhab.binding.onewire.internal.connection.OneWireConnection.readFromOneWire(OneWireConnection.java:268) ~[bundlefile:na]
	at org.openhab.binding.onewire.internal.OneWireBinding.updateItemFromOneWire(OneWireBinding.java:293) [bundlefile:na]
	at org.openhab.binding.onewire.internal.OneWireBinding.devicePropertyWantsUpdate(OneWireBinding.java:247) [bundlefile:na]
	at org.openhab.binding.onewire.internal.scheduler.OneWireUpdateTask.run(OneWireUpdateTask.java:61) [bundlefile:na]

20:12:29.118 [INFO ] [o.o.b.o.i.c.OneWireConnection :161  ] - Trying to reconnect to owserver...
20:12:29.121 [WARN ] [o.o.b.o.i.c.OneWireConnection :116  ] - Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_91]
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_91]
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_91]
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_91]
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_91]
	at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_91]
	at org.owfs.jowfsclient.internal.OwfsConnectionImpl.tryToSocketConnectionAndStreamsInitialization(OwfsConnectionImpl.java:79) ~[org.owfs.jowfsclient-1.2.6.jar:na]
	at org.owfs.jowfsclient.internal.OwfsConnectionImpl.connect(OwfsConnectionImpl.java:70) ~[org.owfs.jowfsclient-1.2.6.jar:na]
	at org.owfs.jowfsclient.internal.OwfsConnectionImpl.establishConnectionIfNeeded(OwfsConnectionImpl.java:113) ~[org.owfs.jowfsclient-1.2.6.jar:na]
	at org.owfs.jowfsclient.internal.OwfsConnectionImpl.sendRequest(OwfsConnectionImpl.java:204) ~[org.owfs.jowfsclient-1.2.6.jar:na]
	at org.owfs.jowfsclient.internal.OwfsConnectionImpl.listDirectory(OwfsConnectionImpl.java:193) ~[org.owfs.jowfsclient-1.2.6.jar:na]
	at org.openhab.binding.onewire.internal.connection.OneWireConnection.connect(OneWireConnection.java:108) [bundlefile:na]
	at org.openhab.binding.onewire.internal.connection.OneWireConnection.reconnect(OneWireConnection.java:168) [bundlefile:na]
	at org.openhab.binding.onewire.internal.connection.OneWireConnection.readFromOneWire(OneWireConnection.java:301) [bundlefile:na]
	at org.openhab.binding.onewire.internal.OneWireBinding.updateItemFromOneWire(OneWireBinding.java:293) [bundlefile:na]
	at org.openhab.binding.onewire.internal.OneWireBinding.devicePropertyWantsUpdate(OneWireBinding.java:247) [bundlefile:na]
	at org.openhab.binding.onewire.internal.scheduler.OneWireUpdateTask.run(OneWireUpdateTask.java:61) [bundlefile:na]

20:12:29.125 [WARN ] [o.o.b.o.i.c.OneWireConnection :120  ] - Connection failed. Will retry in 60 seconds.

20:13:26.514 [INFO ] [runtime.busevents             :26   ] - Date state updated to 2016-12-04T20:13:26
20:13:29.126 [INFO ] [o.o.b.o.i.c.OneWireConnection :130  ] - Retrying failed connection...
20:13:29.129 [WARN ] [o.o.b.o.i.c.OneWireConnection :140  ] - Unexpected connection failure.

###deleted repeated "java.net.PlainSocket" & following error lines (from above) to save space---)
###

###
### MANUALLY RESTARTED owserver daemon (while OpenHAB was still running -----
###

20:14:29.133 [INFO ] [o.o.b.o.i.c.OneWireConnection :130  ] - Retrying failed connection...
20:14:30.381 [INFO ] [o.o.b.o.i.c.OneWireConnection :150  ] - Connected to owserver [IP 'localhost' Port '4304']
20:14:31.635 [INFO ] [runtime.busevents             :26   ] - BackBedTempSensor state updated to 59.6749999999999971578290569595992565155029296875

@bracklanna
Copy link
Author

bracklanna commented Dec 5, 2016

Another observation & request:

In the previous (1.8.3 / committed) onewire binding, when the owserver:4304 connection dies, OpenHAB very quickly becomes aware that sensor data is no longer updating, and it changes all the sensor outputs to undefined/null states. (e.g. it shows a "-" symbol, instead of say, "64.5ºF".

With your new test version 1.9.0, I notice that when the owserver:4304 connection is dropped, OpenHAB is not informed that the sensor data is stale / no longer updated.

I think it's important for the old behavior to be preserved, not only for continuity with historical behavior but because I think it's "the correct thing to do." Any number of situations where stale sensor data could detrimental, e.g. in a thermostat control loop for example.

@bracklanna
Copy link
Author

Update ~12 hours later, continued stable operation w/ your revised 1.9.0 version onewire JAR.

@9037568
Copy link
Contributor

9037568 commented Dec 6, 2016

Implemented the new setting:

# the number of attempts that will be made to connect to the owserver
# after a failed connection attempt. (optional; defaults to 3)
# If set to 0, no retries will be attempted.
#onewire:server_retries=3

# the time between connection attempts (optional; defaults to 60 seconds).
# may not be less than 5 seconds
#onewire:server_retryInterval=60

The new jar is ready for testing.

As to the behaviour of OpenHAB being "informed that the sensor data is stale", I'm not sure how that happens. I would have thought that sensor values would only change to UNDEF after a sensor read failure.

@watou
Copy link
Contributor

watou commented Dec 6, 2016

informed that the sensor data is stale

A binding should only post updates when the underlying source has in some way assertively indicated what the new state should be. A loss of connectivity to the source doesn't seem like a sufficient reason for the binding to assert that its items' states are unknown, but there can be extenuating circumstances that I'm unfamiliar with with this binding. Previous binding behavior should be considered, but not necessarily as the highest priority among other considerations.

There might be a reason to use the Expire binding in conjunction with this binding.

9037568 added a commit to 9037568/openhab that referenced this issue Dec 8, 2016
9037568 added a commit to 9037568/openhab that referenced this issue Dec 9, 2016
9037568 added a commit that referenced this issue Dec 10, 2016
* Update the onewire binding to retry failed connections.

Fixes #4859.

* Fix several problems noted by @watou.

* Add @author tag.
@bracklanna
Copy link
Author

bracklanna commented Dec 10, 2016

Sorry for the slow response. I had a chance to test @9037568's latest JAR (from 4 days ago) today:
It works as before, but I do note that the "server_retries" count is not respected. I have it set to 10 retries with interval 5 seconds. It tries every 5 seconds indefinitely and never gives up. Not necessarily a critical error as it leans more in the direction of system robustness anyhow, but I did notice it.

@bracklanna
Copy link
Author

bracklanna commented Dec 10, 2016

Back to the issue of the 1.8.3 binding behavior vs 1.9.0 behavior upon loss of server connection:

  • The 1.8.3 binding does something (I don't know what -- ) that results in OpenHAB rapidly learning that the current sensor data is stale. All the temps (in my case it's temperatures) go from a valid reading to a "-" null state.

  • The 1.9.0 binding changes this behavior. Upon loss of owserver connection, the sensor data is never expired.

Regarding @watou remarks on this:

A binding should only post updates when the underlying source has in some way assertively indicated what the new state should be. A loss of connectivity to the source doesn't seem like a sufficient reason for the binding to assert that its items' states are unknown, but there can be extenuating circumstances that I'm unfamiliar with with this binding.

I argue that if the OneWire binding cannot connect to its sole source of data any longer, and that data source is known to be a constantly-updated stream of sensor information such as temperature, light level, etc., in fact that IS a strong case for the binding no longer knowing what state the sensors are in. (I can see how this may not apply to other bindings, because they are different in nature -- but OneWire is very frequently used in a constantly-updating sensor mode.)

In a thermostat control situation (which is my particular use case, but I can imagine plenty of others,) a heater-control rule that believes a temperature is 66.2 ºF indefinitely / forever is at a minimum a potential huge waste of energy, and worst a dire physical hazard if it leads to overtemperature and fire. If OpenHAB reports the sensor data as "null," the rule can simply shut off the heater as a precaution (and perhaps send a notification).

I request that, if it is not too much work, the 1.9.0 binding keeps continuity with the 1.8.3 binding in this regard. Attached screenshots show examples of "stale" sensor data that no longer updates, vs. "nulled" sensor data which 1.8.3 throws within seconds of losing an owserver:4304 socket connection.

Example of safely nulled sensor info from 1.8.3 binding, with no owserver socket connection:
screen shot 2016-12-10 at 12 58 12 pm

Example of "stale, stuck" sensor info from 1.9.0 binding, with no owserver socket connection:
screen shot 2016-12-10 at 1 59 09 pm

@watou
Copy link
Contributor

watou commented Dec 10, 2016

binding no longer knowing what state the sensors are in.

It's true that the binding may no longer know recent sensors' states, but that's not the same as knowing that all the states should be changed to reflect a loss of connectivity to a different "bridge" component. Having the binding work like that makes it different from almost all other 1.x bindings. (Eclipse SmartHome has an online state for things to address the binding connection question, that isn't present in OH1.) Some bindings can keep a separate item up to date with the last update time, and/or you can use timers in rules or the expire binding. In any case, the proper state would be UnDefType.UNDEF, not UnDefType.NULL.

These points are separate from the question of whether there is a need for complete compatibility with the previous version of the binding.

Just my .02.

@bracklanna
Copy link
Author

bracklanna commented Dec 10, 2016

I understand your reasoning & explanations, & thanks for the correction on .UNDEF vs. .NULL. If it is difficult (>15 minutes of coding?) to restore the previous behavior to keep compatibility with 1.8.3, I will try working around using additional methods. But if it's relatively easy to keep I'd sure prefer not to lose that (as I see it) functionality. I did not anticipate that my original request (server-retry functionality) would cause loss of the quick null-state reporting that 1.8.3 does.

@watou
Copy link
Contributor

watou commented Dec 10, 2016

Just out of curiosity, if you were to install the Expire Binding and add , expire="5s" to each item you want to expire after some time lacking updates (five seconds in this example), would you achieve an equivalent outcome?

@9037568
Copy link
Contributor

9037568 commented Dec 10, 2016

I'd like to see a log of the never-ending retries. I don't see how it could happen at present.

@bracklanna
Copy link
Author

Just out of curiosity, if you were to install the Expire Binding and add , expire="5s" to each item you want to expire after some time lacking updates (five seconds in this example), would you achieve an equivalent outcome?

I had looked at the Expire binding earlier but for some reason, maybe cloudy-headedness, at the time it didn't seem like it would do what I want. But on consideration I think it may work fine. I will test it for my use case.

@bracklanna
Copy link
Author

bracklanna commented Dec 11, 2016

My config options:

############################## OneWire Binding ########################################
#
# OwServer IP address
onewire:ip=localhost

# OwServer Port (optional, defaults to 4304)
onewire:port=4304

# the retry count in case no valid value was returned
# upon read (optional, defaults to 3)
onewire:retry=10

# the number of attempts that will be made to connect to the owserver
# after a failed connection attempt. (optional; defaults to 3)
# If set to 0, no retries will be attempted.
onewire:server_retries=10

# the time between connection attempts (optional; defaults to 60 seconds).
# may not be less than 5 seconds
onewire:server_retryInterval=5

# defines which temperature scale owserver should return temperatures in. Valid
# values are CELSIUS, FAHRENHEIT, KELVIN, RANKINE (optional, defaults to CELSIUS).
onewire:tempscale=FAHRENHEIT

# only changed values are posted to the event-bus, (optional, defaults to true - values true or false)
#onewire:post_only_changed_values=

Normal stream of debug data (TRACE level, all onewire binding logs to a single, separate log file). This is what the logs look like when everything is working:

2016-12-10 15:58:49 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:54]- Autorefresh: Waiting for new item in update queue
2016-12-10 15:58:49 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:56]- Autorefresh: got new item FrontBedTempSensor6 in update queue
2016-12-10 15:58:49 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:59]- Autorefresh: Trying to update Item: FrontBedTempSensor6
2016-12-10 15:58:49 DEBUG o.o.b.o.i.OneWireBinding[:243]- Item FrontBedTempSensor6 wants update!
2016-12-10 15:58:49 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FF9098741604/temperature', read attempt=1
2016-12-10 15:58:49 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FF9098741604': 
2016-12-10 15:58:50 DEBUG o.o.b.o.i.c.OneWireConnection[:290]- Read value '       63.95' from 28.FF9098741604/temperature, read attempt=1
2016-12-10 15:58:50 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:54]- Autorefresh: Waiting for new item in update queue
2016-12-10 15:58:50 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:56]- Autorefresh: got new item BathroomTempSensor in update queue
2016-12-10 15:58:50 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:59]- Autorefresh: Trying to update Item: BathroomTempSensor
2016-12-10 15:58:50 DEBUG o.o.b.o.i.OneWireBinding[:243]- Item BathroomTempSensor wants update!
2016-12-10 15:58:50 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FF3FD4741604FA/temperature', read attempt=1
2016-12-10 15:58:50 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FF3FD4741604FA': 
2016-12-10 15:58:51 DEBUG o.o.b.o.i.c.OneWireConnection[:290]- Read value '     61.3625' from 28.FF3FD4741604FA/temperature, read attempt=1
2016-12-10 15:58:51 DEBUG o.o.b.o.i.OneWireBinding[:323]- didn't post update to eventPublisher, because state did not change for item BathroomTempSensor
2016-12-10 15:58:51 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:54]- Autorefresh: Waiting for new item in update queue
2016-12-10 15:58:51 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:56]- Autorefresh: got new item FrontBedTempSensor in update queue
2016-12-10 15:58:51 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:59]- Autorefresh: Trying to update Item: FrontBedTempSensor
2016-12-10 15:58:51 DEBUG o.o.b.o.i.OneWireBinding[:243]- Item FrontBedTempSensor wants update!
2016-12-10 15:58:51 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FF4DA6741604/temperature', read attempt=1
2016-12-10 15:58:51 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FF4DA6741604': 
2016-12-10 15:58:52 DEBUG o.o.b.o.i.c.OneWireConnection[:290]- Read value '     63.3875' from 28.FF4DA6741604/temperature, read attempt=1
2016-12-10 15:58:52 DEBUG o.o.b.o.i.OneWireBinding[:323]- didn't post update to eventPublisher, because state did not change for item FrontBedTempSensor
2016-12-10 15:58:52 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:54]- Autorefresh: Waiting for new item in update queue
2016-12-10 15:58:52 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:56]- Autorefresh: got new item MiddleBedTempSensor in update queue
2016-12-10 15:58:52 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:59]- Autorefresh: Trying to update Item: MiddleBedTempSensor
2016-12-10 15:58:52 DEBUG o.o.b.o.i.OneWireBinding[:243]- Item MiddleBedTempSensor wants update!
2016-12-10 15:58:52 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FFCA97741604E6/temperature', read attempt=1
2016-12-10 15:58:52 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FFCA97741604E6': 
2016-12-10 15:58:54 DEBUG o.o.b.o.i.c.OneWireConnection[:290]- Read value '       62.15' from 28.FFCA97741604E6/temperature, read attempt=1
2016-12-10 15:58:54 DEBUG o.o.b.o.i.OneWireBinding[:323]- didn't post update to eventPublisher, because state did not change for item MiddleBedTempSensor
2016-12-10 15:58:54 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:54]- Autorefresh: Waiting for new item in update queue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:312]- Autorefresh: Adding 14 item(s) with refresh time 30 to reader queue.
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:314]- Update Task isAlive: true
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item BackBedTempSensor to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:56]- Autorefresh: got new item BackBedTempSensor in update queue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:59]- Autorefresh: Trying to update Item: BackBedTempSensor
2016-12-10 15:59:08 DEBUG o.o.b.o.i.OneWireBinding[:243]- Item BackBedTempSensor wants update!
2016-12-10 15:59:08 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FFC7B870160520/temperature', read attempt=1
2016-12-10 15:59:08 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FFC7B870160520': 
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item KitchenTempSensor to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item DiningRoomTempSensor to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item FrontBedTempSensor0 to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item FrontBedroomTempSensor to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item FrontBedTempSensor1 to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item FrontBedTempSensor2 to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item FrontBedTempSensor3 to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item FrontBedTempSensor4 to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item FrontBedTempSensor5 to updateQueue

I manually kill -9'ed the owserver daemon here.

2016-12-10 15:59:08 ERROR o.o.b.o.i.c.OneWireConnection[:318]- couldn't establish network connection while read attempt 1 '28.FFC7B870160520/temperature' ip:port=localhost:4304
java.net.SocketException: Broken pipe
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
	at java.net.SocketOutputStream.write(SocketOutputStream.java:132)
	at java.io.DataOutputStream.writeInt(DataOutputStream.java:198)
	at org.owfs.jowfsclient.internal.OwfsConnectionImpl.sendRequest(OwfsConnectionImpl.java:209)
	at org.owfs.jowfsclient.internal.OwfsConnectionImpl.exists(OwfsConnectionImpl.java:158)
2016-12-10 15:59:08 INFO  o.o.b.o.i.c.OneWireConnection[:169]- Trying to reconnect to owserver...
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item FrontBedTempSensor6 to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item BathroomTempSensor to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item FrontBedTempSensor to updateQueue
2016-12-10 15:59:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item MiddleBedTempSensor to updateQueue
2016-12-10 15:59:08 WARN  o.o.b.o.i.c.OneWireConnection[:125]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:08 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:13 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:13 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:13 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:18 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:18 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:18 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:23 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:23 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:23 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:28 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:28 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:28 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:33 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:33 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:33 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:312]- Autorefresh: Adding 14 item(s) with refresh time 30 to reader queue.
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:314]- Update Task isAlive: true
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:329]- add item BackBedTempSensor to updateQueue
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item KitchenTempSensor to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item DiningRoomTempSensor to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor0 to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedroomTempSensor to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor1 to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor2 to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor3 to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor4 to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor5 to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor6 to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item BathroomTempSensor to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor to updateQueue; it is already there
2016-12-10 15:59:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item MiddleBedTempSensor to updateQueue; it is already there
2016-12-10 15:59:38 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:38 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:38 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:43 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:43 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:43 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:48 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:48 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:48 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:53 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:53 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:53 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 15:59:58 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 15:59:58 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:58 ERROR o.o.b.o.i.c.OneWireConnection[:153]- Couldn't connect to owserver [IP 'localhost' Port '4304']
2016-12-10 15:59:58 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FFC7B870160520/temperature', read attempt=2
2016-12-10 15:59:58 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FFC7B870160520': 
2016-12-10 15:59:58 ERROR o.o.b.o.i.c.OneWireConnection[:318]- couldn't establish network connection while read attempt 2 '28.FFC7B870160520/temperature' ip:port=localhost:4304
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:58 INFO  o.o.b.o.i.c.OneWireConnection[:169]- Trying to reconnect to owserver...
2016-12-10 15:59:58 WARN  o.o.b.o.i.c.OneWireConnection[:125]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 15:59:58 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:03 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:03 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:03 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:312]- Autorefresh: Adding 14 item(s) with refresh time 30 to reader queue.
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:314]- Update Task isAlive: true
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item BackBedTempSensor to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item KitchenTempSensor to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item DiningRoomTempSensor to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor0 to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedroomTempSensor to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor1 to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor2 to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor3 to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor4 to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor5 to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor6 to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item BathroomTempSensor to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor to updateQueue; it is already there
2016-12-10 16:00:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item MiddleBedTempSensor to updateQueue; it is already there
2016-12-10 16:00:08 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:08 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:08 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:13 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:13 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:13 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:18 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:18 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:18 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:23 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:23 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:23 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:28 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:28 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:28 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:33 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:33 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:33 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:312]- Autorefresh: Adding 14 item(s) with refresh time 30 to reader queue.
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:314]- Update Task isAlive: true
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item BackBedTempSensor to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item KitchenTempSensor to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item DiningRoomTempSensor to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor0 to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedroomTempSensor to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor1 to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor2 to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor3 to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor4 to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor5 to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor6 to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item BathroomTempSensor to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor to updateQueue; it is already there
2016-12-10 16:00:38 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item MiddleBedTempSensor to updateQueue; it is already there
2016-12-10 16:00:38 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:38 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:38 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:43 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:43 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:43 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:48 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:48 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:48 ERROR o.o.b.o.i.c.OneWireConnection[:153]- Couldn't connect to owserver [IP 'localhost' Port '4304']
2016-12-10 16:00:48 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FFC7B870160520/temperature', read attempt=3
2016-12-10 16:00:48 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FFC7B870160520': 
2016-12-10 16:00:48 ERROR o.o.b.o.i.c.OneWireConnection[:318]- couldn't establish network connection while read attempt 3 '28.FFC7B870160520/temperature' ip:port=localhost:4304
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:48 INFO  o.o.b.o.i.c.OneWireConnection[:169]- Trying to reconnect to owserver...
2016-12-10 16:00:48 WARN  o.o.b.o.i.c.OneWireConnection[:125]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:48 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:53 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:53 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:53 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:00:58 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:00:58 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:00:58 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:03 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:03 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:03 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:312]- Autorefresh: Adding 14 item(s) with refresh time 30 to reader queue.
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:314]- Update Task isAlive: true
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item BackBedTempSensor to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item KitchenTempSensor to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item DiningRoomTempSensor to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor0 to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedroomTempSensor to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor1 to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor2 to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor3 to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor4 to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor5 to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor6 to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item BathroomTempSensor to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item FrontBedTempSensor to updateQueue; it is already there
2016-12-10 16:01:08 DEBUG o.o.b.o.i.s.OneWireUpdateScheduler[:332]- didn't add item MiddleBedTempSensor to updateQueue; it is already there
2016-12-10 16:01:08 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:09 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:09 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:14 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:14 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:14 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:19 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:19 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:19 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:24 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:24 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:24 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:29 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:29 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:29 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:34 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:34 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:34 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
^C
sam@1850OpenHAB:/usr/share/openhab/configurations$ sudo tail -f /var/log/openhab/1wire-binding.log 
2016-12-10 16:01:39 INFO  o.o.b.o.i.c.OneWireConnection[:169]- Trying to reconnect to owserver...
2016-12-10 16:01:39 WARN  o.o.b.o.i.c.OneWireConnection[:125]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:39 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:44 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:44 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:44 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:49 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:49 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:49 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:54 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:01:54 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:01:54 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.

I manually restarted the owserver daemon here.

2016-12-10 16:01:59 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...
2016-12-10 16:02:00 INFO  o.o.b.o.i.c.OneWireConnection[:158]- Connected to owserver [IP 'localhost' Port '4304']
2016-12-10 16:02:00 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FFC7B870160520/temperature', read attempt=5
2016-12-10 16:02:00 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FFC7B870160520': 
2016-12-10 16:02:01 DEBUG o.o.b.o.i.c.OneWireConnection[:290]- Read value '     62.0375' from 28.FFC7B870160520/temperature, read attempt=5
2016-12-10 16:02:01 DEBUG o.o.b.o.i.OneWireBinding[:323]- didn't post update to eventPublisher, because state did not change for item BackBedTempSensor
2016-12-10 16:02:01 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:54]- Autorefresh: Waiting for new item in update queue
2016-12-10 16:02:01 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:56]- Autorefresh: got new item KitchenTempSensor in update queue
2016-12-10 16:02:01 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:59]- Autorefresh: Trying to update Item: KitchenTempSensor
2016-12-10 16:02:01 DEBUG o.o.b.o.i.OneWireBinding[:243]- Item KitchenTempSensor wants update!
2016-12-10 16:02:01 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FF619C74160431/temperature', read attempt=1
2016-12-10 16:02:01 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FF619C74160431': 
2016-12-10 16:02:02 DEBUG o.o.b.o.i.c.OneWireConnection[:290]- Read value '      63.725' from 28.FF619C74160431/temperature, read attempt=1
2016-12-10 16:02:02 DEBUG o.o.b.o.i.OneWireBinding[:323]- didn't post update to eventPublisher, because state did not change for item KitchenTempSensor
2016-12-10 16:02:02 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:54]- Autorefresh: Waiting for new item in update queue
2016-12-10 16:02:02 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:56]- Autorefresh: got new item DiningRoomTempSensor in update queue
2016-12-10 16:02:02 DEBUG o.o.b.o.i.s.OneWireUpdateTask[:59]- Autorefresh: Trying to update Item: DiningRoomTempSensor
2016-12-10 16:02:02 DEBUG o.o.b.o.i.OneWireBinding[:243]- Item DiningRoomTempSensor wants update!
2016-12-10 16:02:02 DEBUG o.o.b.o.i.c.OneWireConnection[:286]- trying to read from '28.FF78E870160305/temperature', read attempt=1
2016-12-10 16:02:02 DEBUG o.o.b.o.i.c.OneWireConnection[:269]- check if device exists '28.FF78E870160305': 

@9037568
Copy link
Contributor

9037568 commented Dec 11, 2016

These two lines show that I may have given out the wrong jar file.

2016-12-10 16:01:39 WARN o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:01:44 INFO o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection...

That second line should show:

Retrying failed connection... Attempt X of Y

Try grabbing the jar from the cloudbees CI build.

@bracklanna
Copy link
Author

bracklanna commented Dec 11, 2016

I tested w/ the build you linked above, it now gives the expected result.
(MD5 (org.openhab.binding.onewire-1.9.0-SNAPSHOT.jar) = 476e72fe4651f5b6d3e4ef30ced9bc2e)

2016-12-10 16:31:21 WARN  o.o.b.o.i.c.OneWireConnection[:129]- Connection failed. Will retry in 5 seconds.
2016-12-10 16:31:26 INFO  o.o.b.o.i.c.OneWireConnection[:139]- Retrying failed connection... Attempt 10 of 10.
2016-12-10 16:31:26 WARN  o.o.b.o.i.c.OneWireConnection[:148]- Unexpected connection failure.
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
2016-12-10 16:31:26 ERROR o.o.b.o.i.c.OneWireConnection[:153]- Couldn't connect to owserver [IP 'localhost' Port '4304']
2016-12-10 16:31:26 WARN  o.o.b.o.i.c.OneWireConnection[:243]- Connection to owserver failed!

@bracklanna
Copy link
Author

I should also note, AFTER the binding times out and gives up attempting the server reconnection, at that point OpenHAB sets the items as "UNDEFINED," the same behavior as 1.8.3.

@9037568
Copy link
Contributor

9037568 commented Dec 11, 2016

Based on that, we could restore the original "nulling" behaviour by doing only one reconnect attempt on read/write failures. This jar does that.

This would only perform the full reconnect cycle on startup or update.

@bracklanna
Copy link
Author

Can you clarify "...on startup or update.."? -- I understand "startup;" what does "update" refer to? When the OpenHAB configuration file is re-parsed while OH is running?

@9037568
Copy link
Contributor

9037568 commented Dec 12, 2016

Correct, when the openahb.cfg file is updated/modified while OH is running.

mvolaart pushed a commit to mvolaart/openhab that referenced this issue Dec 23, 2016
* Update the onewire binding to retry failed connections.

Fixes openhab#4859.

* Fix several problems noted by @watou.

* Add @author tag.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants