Additional sensors for ESH/OH2 OneWire binding

Please set the org.eclipse.smarthome.binding.onewire.internal.device.DS2423 to TRACE and check if the DS2423 refresh is still called. If that is not the case, please set org.eclipse.smarhome.binding.onewire.internal.handler.OwBaseBridgeHandler to TRACE and check whether the refresh is called. If possible, show logfiles. Thanks.

Hi Jan.

I set both to TRACE, I only get one entry shortly after startup for the DS2423

2018-10-21 09:15:20.824 [TRACE] [nding.onewire.internal.device.DS2423] - read array [948015, 16843008] from 1D.CF660F000000

I don’t get any log entries from the OwBaseBridgeHandler when I set it to TRACE

That’s strange. Did you copy my spelling mistake? It is not org.eclipse.smarhome.binding.onewire.internal.handler.OwBaseBridgeHandler (as above) but org.eclipse.smarthome.binding.onewire.internal.handler.OwBaseBridgeHandler.

That was it exactly. I didn’t even notice the spelling mistake.

I do see the counter sensor refresh being called from the OwBaseBridgeHandler, but nothing from org.eclipse.smarthome.binding.onewire.internal.device.DS2423 other than the read array call after a reboot that I posted above.

2018-10-21 16:27:04.760 [TRACE] [internal.handler.OwBaseBridgeHandler] - called owRefresher at 1540157224760, 6 childs
2018-10-21 16:27:04.762 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Counter sensor (6 to go)
2018-10-21 16:27:04.764 [TRACE] [internal.handler.OwBaseBridgeHandler] - Counter sensor initialized, refreshing
2018-10-21 16:27:04.766 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (5 to go)
2018-10-21 16:27:04.768 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-21 16:27:04.771 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (4 to go)
2018-10-21 16:27:04.773 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-21 16:27:04.775 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (3 to go)
2018-10-21 16:27:04.777 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-21 16:27:04.779 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (2 to go)
2018-10-21 16:27:04.781 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-21 16:27:04.783 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Multisensor TV (1 to go)
2018-10-21 16:27:04.785 [TRACE] [internal.handler.OwBaseBridgeHandler] - Multisensor TV initialized, refreshing

That’s all? Do these messages repeat after that? If not, the refresh task crashes after refreshing the last sensor. We‘ll have to look at that one.

Yes, they keep repeating every second.

OK, finally got the new package added and ran thing discovery.

2018-10-21 22:55:33.642 [INFO ] [nternal.discovery.OwDiscoveryService] - sensor-id 26.4D0F37000000: DS2438 cannot be mapped to thing type
2018-10-21 22:55:33.661 [INFO ] [nternal.discovery.OwDiscoveryService] - sensor-id 7E.162100001000: UNKNOWN cannot be mapped to thing type
2018-10-21 22:55:33.669 [INFO ] [nternal.discovery.OwDiscoveryService] - sensor-id 7E.EB2C00001000: UNKNOWN cannot be mapped to thing type

The two 7E sensors are EDS sensors. One is a THLP and the other is a TH. The 26 sensor is an Ibuttonlink MS-T

Doesn’t seem to be recognising any of them. However it is recognising a 10 (DS18S20) sensor and a 28 (DS18B20) sensor.

I removed the 2409 “hubs” and now have all of my devices on the root of the owfs. I am able to automatically discover sensors using PaperUI. Some sensors, like the 2423 discussed above were not discovered but I was able to add them manually and they seem to work.

Here are my issues:

  1. My Octal Digital I/O, DS2408, devices were discovered automatically and I was able to link switches to the channels. However, no communication between OpenHAB and the OWServer seems to take place. I can open and close relays using ‘owwrite’ and view inputs using ‘owread’ on the console just fine. Can’t find anything in the logs.

  2. I have two DS1822 temperature sensors. I can add them manually and they seem to work for a brief while but then updates stop. After a restart of openhab2.service they update again for a little while.

Any ideas? Thanks!

@ntitley:

Please show the owfs-page for the EDS sensors and thge MS-T, including pages. Maybe I got something wrong there.

@jrussell05:

