summaryrefslogtreecommitdiffstats
path: root/radiator-plc
diff options
context:
space:
mode:
Diffstat (limited to 'radiator-plc')
-rw-r--r--radiator-plc/stm32/app/logic.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/radiator-plc/stm32/app/logic.c b/radiator-plc/stm32/app/logic.c
index b5b768d..fb6ccd4 100644
--- a/radiator-plc/stm32/app/logic.c
+++ b/radiator-plc/stm32/app/logic.c
@@ -96,6 +96,8 @@ int high_limit[N_VALVES] = {
00000,
};
+int override[N_VALVES];
+
int valve_state[N_VALVES];
int failed_reads[N_VALVES];
@@ -130,6 +132,10 @@ void mqtt_dispatch (char *type, char *who, char *what, char *msg)
usart1_queue_buf (msg_buf, sprintf (msg_buf, "\r\nMQTTR stat/%s/var2 %.2f\r\n", valve_name[i], scale (high_limit[i])));
}
+ if (!strcmp (what, "var3")) {
+ override[i] = atoi (msg);
+ usart1_queue_buf (msg_buf, sprintf (msg_buf, "\r\nMQTTR stat/%s/var3 %d\r\n", valve_name[i], override[i]));
+ }
}
}
@@ -164,6 +170,9 @@ void logic_tick (void)
valve_state[i] = 0;
}
+ if (override[i])
+ valve_state[i]=1;
+
o = valve_state[i];
output_write (i, o);