From 9f308368540c01dbcc235b118cb1b1785d8e479b Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Wed, 1 Mar 2023 10:12:47 +0100 Subject: [PATCH] Add support for multiple MCP23017 as switch/button/relay --- CHANGELOG.md | 1 + tasmota/include/tasmota_template.h | 9 ++++++--- tasmota/language/af_AF.h | 1 + tasmota/language/bg_BG.h | 1 + tasmota/language/ca_AD.h | 1 + tasmota/language/cs_CZ.h | 1 + tasmota/language/de_DE.h | 1 + tasmota/language/el_GR.h | 1 + tasmota/language/en_GB.h | 1 + tasmota/language/es_ES.h | 1 + tasmota/language/fr_FR.h | 1 + tasmota/language/fy_NL.h | 1 + tasmota/language/he_HE.h | 1 + tasmota/language/hu_HU.h | 1 + tasmota/language/it_IT.h | 1 + tasmota/language/ko_KO.h | 1 + tasmota/language/nl_NL.h | 1 + tasmota/language/pl_PL.h | 1 + tasmota/language/pt_BR.h | 1 + tasmota/language/pt_PT.h | 1 + tasmota/language/ro_RO.h | 1 + tasmota/language/ru_RU.h | 1 + tasmota/language/sk_SK.h | 1 + tasmota/language/sv_SE.h | 1 + tasmota/language/tr_TR.h | 1 + tasmota/language/uk_UA.h | 1 + tasmota/language/vi_VN.h | 1 + tasmota/language/zh_CN.h | 1 + tasmota/language/zh_TW.h | 1 + tasmota/tasmota_support/support_features.ino | 4 +++- .../{xdrv_67_mcp230xx.ino => xdrv_67_mcp23xxx.ino} | 2 +- tools/decode-status.py | 4 ++-- 32 files changed, 40 insertions(+), 7 deletions(-) rename tasmota/tasmota_xdrv_driver/{xdrv_67_mcp230xx.ino => xdrv_67_mcp23xxx.ino} (99%) diff --git a/CHANGELOG.md b/CHANGELOG.md index a30fe8116..e294dba68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file. - Matter read/write and commands (#18000) - Matter subscriptions (#18017, #18018) - Matter multi-fabric (#18019) +- Support for multiple MCP23017 as switch/button/relay ### Breaking Changed diff --git a/tasmota/include/tasmota_template.h b/tasmota/include/tasmota_template.h index aa1f982bf..ce1da3845 100644 --- a/tasmota/include/tasmota_template.h +++ b/tasmota/include/tasmota_template.h @@ -206,7 +206,7 @@ enum UserSelectablePins { GPIO_ME007_TRIG, GPIO_ME007_RX, // ME007 Serial/Trigger interface GPIO_TUYAMCUBR_TX, GPIO_TUYAMCUBR_RX, // TuyaMCU Bridge GPIO_BIOPDU_PZEM0XX_TX, GPIO_BIOPDU_PZEM016_RX, GPIO_BIOPDU_BIT, // Biomine BioPDU 625x12 - GPIO_MCP23XXX_INT, // MCP23xxx INT + GPIO_MCP23XXX_INT, GPIO_MCP23SXX_CS, // MCP23xxx Int and SPI Chip select GPIO_SENSOR_END }; // Error as warning to rethink GPIO usage with max 2045 @@ -460,7 +460,7 @@ const char kSensorNames[] PROGMEM = D_SENSOR_ME007_TRIG "|" D_SENSOR_ME007_RX "|" D_SENSOR_TUYAMCUBR_TX "|" D_SENSOR_TUYAMCUBR_RX "|" D_SENSOR_BIOPDU_PZEM0XX_TX "|" D_SENSOR_BIOPDU_PZEM016_RX "|" D_SENSOR_BIOPDU_BIT "|" - D_SENSOR_MCP23XXX_INT "|" + D_SENSOR_MCP23XXX_INT "|" D_SENSOR_MCP23SXX_CS "|" ; const char kSensorNamesFixed[] PROGMEM = @@ -468,7 +468,7 @@ const char kSensorNamesFixed[] PROGMEM = // Max number of GPIOs #define MAX_MAX31865S 6 -#define MAX_MCP23XXX 4 +#define MAX_MCP23XXX 6 #define MAX_FLOWRATEMETER 2 #define MAX_A4988_MSS 3 #define MAX_WEBCAM_DATA 8 @@ -590,6 +590,9 @@ const uint16_t kGpioNiceList[] PROGMEM = { #if defined(USE_MCP2515) || defined(USE_CANSNIFFER) AGPIO(GPIO_MCP2515_CS), #endif // USE_MCP2515 +#ifdef USE_MCP23XXX_DRV + AGPIO(GPIO_MCP23SXX_CS) + MAX_MCP23XXX, +#endif // USE_MCP23XXX_DRV #endif // USE_SPI #if defined(USE_SDCARD) && defined(ESP32) diff --git a/tasmota/language/af_AF.h b/tasmota/language/af_AF.h index 771d82841..0f5570444 100644 --- a/tasmota/language/af_AF.h +++ b/tasmota/language/af_AF.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h index 742aa1f7b..608d08c19 100644 --- a/tasmota/language/bg_BG.h +++ b/tasmota/language/bg_BG.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/ca_AD.h b/tasmota/language/ca_AD.h index 5321a8133..dd67e976e 100644 --- a/tasmota/language/ca_AD.h +++ b/tasmota/language/ca_AD.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h index 844d213c5..ae31b8d00 100644 --- a/tasmota/language/cs_CZ.h +++ b/tasmota/language/cs_CZ.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h index ece2fcdc1..41685e005 100644 --- a/tasmota/language/de_DE.h +++ b/tasmota/language/de_DE.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h index bd2449aaf..e282c1237 100644 --- a/tasmota/language/el_GR.h +++ b/tasmota/language/el_GR.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h index 12af992c7..5422de1e7 100644 --- a/tasmota/language/en_GB.h +++ b/tasmota/language/en_GB.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h index 313a21120..829e24a65 100644 --- a/tasmota/language/es_ES.h +++ b/tasmota/language/es_ES.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h index 852da5b38..72e20c65d 100644 --- a/tasmota/language/fr_FR.h +++ b/tasmota/language/fr_FR.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "Effet Hall" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/fy_NL.h b/tasmota/language/fy_NL.h index 52afc029d..2a15fb8f0 100644 --- a/tasmota/language/fy_NL.h +++ b/tasmota/language/fy_NL.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h index e1ee3fc63..7fb3b2406 100644 --- a/tasmota/language/he_HE.h +++ b/tasmota/language/he_HE.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h index 702bed300..00f76e44f 100644 --- a/tasmota/language/hu_HU.h +++ b/tasmota/language/hu_HU.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h index f6d511e63..6c7661298 100644 --- a/tasmota/language/it_IT.h +++ b/tasmota/language/it_IT.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "Effetto hall" #define D_SENSOR_EPD_DATA "EPD - Dati" #define D_SENSOR_MCP23XXX_INT "MCP23xxx - Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx - CS" #define D_SENSOR_MCP2515_CS "MCP2515 - CS" #define D_SENSOR_HRG15_RX "HRG15 - RX" #define D_SENSOR_HRG15_TX "HRG15 - TX" diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h index 4774242e7..7f06bedc5 100644 --- a/tasmota/language/ko_KO.h +++ b/tasmota/language/ko_KO.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h index 161d5ee14..be5ef613c 100644 --- a/tasmota/language/nl_NL.h +++ b/tasmota/language/nl_NL.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h index 37ced0ef5..d64808a38 100644 --- a/tasmota/language/pl_PL.h +++ b/tasmota/language/pl_PL.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "Efekt Halla" #define D_SENSOR_EPD_DATA "EPD Dane" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h index 13520019a..97dc980c0 100644 --- a/tasmota/language/pt_BR.h +++ b/tasmota/language/pt_BR.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "Efeito Hall" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h index a7b967fcf..b77686997 100644 --- a/tasmota/language/pt_PT.h +++ b/tasmota/language/pt_PT.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "Efeito Hall" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h index 5b73135e6..f210b5c68 100644 --- a/tasmota/language/ro_RO.h +++ b/tasmota/language/ro_RO.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h index e4a3b62bb..75dfe0002 100644 --- a/tasmota/language/ru_RU.h +++ b/tasmota/language/ru_RU.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h index b825a793b..b97fddb6a 100644 --- a/tasmota/language/sk_SK.h +++ b/tasmota/language/sk_SK.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h index 61adf33c3..d40650bd5 100644 --- a/tasmota/language/sv_SE.h +++ b/tasmota/language/sv_SE.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h index 924b1dc27..e74f6c144 100644 --- a/tasmota/language/tr_TR.h +++ b/tasmota/language/tr_TR.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h index 6ff362dc2..e06801fc1 100644 --- a/tasmota/language/uk_UA.h +++ b/tasmota/language/uk_UA.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h index 57b6738d8..b0a9ac266 100644 --- a/tasmota/language/vi_VN.h +++ b/tasmota/language/vi_VN.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h index 8c6f60420..d1d5918b1 100644 --- a/tasmota/language/zh_CN.h +++ b/tasmota/language/zh_CN.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h index cf2ac7d68..6078ee069 100644 --- a/tasmota/language/zh_TW.h +++ b/tasmota/language/zh_TW.h @@ -896,6 +896,7 @@ #define D_SENSOR_HALLEFFECT "HallEffect" #define D_SENSOR_EPD_DATA "EPD Data" #define D_SENSOR_MCP23XXX_INT "MCP23xxx Int" +#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS" #define D_SENSOR_MCP2515_CS "MCP2515 CS" #define D_SENSOR_HRG15_RX "HRG15 Rx" #define D_SENSOR_HRG15_TX "HRG15 Tx" diff --git a/tasmota/tasmota_support/support_features.ino b/tasmota/tasmota_support/support_features.ino index 72ba87771..e1f5759b2 100644 --- a/tasmota/tasmota_support/support_features.ino +++ b/tasmota/tasmota_support/support_features.ino @@ -876,7 +876,9 @@ void ResponseAppendFeatures(void) #if defined(USE_ENERGY_SENSOR) && defined(USE_BIOPDU) feature9 |= 0x00010000; // xnrg_24_biopdu.ino #endif -// feature9 |= 0x00020000; +#if (defined(USE_I2C) || defined(USE_SPI)) && defined(USE_MCP23XXX_DRV) + feature9 |= 0x00020000; // xdrv_67_mcp23xxx.ino +#endif // feature9 |= 0x00040000; // feature9 |= 0x00080000; diff --git a/tasmota/tasmota_xdrv_driver/xdrv_67_mcp230xx.ino b/tasmota/tasmota_xdrv_driver/xdrv_67_mcp23xxx.ino similarity index 99% rename from tasmota/tasmota_xdrv_driver/xdrv_67_mcp230xx.ino rename to tasmota/tasmota_xdrv_driver/xdrv_67_mcp23xxx.ino index 2717a933c..5a2a263ac 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_67_mcp230xx.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_67_mcp23xxx.ino @@ -1,5 +1,5 @@ /* - xdrv_67_mcp230xx.ino - MCP23008/MCP23017 GPIO Expander support for Tasmota + xdrv_67_mcp23xxx.ino - MCP23008/MCP23017/MCP23S17 GPIO Expander support for Tasmota SPDX-FileCopyrightText: 2023 Theo Arends diff --git a/tools/decode-status.py b/tools/decode-status.py index 65c5c9a5f..7d6751dd5 100755 --- a/tools/decode-status.py +++ b/tools/decode-status.py @@ -293,7 +293,7 @@ a_features = [[ "USE_MODBUS_ENERGY","USE_SHELLY_PRO","USE_DALI","USE_BP1658CJ", "USE_DINGTIAN_RELAY","USE_HMC5883L","USE_LD2410","USE_ME007", "USE_DISPLAY_TM1650","USE_PCA9632","USE_TUYAMCUBR","USE_SEN5X", - "USE_BIOPDU","","","", + "USE_BIOPDU","USE_MCP23XXX_DRV","","", "","","","", "","","","", "","","","" @@ -324,7 +324,7 @@ else: obj = json.load(fp) def StartDecode(): - print ("\n*** decode-status.py v12.3.1.6 by Theo Arends and Jacek Ziolkowski ***") + print ("\n*** decode-status.py v12.4.0.1 by Theo Arends and Jacek Ziolkowski ***") # print("Decoding\n{}".format(obj))