DS2408: Any indication in the OH log that an error occured? If not, please set org.eclipse.smarthome.binding.onewire.internal.device.DS2408 to TRACE and report back.

DS1822: I’ll have to add support for that. Will look after we got the other things sorted out.

@g_g_rich:

That’s strange. So it seems the bridge handler ist still trying to do the refresh but the communication with the owserver is broken. Try setting org.eclipse.smarthome.binding.onewire.internal.owserver.OwServerConnection to TRACE and show the last lines (around 15 or so) before the updating stops. I have never experienced that. Is the bridge still whoing as ONLINE inm PaperUI?

@ntitley: I found a problem with the detection. Please try the updated JAR in the first post. I didn’t notice that owfs reports them as EDS not as EDS006x.

@jrussell05: I think the DS1822 was easy. I added it. Please test the new version.

Not much else shows up in the log.
I get the initial

2018-10-23 14:02:20.445 [DEBUG] [internal.owserver.OwserverConnection] - opened OwServerConnection to 192.168.9.10:4304

and then the initial

2018-10-23 14:02:22.362 [TRACE] [nding.onewire.internal.device.DS2423] - read array [1039471, 16843008] from 1D.CF660F000000

right after a reboot. The log shows not other OwServerConnection or DS2423 TRACE entries.

I do get the OwBaseBridgeHandler event repeating every second, and all of the other OW sensors appear to keep updating as shown in my events log. The only sensor that doesn’t update is the DS2423, other than the initial update from NULL to whatever the correct counter value is after a reboot.
The bridge is shown as ONLINE the in PaperUI

2018-10-23 14:05:04.209 [TRACE] [internal.handler.OwBaseBridgeHandler] - called owRefresher at 1540321504209, 6 childs
2018-10-23 14:05:04.211 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (6 to go)
2018-10-23 14:05:04.214 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:04.216 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Counter sensor (5 to go)
2018-10-23 14:05:04.218 [TRACE] [internal.handler.OwBaseBridgeHandler] - Counter sensor initialized, refreshing
2018-10-23 14:05:04.227 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (4 to go)
2018-10-23 14:05:04.232 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:04.235 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (3 to go)
2018-10-23 14:05:04.237 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:04.244 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (2 to go)
2018-10-23 14:05:04.249 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:04.253 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Multisensor TV (1 to go)
2018-10-23 14:05:04.257 [TRACE] [internal.handler.OwBaseBridgeHandler] - Multisensor TV initialized, refreshing
2018-10-23 14:05:05.262 [TRACE] [internal.handler.OwBaseBridgeHandler] - called owRefresher at 1540321505262, 6 childs
2018-10-23 14:05:05.266 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (6 to go)
2018-10-23 14:05:05.271 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:05.273 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Counter sensor (5 to go)
2018-10-23 14:05:05.277 [TRACE] [internal.handler.OwBaseBridgeHandler] - Counter sensor initialized, refreshing
2018-10-23 14:05:05.280 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (4 to go)
2018-10-23 14:05:05.283 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:05.285 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (3 to go)
2018-10-23 14:05:05.287 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:05.290 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (2 to go)
2018-10-23 14:05:05.292 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:05.295 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Multisensor TV (1 to go)
2018-10-23 14:05:05.297 [TRACE] [internal.handler.OwBaseBridgeHandler] - Multisensor TV initialized, refreshing
2018-10-23 14:05:06.301 [TRACE] [internal.handler.OwBaseBridgeHandler] - called owRefresher at 1540321506300, 6 childs
2018-10-23 14:05:06.302 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (6 to go)
2018-10-23 14:05:06.304 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:06.306 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Counter sensor (5 to go)
2018-10-23 14:05:06.308 [TRACE] [internal.handler.OwBaseBridgeHandler] - Counter sensor initialized, refreshing
2018-10-23 14:05:06.310 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (4 to go)
2018-10-23 14:05:06.312 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:06.315 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (3 to go)
2018-10-23 14:05:06.317 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:06.319 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Temperature sensor (2 to go)
2018-10-23 14:05:06.321 [TRACE] [internal.handler.OwBaseBridgeHandler] - Temperature sensor initialized, refreshing
2018-10-23 14:05:06.323 [TRACE] [internal.handler.OwBaseBridgeHandler] - getting handler for Multisensor TV (1 to go)
2018-10-23 14:05:06.325 [TRACE] [internal.handler.OwBaseBridgeHandler] - Multisensor TV initialized, refreshing

