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.1
will 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?
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.
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
Yes.
Are you using develop or master branch?
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.
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.