Skip to content

1290: Outdoor Temperature

David Bonnes edited this page Jan 21, 2020 · 1 revision
RQ --- 18:000730 01:123456 --:------ 1290 001 00
RP --- 01:123456 18:000730 --:------ 1290 003 003E22

An evohome controller will respond to a RQ / 1290, but teh values don't make sense (below it's -147C outside).

2020-01-19T23:50:49.395965 095 RQ --- 18:013393 01:145038 --:------ 1290 001 00
2020-01-19T23:50:49.400892 045 RP --- 01:145038 18:013393 --:------ 1290 003 00BA37
2020-01-19T23:51:07.179851 095 RQ --- 18:013393 01:145038 --:------ 1290 001 FF
2020-01-19T23:51:07.184249 045 RP --- 01:145038 18:013393 --:------ 1290 003 FFBBBB
2020-01-19T23:51:11.743846 095 RQ --- 18:013393 01:145038 --:------ 1290 001 00
2020-01-19T23:51:11.748227 045 RP --- 01:145038 18:013393 --:------ 1290 003 00BABB
2020-01-19T23:51:21.044842 095 RQ --- 18:013393 01:145038 --:------ 1290 001 FF
2020-01-19T23:51:21.049347 045 RP --- 01:145038 18:013393 --:------ 1290 003 FFBB77

and alsoL

2020-01-19T23:54:32.666275 095 RQ --- 18:013393 01:145038 --:------ 1290 001 00
2020-01-19T23:54:32.670998 045 RP --- 01:145038 18:013393 --:------ 1290 003 00BAFB
2020-01-19T23:54:36.829897 095 RQ --- 18:013393 01:145038 --:------ 1290 001 01
2020-01-19T23:54:36.834173 045 RP --- 01:145038 18:013393 --:------ 1290 003 01B9FB

2020-01-19T23:54:42.197093 095 RQ --- 18:013393 01:145038 --:------ 1290 001 00
2020-01-19T23:54:42.201634 045 RP --- 01:145038 18:013393 --:------ 1290 003 00BAFB
2020-01-19T23:54:59.328008 095 RQ --- 18:013393 01:145038 --:------ 1290 001 00
2020-01-19T23:54:59.332378 045 RP --- 01:145038 18:013393 --:------ 1290 003 00BABB
2020-01-19T23:55:03.339889 095 RQ --- 18:013393 01:145038 --:------ 1290 001 01
2020-01-19T23:55:03.344264 045 RP --- 01:145038 18:013393 --:------ 1290 003 01B9BB
2020-01-19T23:55:07.449231 095 RQ --- 18:013393 01:145038 --:------ 1290 001 02
2020-01-19T23:55:07.453669 045 RP --- 01:145038 18:013393 --:------ 1290 003 02B8BB
2020-01-19T23:55:11.766764 095 RQ --- 18:013393 01:145038 --:------ 1290 001 03
2020-01-19T23:55:11.771120 045 RP --- 01:145038 18:013393 --:------ 1290 003 03B737
2020-01-19T23:55:25.716780 095 RQ --- 18:013393 01:145038 --:------ 1290 001 04
2020-01-19T23:55:25.721187 045 RP --- 01:145038 18:013393 --:------ 1290 003 04B637
2020-01-19T23:55:30.710821 095 RQ --- 18:013393 01:145038 --:------ 1290 001 05
2020-01-19T23:55:30.715327 045 RP --- 01:145038 18:013393 --:------ 1290 003 05B537

Payload Structure

segment size contents
unused [0:2] always 00
temperature [2:6] current temperature (degrees C) * 100

If outside temperature is less than zero, it will be a two's complement number.

If the segment is 7FFF, then the temperature is unknown.

Sample Code

Using Python, the payload can be decoded as:

def _temp(seqx) -> Optional[float]:
    if seqx == "7FFF":
        return None
    temp = int(seqx, 16)
    return (temp if temp < 2 ** 15 else temp - 2 ** 16) / 100

def parser_1290(payload) -> dict:
    assert payload[:2] == "00"

    return {"temperature": _temp(payload[2:])}

Related Packets

Clone this wiki locally