Two things: it‘s OwserverConnection (capital s in server is wrong) and I‘ll make a special version with more debugging in the DS2423. I had the impression that all sensors stopped updating. If it‘s only the DS2423, I‘ll have to have a look there.

Edit: Updated in first post. Please also set OwBaseThingHandler to TRACE, and set OwserverConnection back to DEFAULT, I don’t think we need that one at the moment.

I did set debug to OwserverConnection and got a lot more log entries.

Only thing I did note was it only shows one set of entries for the DS2423 shortly after reboot and then no more.

2018-10-23 15:58:55.447 [TRACE] [internal.owserver.OwserverConnection] - wrote: messageType READ, size 45, controlFlags 0x00000104, payload '1D.CF660F000000/type'
2018-10-23 15:58:56.322 [TRACE] [internal.owserver.OwserverConnection] - wrote: messageType PRESENT, size 40, controlFlags 0x00000124, payload '1D.CF660F000000'
2018-10-23 15:58:56.327 [TRACE] [internal.owserver.OwserverConnection] - presence 1D.CF660F000000 : ON
2018-10-23 15:58:56.366 [TRACE] [internal.owserver.OwserverConnection] - wrote: messageType READ, size 54, controlFlags 0x00000104, payload '/1D.CF660F000000/counters.ALL'
2018-10-23 15:58:56.535 [TRACE] [nding.onewire.internal.device.DS2423] - read array [1041652, 16843008] from 1D.CF660F000000

I returned it back to DEFAULT and set OwBaseThingHandler to DEBUG, you can see only counter2 in the DS2423 gets updated, and that only happens once.

2018-10-23 16:57:00.417 [TRACE] [.internal.handler.OwBaseThingHandler] - updated modelid/vendor to DS2423 / Dallas/Maxim

2018-10-23 16:57:00.420 [TRACE] [.internal.handler.OwBaseThingHandler] - scheduled onewire:counter2:owbridge:xxcounter for refresh

2018-10-23 16:57:00.426 [TRACE] [.internal.handler.OwBaseThingHandler] - updated modelid/vendor to DS18S20 / Dallas/Maxim

2018-10-23 16:57:00.422 [TRACE] [.internal.handler.OwBaseThingHandler] - scheduled onewire:counter2:owbridge:gcounter for refresh

2018-10-23 16:57:00.452 [TRACE] [.internal.handler.OwBaseThingHandler] - scheduled onewire:temperature:owbridge:mtemp for refresh

2018-10-23 16:57:00.457 [TRACE] [.internal.handler.OwBaseThingHandler] - updated modelid/vendor to DS18S20 / Dallas/Maxim

2018-10-23 16:57:00.468 [TRACE] [.internal.handler.OwBaseThingHandler] - scheduled onewire:temperature:owbridge:otemp for refresh

2018-10-23 16:57:00.477 [TRACE] [.internal.handler.OwBaseThingHandler] - updated modelid/vendor to DS18S20 / Dallas/Maxim

2018-10-23 16:57:00.510 [TRACE] [.internal.handler.OwBaseThingHandler] - scheduled onewire:temperature:owbridge:wtemp for refresh

2018-10-23 16:57:00.519 [TRACE] [.internal.handler.OwBaseThingHandler] - updated modelid/vendor to DS18S20 / Dallas/Maxim

2018-10-23 16:57:00.546 [TRACE] [.internal.handler.OwBaseThingHandler] - scheduled onewire:temperature:owbridge:ftemp for refresh

2018-10-23 16:57:00.580 [TRACE] [.internal.handler.OwBaseThingHandler] - scheduled onewire:ms-tv:owbridge:gsensor for refresh

2018-10-23 16:57:00.580 [TRACE] [.internal.handler.OwBaseThingHandler] - scheduled onewire:ms-tv:owbridge:gsensor for refresh

2018-10-23 16:57:01.305 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:counter2:owbridge:gcounter

