smarthomeNG/plugins

Onewire: missing sensors because "no payload error" on crowded bus

andreas-p opened this issue · 11 comments

I have two OW interfaces connected to my Odroid-M, but only sensors on one bus are scanned.

Using the command line owdir /bus.1will need about 1 second, owdir /bus.0 takes 4.5s or so.
Doing this in plugins/onewire with python3 interactively:

import owbase
ow=owbase.OwBase('127.0.0.1', 4304')
ow.dir('/bus.1')

bus1 works fine, but bus0 will usually throw owbase.owex: no payload for /bus.0/ (sometimes succeeding). Interestingly, owdir('/') never fails, but will happily return all items.

Since the /bus.1 request fails after about 2 seconds, I increased the _sock.settimeout to 10 seconds, but that didn't help

Any suggestions?

bmxp commented

What do you want to achieve?

See the sensors on bus.0 as well; seems I skipped this... updated.
Currently, only bus.1 sensors are evaluated.

bmxp commented

Some more questions:

  • Which Interfaces to you have in use for your 2 buses?
  • How many devices are connected to each bus and of which kind are your devices?
    Just some temp sensors or other more elaborated sensors, too?
  • which version of SmartHomeNG do you have in use?

I'm using two Denkovi interfaces. bus.0 has 31 devices, bus.1 16. About 15 multi-sensors, the rest temperature.
SmarthomeNG is 1.9.2

bmxp commented

With Denkovi you mean this one ?

Yes.

bmxp commented

Are you using develop or master branch?

bmxp commented

Are you found on gitter chat? I could easily send you a changed owbase.py then ...

I'm on master branch, you can contact me via gitter.

msinn commented

Is this issue still relevant?

Not sure. I modified the source to not try to group by bus.X, but list the devices flat which fixed the problem for me.