Hi, everybody
I found strange bug I have four termo-sensors LM75, they connected to Rasperry
over i2c, and to read values i use python scripts. Everythink works Ok, if i start (manual from shell or openhab) scripts one-by-one. BUT, if i create 4 items whitch starts it’s own script, some times i have an error:
Error: Read failed
Traceback (most recent call last):
File “lm75_2f.py”, line 11, in
rawData = int(output , 16)
ValueError: invalid literal for int() with base 16: ‘’
And this error appeears not regular Once error have one script, then, since few minutes, error have another script. There is no any order. I think what there is a some “time lag” when i2c switch from one script to another. Becouse, when I change interval and timeout properties of items, so errors appears rarely.
Is it normal? How can i change this time delay, or maybe i use
P.S.
String Temp_1f_it "real temp on 1 floor [%s]" (TempSensors) {channel="exec:command:4f2e900f:output"}
String Temp_2f_it "real temp on 2 floor [%s]" (TempSensors) {channel="exec:command:3ed52c8c:output"}
String Temp_outdoor_it "real temp on outdoor [%s]" (TempSensors) {channel="exec:command:4f2e900f:output"}
I think it’s likely that only one script can access the I2C device at a time. You see this error when two or more of your scripts are trying to access I2C at the same time.
There really is no way to prevent this using more than one script. You can make it happen more or less often but to completely eliminate it you need to only have one script that gathers all four values and then parse the four values out of the script in OH Rules.
Yes, I think so.
Do you know is this feature of i2c or openhub? What do you think, if I create single script, witch will crate 4 files with values of sensors. And four scripts with wil read data from this files. Will it work?