From d5e9686ca9422a79b008661cced0188aa3076d3a Mon Sep 17 00:00:00 2001 From: Andrey Klimov Date: Tue, 3 Mar 2020 02:27:09 +0300 Subject: [PATCH] Compilation issue (with updated libs) fixed for most platforms Command now can be refined for particular channel state using SUBITEM=CMD --- build-flags/build_flags_esp8266-wifi | 2 +- lighthub/item.cpp | 37 +++++++++++++++++++++-- platformio.ini | 45 +++++++++++++++------------- 3 files changed, 60 insertions(+), 24 deletions(-) diff --git a/build-flags/build_flags_esp8266-wifi b/build-flags/build_flags_esp8266-wifi index ca0d4d5..2201bbf 100644 --- a/build-flags/build_flags_esp8266-wifi +++ b/build-flags/build_flags_esp8266-wifi @@ -1,3 +1,3 @@ -DMODBUS_DISABLE #-DCOUNTER_DISABLE --DOTA +#-DOTA diff --git a/lighthub/item.cpp b/lighthub/item.cpp index a11bee9..254f611 100644 --- a/lighthub/item.cpp +++ b/lighthub/item.cpp @@ -89,6 +89,26 @@ int txt2cmd(char *payload) { return cmd; } +int subitem2cmd(char *payload) { + int cmd = 0; + + // Check for command + if (payload) + if (strcmp_P(payload, ON_P) == 0) cmd = CMD_ON; + else if (strcmp_P(payload, OFF_P) == 0) cmd = CMD_OFF; + //else if (strcmp_P(payload, REST_P) == 0) cmd = CMD_RESTORE; + //else if (strcmp_P(payload, TOGGLE_P) == 0) cmd = CMD_TOGGLE; + else if (strcmp_P(payload, HALT_P) == 0) cmd = CMD_HALT; + else if (strcmp_P(payload, XON_P) == 0) cmd = CMD_XON; + //else if (strcmp_P(payload, XOFF_P) == 0) cmd = CMD_XOFF; + else if (strcmp_P(payload, HEAT_P) == 0) cmd = CMD_HEAT; + else if (strcmp_P(payload, COOL_P) == 0) cmd = CMD_COOL; + else if (strcmp_P(payload, AUTO_P) == 0) cmd = CMD_AUTO; + else if (strcmp_P(payload, FAN_ONLY_P) == 0) cmd = CMD_FAN; + else if (strcmp_P(payload, DRY_P) == 0) cmd = CMD_DRY; + + return cmd; +} int txt2subItem(char *payload) { int cmd = S_NOTFOUND; @@ -501,6 +521,18 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode debugSerial<