]> mj.ucw.cz Git - home-hw.git/commitdiff
BSB daemon: Errors
authorMartin Mares <mj@ucw.cz>
Mon, 27 Jul 2020 09:58:14 +0000 (11:58 +0200)
committerMartin Mares <mj@ucw.cz>
Mon, 27 Jul 2020 09:58:14 +0000 (11:58 +0200)
MQTT
bsb/PACKETS
bsb/daemon/burrow-bsbd.c

diff --git a/MQTT b/MQTT
index 266f3a7b6356fe19191916e9f15e63d2eb17bacd..80ec60a4dbf9a67c5d299241de3087529a11a010 100644 (file)
--- 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
index 21ae206725eef3747815cdfb221fda271e803817..f6f579e290ef38210ca648766f4398c5f9e26708 100644 (file)
@@ -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:
 
index a0a2147d3002223fed5f43a08da35f2e69a94510..786e05879954721f7baadeb408f00e2bee6c537a 100644 (file)
@@ -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);