From: Mick S. <mi...@su...> - 2020-08-05 11:14:36
|
I based my code on a mail from Jan 13/3/2020 which said the best way was $ owwrite /simultaneous/temperature 1 $ sleep 1s $ owread /uncached/<sensor0id>/latesttemp $ owread /uncached/<sensor1id>/latesttemp $ owread /uncached/<sensor2id>/latesttemp I was thinking that the problem may be with my Python code, but I have just tried it with a bash script and writing to simultaneous/temperature make no difference. I have tried it reading latesttemp and also temperature. I am really confused now. Mick On 05/08/2020 09:15, Martin Patzak wrote: > ... actually I checked my current code and I saw, that I do not read > /latesttemp, but read from /uncached/id/temperature > so reading from /uncached does not trigger a new conversion. Only when > you read a second time without triggering /simultaneous > I also saw that I increased the wait after issuing /simulataneous > command to 2 seconds, so I must have had issues at the time... > > > On 05.08.20 09:23, Martin Patzak wrote: >> Hi Mick, >> >> by reading the /uncached value, you are causing a new conversion. >> Read only /latesttemp and it should work fine. >> >> here is my test program, when I first tested simultaneous and pyownet: >> >>> import time >>> from pyownet import protocol >>> >>> op = protocol.proxy("razmaban",port=4304) >>> error = 0 >>> error_old = None >>> >>> >>> while True: >>> >>> op.write('/simultaneous/temperature', '1') >>> >>> time.sleep(1) # give the sensors time to convert their temps >>> >>> print '...' >>> >>> sensed = op.read('/28.676A20060000/latesttemp') >>> print sensed >>> >>> sensed = op.read('/28.DD5915020000/latesttemp') >>> print sensed >> >> >> Marty >> >> On 05.08.20 00:39, Mick Sulley wrote: >>> Running v3.2p3 on Raspberry Pi, I have set up some DS18B20 sensors >>> on a test system, all of them are powered, but simultaneous does not >>> seem to be working >>> >>> The code is below, when I run it the first loop takes 16 seconds >>> then it loops at 3 seconds for a while, then a 16 second etc. so it >>> looks like it does slow individual conversions, then uses cached >>> values until they expire, then another slow individual conversion, >>> etc. Have I got something wrong here? >>> >>> Thanks >>> >>> Mick >>> >>> #!/usr/bin/python3 >>> >>> # sensor_read.py >>> >>> import pyownet >>> import time >>> >>> def main(): >>> owp = pyownet.protocol.proxy() >>> while True: >>> start = time.time() >>> owp.write('/simultaneous/temperature', b'1') >>> time.sleep(1) >>> print('start of sensor_read.py') >>> sen_lst = ['Solar_Pnl_1A', 'Solar_Pnl_2A','Solar_Pnl_1B', >>> 'Pool_Sol_X', 'Pool_CH_X', 'DHW_Mid_Top', 'DHW_Mid_Btm', >>> 'DHW_Top','Temp5', 'Temp19', 'Temp20','Temp21', 'Temp22', 'Temp23', >>> 'Temp25', 'Temp26', 'Temp27', 'Temp29', 'Temp30'] >>> prop_lst = ['/type', '/power', '/latesttemp'] >>> for p in prop_lst: >>> print('%s ' %p, end = '') >>> print('') >>> for sen in sen_lst: >>> print('\n%s ' %sen, end = '') >>> for prop in prop_lst: >>> try: >>> print('%s ' %(owp.read('/uncached/' + sen + >>> prop).decode()), end = '') >>> except: >>> print('failed! ', end = '') >>> endt = time.time() - start >>> print('\nTime = %f' %endt) >>> >>> if __name__ == "__main__": >>> main() >>> >>> >>> >>> _______________________________________________ >>> Owfs-developers mailing list >>> Owf...@li... >>> https://lists.sourceforge.net/lists/listinfo/owfs-developers >> >> >> >> _______________________________________________ >> Owfs-developers mailing list >> Owf...@li... >> https://lists.sourceforge.net/lists/listinfo/owfs-developers > |