Yes I changed delay to 1000 on both read & write. Didn't increase it now, 
let's see if I get a debig log if it crashes again.


Regarding values of 6500C from WS3000 driver. Please check these two reads 
from below. I took my outside unit inside for a while - worked OK - and 
then put it to freezer for a while and this is what happened when values 
changed from 0.1C to sub-zero (below 0C). Main unit works without issues.


Oct 28 22:20:55 ripapi weewx[17385]: ws3000: sending request for 
sensor_values
Oct 28 22:20:55 ripapi weewx[17385]: ws3000: write: 7b 03 40 7d (len=4)
Oct 28 22:20:56 ripapi weewx[17385]: ws3000: reading results...
Oct 28 22:20:56 ripapi weewx[17385]: ws3000: reading 64 bytes
Oct 28 22:20:56 ripapi weewx[17385]: ws3000: read: 7b *00 01* 10 00 dc 1f 
00 ce 23 00 d1 23 00 d9 22 00 b0 20 00 dd 1e 7f ff ff 40 7d 00 40 7d 2c 00 
64 40 7d 00 4e 14 2f 2c d1 d7 e7 70 9c 7b e5 e1 3e 17 5f 4e 19 72 97 5e 02 
1a 0e 52 33 f6 80 ce (len=64)
Oct 28 22:20:56 ripapi weewx[17385]: ws3000: extracting values for 
sensor_values
Oct 28 22:20:56 ripapi weewx[17385]: ws3000: raw: array('B', [123, *0, 1*, 
16, 0, 220, 31, 0, 206, 35, 0, 209, 35, 0, 217, 34, 0, 176, 32, 0, 221, 30, 
127, 255, 255, 64, 125])
Oct 28 22:20:56 ripapi weewx[17385]: ws3000: data: {'h_6': 32, 'h_7': 30, 
'h_4': 35, 'h_5': 34, 'h_2': 31, 'h_3': 35, 'h_1': 16, 't_6': 17.6, 't_2': 
22.0, 't_3': 20.6, '*t_1': 0.1*, 'type': 'sensor_values', 't_7': 22.1, 
't_4': 20.9, 't_5': 21.7}
Oct 28 22:20:56 ripapi weewx[17385]: ws3000: packet: {'dateTime': 
1540758056, 'extraHumid6': 32, 'extraHumid7': 30, 'extraHumid4': 35, 
'extraHumid5': 34, 'extraHumid2': 31, 'extraHumid3': 35, 'extraHumid1': 16, 
'extraTemp6': 17.6, 'extraTemp7': 22.1, 'extraTemp4': 20.9, 'extraTemp5': 
21.7, 'extraTemp2': 22.0, 'extraTemp3': 20.6, 'usUnits': 17,* 'extraTemp1': 
0.1*}
Oct 28 22:21:26 ripapi weewx[17385]: ws3000: sending request for 
sensor_values
Oct 28 22:21:26 ripapi weewx[17385]: ws3000: write: 7b 03 40 7d (len=4)
Oct 28 22:21:27 ripapi weewx[17385]: ws3000: reading results...
Oct 28 22:21:27 ripapi weewx[17385]: ws3000: reading 64 bytes
Oct 28 22:21:27 ripapi weewx[17385]: ws3000: read: 7b *ff e6* 10 00 dc 1f 
00 cc 23 00 d1 23 00 d9 22 00 b0 20 00 dd 1e 7f ff ff 40 7d 00 40 7d 2c 00 
64 40 7d 00 4e 14 2f 2c d1 d7 e7 70 9c 7b e5 e1 3e 17 5f 4e 19 72 97 5e 02 
1a 0e 52 33 f6 80 ce (len=64)
Oct 28 22:21:27 ripapi weewx[17385]: ws3000: extracting values for 
sensor_values
Oct 28 22:21:27 ripapi weewx[17385]: ws3000: raw: array('B', [123, *255, 
230*, 16, 0, 220, 31, 0, 204, 35, 0, 209, 35, 0, 217, 34, 0, 176, 32, 0, 
221, 30, 127, 255, 255, 64, 125])
Oct 28 22:21:27 ripapi weewx[17385]: ws3000: data: {'h_6': 32, 'h_7': 30, 
'h_4': 35, 'h_5': 34, 'h_2': 31, 'h_3': 35, 'h_1': 16, 't_6': 17.6, 't_2': 
22.0, 't_3': 20.4,* 't_1': 6551.0,* 'type': 'sensor_values', 't_7': 22.1, 
't_4': 20.9, 't_5': 21.7}
Oct 28 22:21:27 ripapi weewx[17385]: ws3000: packet: {'dateTime': 
1540758087, 'extraHumid6': 32, 'extraHumid7': 30, 'extraHumid4': 35, 
'extraHumid5': 34, 'extraHumid2': 31, 'extraHumid3': 35, 'extraHumid1': 16, 
'extraTemp6': 17.6, 'extraTemp7': 22.1, 'extraTemp4': 20.9, 'extraTemp5': 
21.7, 'extraTemp2': 22.0, 'extraTemp3': 20.4, 'usUnits': 17, *'extraTemp1': 
6551.0*}
Oct 28 22:21:27 ripapi weewx[17385]: engine: 2018-10-28 22:21:27 EET 
(1540758087) LOOP value 'extraTemp1' 6551.0 outside limits (-40.0, 40.0)


Spending a while trying to understand the read HEX values raw array, to me 
it looks like that as soon as temperature (in C) goes below 0, the variable 
flips back to max, being propably 6553(.).5 - being FF FF in HEX as can be 
seen above.


*Has WS3000 unit's exported values and/or WS3000 driver been earlier 
confirmed to work on sub-zero temperatures?*By a quick look I didn't find 
and indicator telling this is a sub-zero temperature except the fact that 
6500C is a bit hot for these sensors :D

*Would it be possible in to implement a 'sanity check' in the driver to 
convert values of let's say over 6000C back to negative range, something 
like*
IF
Temperature over 6000C 
THEN
Temperature = Temperature-6553,5



*Olivier, do you see this as a doable & reasonable solution? Do you already 
know where would be the good place in the driver to implement it? (and have 
you thought of putting the code to github or similar service ;)*

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to