From d9d88722114340ce4358c057fecc794ccd515102 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Mon, 27 Jul 2020 11:58:14 +0200 Subject: [PATCH] BSB daemon: Errors --- MQTT | 2 ++ bsb/PACKETS | 8 ++++++-- bsb/daemon/burrow-bsbd.c | 13 +++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/MQTT b/MQTT index 266f3a7..80ec60a 100644 --- a/MQTT +++ b/MQTT @@ -48,6 +48,8 @@ burrow/heating/circuit1/active 0/1 burrow/heating/circuit2/room-temp burrow/heating/circuit2/active 0/1 burrow/heating/water/active 0/1 +burrow/heating/error %04x [error code from message 0500:006b] +burrow/heating/clock yyyy-mm-dd hh:mm bsb/stats/* bsb/frame hex dump of raw frames received diff --git a/bsb/PACKETS b/bsb/PACKETS index 21ae206..f6f579e 100644 --- a/bsb/PACKETS +++ b/bsb/PACKETS @@ -2,7 +2,7 @@ Error/warning code - 69 05 seen so far: 6905 (low pressure?), 8509 (no gas?), 6208 (ignition timeout?), 0000 (OK) + 69 05 seen so far: 6905 (low pressure?), 8509 (no gas?), 6208 (ignition timeout?), 7606 (very low pressure), 0000 (OK) 00 -> 7f INFO 0500009b @@ -24,7 +24,7 @@ 00 -> 7f INFO 0500:0213: - 14 00/04/14, 02 (low pressure warning?), 09/0b (during no gas errors), 08/43/40 (during boot) + 14 00/04/14, 02 (low pressure warning?), 0b (low pressure error), 09/0b (during no gas errors), 08/43/40 (during boot) 00 00 5b 00 -> 7f: INFO 0500:0219 @@ -62,6 +62,8 @@ 00 02 71 + or: 00 02 36 (low pressure error) + 06 -> 00 QUERY 053d009a 00 -> 06 ANSWER 053d009a @@ -69,6 +71,8 @@ 00 85 09 00 68 00 00 00 00 00 00 00 + or: 00 76 06 00 40 01 00 00 00 00 00 00 (low pressure error) + 07 -> 00 QUERY 053d009c 00 -> 07 ANSWER 053d009c: diff --git a/bsb/daemon/burrow-bsbd.c b/bsb/daemon/burrow-bsbd.c index a0a2147..786e058 100644 --- a/bsb/daemon/burrow-bsbd.c +++ b/bsb/daemon/burrow-bsbd.c @@ -202,6 +202,19 @@ static void process_info(time_t t, byte *p, uint len) len -= 4; switch (addr) { + case 0x0500006b: + if (len >= 2) { + int err = get_u16_be(p); + mqtt_publish("burrow/heating/error", "%04x", err); + } + break; + case 0x0500006c: + if (len >= 7) { + mqtt_publish("burrow/heating/clock", "%04d-%02d-%02d %02d:%02d", + get_u16_be(p) + 1900, p[2], p[3], + p[5], p[6]); + } + break; case 0x05000219: if (len >= 4) { int temp = get_s16_be(p); -- 2.39.2