Danielhiversen/pyRFXtrx

Ventus WS155 vind sensor gives wrong temperature.

hEINsteinkim opened this issue · 2 comments

When receiving packets from a Ventus WS155 vind sensor, the temperature is wrong see example:

RFXTRX: Recv: 0x10 0x56 0x07 0x05 0x2c 0x01 0x00 0x87 0x00 0x04 0x00 0x08 0x68 0x74 0x20 0x52 0x69
<class 'RFXtrx.SensorEvent'> device=[<class 'RFXtrx.RFXtrxDevice'> type='Alecto WS4500' id='2c:01'] values=[('Battery numeric', 9), ('Chill', 827.4), ('Rssi numeric', 6), ('Temperature', 2674.0), ('Wind average speed', 0.4), ('Wind direction', 135), ('Wind gust', 0.8)]
RFXTRX: Recv: 0x0b 0x55 0x07 0x06 0x08 0x01 0x00 0x00 0x00 0x06 0xdb 0x79
<class 'RFXtrx.SensorEvent'> device=[<class 'RFXtrx.RFXtrxDevice'> type='Alecto' id='08:01'] values=[('Battery numeric', 9), ('Rain rate', 0), ('Rain total', 175.5), ('Rssi numeric', 7)]
RFXTRX: Recv: 0x0b 0x55 0x07 0x07 0x08 0x01 0x00 0x00 0x00 0x06 0xdb 0x79
<class 'RFXtrx.SensorEvent'> device=[<class 'RFXtrx.RFXtrxDevice'> type='Alecto' id='08:01'] values=[('Battery numeric', 9), ('Rain rate', 0), ('Rain total', 175.5), ('Rssi numeric', 7)]
RFXTRX: Recv: 0x0a 0x52 0x0e 0x08 0x2c 0x01 0x00 0x88 0x60 0x03 0x69
<class 'RFXtrx.SensorEvent'> device=[<class 'RFXtrx.RFXtrxDevice'> type='Alecto' id='2c:01'] values=[('Battery numeric', 9), ('Humidity', 96), ('Humidity status', 'wet'), ('Humidity status numeric', 3), ('Rssi numeric', 6), ('Temperature', 13.6)]
RFXTRX: Recv: 0x0b 0x55 0x07 0x09 0x08 0x01 0x00 0x00 0x00 0x06 0xdb 0x79
<class 'RFXtrx.SensorEvent'> device=[<class 'RFXtrx.RFXtrxDevice'> type='Alecto' id='08:01'] values=[('Battery numeric', 9), ('Rain rate', 0), ('Rain total', 175.5), ('Rssi numeric', 7)]
RFXTRX: Recv: 0x10 0x56 0x07 0x0a 0x2c 0x01 0x00 0x87 0x00 0x04 0x00 0x14 0x68 0x74 0x20 0x52 0x69
<class 'RFXtrx.SensorEvent'> device=[<class 'RFXtrx.RFXtrxDevice'> type='Alecto WS4500' id='2c:01'] values=[('Battery numeric', 9), ('Chill', 827.4), ('Rssi numeric', 6), ('Temperature', 2674.0), ('Wind average speed', 0.4), ('Wind direction', 135), ('Wind gust', 2.0)]
RFXTRX: Recv: 0x0b 0x55 0x07 0x0b 0x08 0x01 0x00 0x00 0x00 0x06 0xdb 0x79
<class 'RFXtrx.SensorEvent'> device=[<class 'RFXtrx.RFXtrxDevice'> type='Alecto' id='08:01'] values=[('Battery numeric', 9), ('Rain rate', 0), ('Rain total', 175.5), ('Rssi numeric', 7)]
RFXTRX: Recv: 0x0b 0x55 0x07 0x0c 0x08 0x01 0x00 0x00 0x00 0x06 0xdb 0x79
<class 'RFXtrx.SensorEvent'> device=[<class 'RFXtrx.RFXtrxDevice'> type='Alecto' id='08:01'] values=[('Battery numeric', 9), ('Rain rate', 0), ('Rain total', 175.5), ('Rssi numeric', 7)]
RFXTRX: Recv: 0x0b 0x55 0x07 0x0d 0x08 0x01 0x00 0x00 0x00 0x06 0xdb 0x79
<class 'RFXtrx.SensorEvent'> device=[<class 'RFXtrx.RFXtrxDevice'> type='Alecto' id='08:01'] values=[('Battery numeric', 9), ('Rain rate', 0), ('Rain total', 175.5), ('Rssi numeric', 7)]

The correct temperature can be seen on the "'Alecto' id='2c:01'" humidity sensor, as this is the same device.
The wind sensor alternates between two different packets, one with temperature and humidity and one with wind speed, according to http://www.tfd.hu/tfdhu/files/wsprotocol/auriol_protocol_v20.pdf
Thus the packets from RTXcom-device must include some other data or some junk.
Could this be filtered out ?

Acrording to support at RFXcom, the first byte string 0x10 0x56 0x07 0x05 0x2c 0x01 0x00 0x87 0x00 0x04 0x00 0x08 0x68 0x74 0x20 0x52 0x69 represent a WIND, subtype WIND7, which does not include temperature information, the RFXmanger decode the result as:

Packettype    = WIND
subtype       = WIND7 - Alecto WS3500,WS4500
Sequence nbr  = 5
ID            = 2C01 decimal:11265
Direction     = 135 degrees  SE
Average speed = 0.4 mtr/sec = 1.44 km/hr = 0.89 mph
Wind gust     = 0.8 mtr/sec = 2.88 km/hr = 1.79 mph
Signal level  = 6  -72dBm
Battery       = OK

I think that the temperature information should be left out for the subtype 7 0x07: 'Alecto WS4500'.

Looke like WIND6 might be same:

2020-07-19 05:39:54:566
Packettype    = WIND
subtype       = WIND6 - LaCrosse WS2300
Sequence nbr  = 1
ID            = 4E00 decimal:19968
Direction     = 90 degrees  E
Average speed = 0 mtr/sec = 0 km/hr = 0 mph
Wind gust     = 19,3 mtr/sec = 69,48 km/hr = 43,17 mph
Signal level  = 6  -72dBm
Battery       = OK