2 Commits
v1.2 ... main

Author SHA1 Message Date
UA1ZBE
231db4c652 add relay on / relay off — control all relays at once 2026-07-27 10:20:38 +03:00
UA1ZBE
b349dd38ec invert relay outputs: ON=LOW, OFF=HIGH 2026-07-27 10:17:01 +03:00

View File

@@ -173,27 +173,39 @@ public:
while (*cmd == ' ') cmd++;
if (strcmp(cmd, "help") == 0) {
defer_response("help:ohrana on,ohrana off,relay1 on,relay1 off,relay2 on,relay2 off,relay3 on,relay3 off,relay4 on,relay4 off,relay,status,ver,scan,snr,uptime,kontrol,time,reboot");
defer_response("help:ohrana on,ohrana off,relay on,relay off,relay1 on,relay1 off,relay2 on,relay2 off,relay3 on,relay3 off,relay4 on,relay4 off,relay,status,ver,scan,snr,uptime,kontrol,time,reboot");
} else if (strcmp(cmd, "ohrana on") == 0) {
g_armed = true; saveSecurityConfig(); defer_response("ohrana on ok");
} else if (strcmp(cmd, "ohrana off") == 0) {
g_armed = false; saveSecurityConfig(); defer_response("ohrana off ok");
} else if (strcmp(cmd, "relay1 on") == 0) {
g_relay1_state = true; digitalWrite(PIN_RELAY_1, HIGH); saveSecurityConfig(); defer_response("relay1 on ok");
g_relay1_state = true; digitalWrite(PIN_RELAY_1, LOW); saveSecurityConfig(); defer_response("relay1 on ok");
} else if (strcmp(cmd, "relay1 off") == 0) {
g_relay1_state = false; digitalWrite(PIN_RELAY_1, LOW); saveSecurityConfig(); defer_response("relay1 off ok");
g_relay1_state = false; digitalWrite(PIN_RELAY_1, HIGH); saveSecurityConfig(); defer_response("relay1 off ok");
} else if (strcmp(cmd, "relay2 on") == 0) {
g_relay2_state = true; digitalWrite(PIN_RELAY_2, HIGH); saveSecurityConfig(); defer_response("relay2 on ok");
g_relay2_state = true; digitalWrite(PIN_RELAY_2, LOW); saveSecurityConfig(); defer_response("relay2 on ok");
} else if (strcmp(cmd, "relay2 off") == 0) {
g_relay2_state = false; digitalWrite(PIN_RELAY_2, LOW); saveSecurityConfig(); defer_response("relay2 off ok");
g_relay2_state = false; digitalWrite(PIN_RELAY_2, HIGH); saveSecurityConfig(); defer_response("relay2 off ok");
} else if (strcmp(cmd, "relay3 on") == 0) {
g_relay3_state = true; digitalWrite(PIN_RELAY_3, HIGH); saveSecurityConfig(); defer_response("relay3 on ok");
g_relay3_state = true; digitalWrite(PIN_RELAY_3, LOW); saveSecurityConfig(); defer_response("relay3 on ok");
} else if (strcmp(cmd, "relay3 off") == 0) {
g_relay3_state = false; digitalWrite(PIN_RELAY_3, LOW); saveSecurityConfig(); defer_response("relay3 off ok");
g_relay3_state = false; digitalWrite(PIN_RELAY_3, HIGH); saveSecurityConfig(); defer_response("relay3 off ok");
} else if (strcmp(cmd, "relay4 on") == 0) {
g_relay4_state = true; digitalWrite(PIN_RELAY_4, HIGH); saveSecurityConfig(); defer_response("relay4 on ok");
g_relay4_state = true; digitalWrite(PIN_RELAY_4, LOW); saveSecurityConfig(); defer_response("relay4 on ok");
} else if (strcmp(cmd, "relay4 off") == 0) {
g_relay4_state = false; digitalWrite(PIN_RELAY_4, LOW); saveSecurityConfig(); defer_response("relay4 off ok");
g_relay4_state = false; digitalWrite(PIN_RELAY_4, HIGH); saveSecurityConfig(); defer_response("relay4 off ok");
} else if (strcmp(cmd, "relay on") == 0) {
g_relay1_state = true; digitalWrite(PIN_RELAY_1, LOW);
g_relay2_state = true; digitalWrite(PIN_RELAY_2, LOW);
g_relay3_state = true; digitalWrite(PIN_RELAY_3, LOW);
g_relay4_state = true; digitalWrite(PIN_RELAY_4, LOW);
saveSecurityConfig(); defer_response("relay all on ok");
} else if (strcmp(cmd, "relay off") == 0) {
g_relay1_state = false; digitalWrite(PIN_RELAY_1, HIGH);
g_relay2_state = false; digitalWrite(PIN_RELAY_2, HIGH);
g_relay3_state = false; digitalWrite(PIN_RELAY_3, HIGH);
g_relay4_state = false; digitalWrite(PIN_RELAY_4, HIGH);
saveSecurityConfig(); defer_response("relay all off ok");
} else if (strcmp(cmd, "relay") == 0) {
char r[48]; snprintf(r, sizeof(r), "relay:1%s 2%s 3%s 4%s",
g_relay1_state ? "on" : "off",
@@ -322,10 +334,10 @@ void setup() {
InternalFS.begin();
loadSecurityConfig();
digitalWrite(PIN_RELAY_1, g_relay1_state ? HIGH : LOW);
digitalWrite(PIN_RELAY_2, g_relay2_state ? HIGH : LOW);
digitalWrite(PIN_RELAY_3, g_relay3_state ? HIGH : LOW);
digitalWrite(PIN_RELAY_4, g_relay4_state ? HIGH : LOW);
digitalWrite(PIN_RELAY_1, g_relay1_state ? LOW : HIGH);
digitalWrite(PIN_RELAY_2, g_relay2_state ? LOW : HIGH);
digitalWrite(PIN_RELAY_3, g_relay3_state ? LOW : HIGH);
digitalWrite(PIN_RELAY_4, g_relay4_state ? LOW : HIGH);
if (!radio_init()) {
Serial.println("RADIO FAIL");