2018-10-23 16:57:01.313 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (1D.CF660F000000)

2018-10-23 16:57:01.563 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:mtemp

2018-10-23 16:57:01.570 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.2DDC3F020800)

2018-10-23 16:57:01.690 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:otemp

2018-10-23 16:57:01.718 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.AADF3E020800)

2018-10-23 16:57:02.482 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:wtemp

2018-10-23 16:57:02.513 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.E91A3F020800)

2018-10-23 16:57:03.203 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:ftemp

2018-10-23 16:57:03.280 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.3FDF3E020800)

2018-10-23 17:02:01.519 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:mtemp

2018-10-23 17:02:01.530 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.2DDC3F020800)

2018-10-23 17:02:01.542 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:otemp

2018-10-23 17:02:01.553 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.AADF3E020800)

2018-10-23 17:02:02.253 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:wtemp

2018-10-23 17:02:02.262 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.E91A3F020800)

2018-10-23 17:02:02.983 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:ftemp

2018-10-23 17:02:03.002 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.3FDF3E020800)

2018-10-23 17:07:02.242 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:mtemp

2018-10-23 17:07:02.256 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.2DDC3F020800)

2018-10-23 17:07:02.266 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:otemp

2018-10-23 17:07:02.275 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.AADF3E020800)

2018-10-23 17:07:02.409 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:wtemp

2018-10-23 17:07:02.419 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.E91A3F020800)

2018-10-23 17:07:03.106 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing onewire:temperature:owbridge:ftemp

2018-10-23 17:07:03.183 [TRACE] [.internal.handler.OwBaseThingHandler] - refreshing sensor 0 (10.3FDF3E020800)

I really appreciate all your work on this!!

Thanks Jan. I will let you know soon. Thanks again for all of your help!

Well, that’s an improvement. It’s now recognising the EDS sensors and is getting the correct channels as far as I can see, however it doesn’t seem to be reading them correctly. I noticed this error in the log which may be something to do with it.

2018-10-24 18:34:07.818 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.ClassCastException: java.lang.String cannot be cast to org.eclipse.smarthome.binding.onewire.internal.owserver.OwserverDeviceParameter
at org.eclipse.smarthome.binding.onewire.internal.handler.OwserverBridgeHandler.readDecimalType(OwserverBridgeHandler.java:125) ~[?:?]
at org.eclipse.smarthome.binding.onewire.internal.device.EDS006x.refresh(EDS006x.java:99) ~[?:?]
at org.eclipse.smarthome.binding.onewire.internal.handler.OwBaseThingHandler.refresh(OwBaseThingHandler.java:158) ~[?:?]
at org.eclipse.smarthome.binding.onewire.internal.handler.OwBaseBridgeHandler.refresh(OwBaseBridgeHandler.java:71) ~[?:?]
at org.eclipse.smarthome.binding.onewire.internal.handler.OwBaseBridgeHandler.lambda$0(OwBaseBridgeHandler.java:49) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:?]
at java.lang.Thread.run(Thread.java:745) [?:?]

Further information:

When the sensors were first added the things came online and created all the appropriate channels, however they then went unknown. The associated items (I’ve tried the temperature and humidity channels) are reading NaN

Exactly. The parameter set is wrong because I made a mistake (and a bad design before that wasn’t type-safe). I’ve changed that and found a similar error in the DS2438 humidity channel. The JAR above is updated.

Much better. Temperature and humidity are now being reported correctly. I now need to check light level and pressure.

However, the MS-T is still not being correctly sensed

2018-10-24 20:19:34.484 [INFO ] [nternal.discovery.OwDiscoveryService] - sensor-id 26.4D0F37000000: DS2438 cannot be mapped to thing type

That‘s a different problem. I have to think about that, because we have #6326 for DS1923 in the queue. I still don’t like to add too much nearly identical thing types for different sensors.

No hurry. I just wanted to make sure that it was still in the queue.

I think, though, that we have to accept that there are many nearly identical sensors out there.

I’ve added pressure and light level items to the OW-ENV-THPL. The light level is reading as 0 lux and the pressure item is reading as NaN. This may be due to me defining the items wrongly and I’ll do a little fiddling around.