mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 11:16:34 +00:00
Add support for multiple MCP23017 as switch/button/relay
This commit is contained in:
parent
873567a999
commit
9f30836854
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user