diff --git a/sonoff/_changelog.ino b/sonoff/_changelog.ino
index 2f2a7b1c2..c603f826f 100644
--- a/sonoff/_changelog.ino
+++ b/sonoff/_changelog.ino
@@ -1,4 +1,5 @@
/* 6.1.1b
+ * Add support for MCP230xx for general purpose input expansion and command Sensor29 (#3188)
* Fix command Scale buffer overflow (#3236)
* Fix rules once regression from v6.1.0 (#3198, #3226)
* Add default Wifi Configuration tool as define WIFI_CONFIG_NO_SSID in user_config.h if no SSID is configured (#3224)
diff --git a/sonoff/language/bg-BG.h b/sonoff/language/bg-BG.h
index 6d82a843c..6f03fcf55 100644
--- a/sonoff/language/bg-BG.h
+++ b/sonoff/language/bg-BG.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Подтвърдете рестартирането"
#define D_CONFIGURE_MODULE "Конфигурация на модула"
+#define D_CONFIGURE_MCP230XX "Конфигурация на MCP230xx"
#define D_CONFIGURE_WIFI "Конфигурация на WiFi"
#define D_CONFIGURE_MQTT "Конфигурация на MQTT"
#define D_CONFIGURE_DOMOTICZ "Конфигурация на Domoticz"
diff --git a/sonoff/language/cs-CZ.h b/sonoff/language/cs-CZ.h
index cb93ad553..03bc4b8cd 100644
--- a/sonoff/language/cs-CZ.h
+++ b/sonoff/language/cs-CZ.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Potvrzení restartu"
#define D_CONFIGURE_MODULE "Nastavení modulu"
+#define D_CONFIGURE_MCP230XX "Nastavení MCP230xx"
#define D_CONFIGURE_WIFI "Nastavení WiFi"
#define D_CONFIGURE_MQTT "Nastavení MQTT"
#define D_CONFIGURE_DOMOTICZ "Nastavení Domoticz"
diff --git a/sonoff/language/de-DE.h b/sonoff/language/de-DE.h
index 4c0fde470..71d9ae65e 100644
--- a/sonoff/language/de-DE.h
+++ b/sonoff/language/de-DE.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Wirklich neustarten?"
#define D_CONFIGURE_MODULE "Gerät konfigurieren"
+#define D_CONFIGURE_MCP230XX "MCP230xx konfigurieren"
#define D_CONFIGURE_WIFI "WLAN konfigurieren"
#define D_CONFIGURE_MQTT "MQTT konfigurieren"
#define D_CONFIGURE_DOMOTICZ "Domoticz konfigurieren"
diff --git a/sonoff/language/el-GR.h b/sonoff/language/el-GR.h
index 702381ab1..e45efd5ba 100644
--- a/sonoff/language/el-GR.h
+++ b/sonoff/language/el-GR.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Επιβεβαίωση Επανεκκίνησης"
#define D_CONFIGURE_MODULE "Ρύθμιση Module"
+#define D_CONFIGURE_MCP230XX "Ρύθμιση MCP230xx"
#define D_CONFIGURE_WIFI "Ρύθμιση WiFi"
#define D_CONFIGURE_MQTT "Ρύθμιση MQTT"
#define D_CONFIGURE_DOMOTICZ "Ρύθμιση Domoticz"
diff --git a/sonoff/language/en-GB.h b/sonoff/language/en-GB.h
index 016e62e41..5a85abba3 100644
--- a/sonoff/language/en-GB.h
+++ b/sonoff/language/en-GB.h
@@ -166,7 +166,6 @@
#define D_VOLTAGE "Voltage"
#define D_WARMLIGHT "Warm"
#define D_WEB_SERVER "Web Server"
-#define D_CONFIGURE_MCP230XX "Configure MCP230xx"
// sonoff.ino
#define D_WARNING_MINIMAL_VERSION "WARNING This version does not support persistent settings"
@@ -228,6 +227,7 @@
#define D_CONFIRM_RESTART "Confirm Restart"
#define D_CONFIGURE_MODULE "Configure Module"
+#define D_CONFIGURE_MCP230XX "Configure MCP230xx"
#define D_CONFIGURE_WIFI "Configure WiFi"
#define D_CONFIGURE_MQTT "Configure MQTT"
#define D_CONFIGURE_DOMOTICZ "Configure Domoticz"
diff --git a/sonoff/language/es-AR.h b/sonoff/language/es-AR.h
index 1c4b4924a..82451d205 100644
--- a/sonoff/language/es-AR.h
+++ b/sonoff/language/es-AR.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Confirmar Reinicio"
#define D_CONFIGURE_MODULE "Configuración del Módulo"
+#define D_CONFIGURE_MCP230XX "Configuración MCP230xx"
#define D_CONFIGURE_WIFI "Configuración WiFi"
#define D_CONFIGURE_MQTT "Configuración MQTT"
#define D_CONFIGURE_DOMOTICZ "Configuración Domoticz"
diff --git a/sonoff/language/fr-FR.h b/sonoff/language/fr-FR.h
index ce1485513..a5aed67c1 100644
--- a/sonoff/language/fr-FR.h
+++ b/sonoff/language/fr-FR.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Confirmer redémarrage"
#define D_CONFIGURE_MODULE "Configuration du Module"
+#define D_CONFIGURE_MCP230XX "Configuration MCP230xx"
#define D_CONFIGURE_WIFI "Configuration WiFi"
#define D_CONFIGURE_MQTT "Configuration MQTT"
#define D_CONFIGURE_DOMOTICZ "Configuration Domoticz"
diff --git a/sonoff/language/hu-HU.h b/sonoff/language/hu-HU.h
index 14fb2a08b..a4ac7cea2 100644
--- a/sonoff/language/hu-HU.h
+++ b/sonoff/language/hu-HU.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Újraindítás megerősítése"
#define D_CONFIGURE_MODULE "Eszköz konfiguráció"
+#define D_CONFIGURE_MCP230XX "MCP230xx konfiguráció"
#define D_CONFIGURE_WIFI "WiFi konfiguráció"
#define D_CONFIGURE_MQTT "MQTT konfiguráció"
#define D_CONFIGURE_DOMOTICZ "Domoticz konfiguráció"
diff --git a/sonoff/language/it-IT.h b/sonoff/language/it-IT.h
index 6f1c4db0f..2a60abaf0 100644
--- a/sonoff/language/it-IT.h
+++ b/sonoff/language/it-IT.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Conferma Riavvio"
#define D_CONFIGURE_MODULE "Configurazione Modulo"
+#define D_CONFIGURE_MCP230XX "Configurazione MCP230xx"
#define D_CONFIGURE_WIFI "Configurazione WiFi"
#define D_CONFIGURE_MQTT "Configurazione MQTT"
#define D_CONFIGURE_DOMOTICZ "Configurazione Domoticz"
diff --git a/sonoff/language/nl-NL.h b/sonoff/language/nl-NL.h
index cf1c2b3b0..936d14861 100644
--- a/sonoff/language/nl-NL.h
+++ b/sonoff/language/nl-NL.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Bevestig herstart"
#define D_CONFIGURE_MODULE "Configureer Module"
+#define D_CONFIGURE_MCP230XX "Configureer MCP230xx"
#define D_CONFIGURE_WIFI "Configureer WiFi"
#define D_CONFIGURE_MQTT "Configureer MQTT"
#define D_CONFIGURE_DOMOTICZ "Configureer Domoticz"
diff --git a/sonoff/language/pl-PL.h b/sonoff/language/pl-PL.h
index e250e4c4d..ce29dde07 100644
--- a/sonoff/language/pl-PL.h
+++ b/sonoff/language/pl-PL.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Potwierdź restart"
#define D_CONFIGURE_MODULE "Konfiguruj moduł"
+#define D_CONFIGURE_MCP230XX "Konfiguruj MCP230xx"
#define D_CONFIGURE_WIFI "Konfiguruj WiFi"
#define D_CONFIGURE_MQTT "Konfiguruj MQTT"
#define D_CONFIGURE_DOMOTICZ "Konfiguruj Domoticz"
diff --git a/sonoff/language/pt-BR.h b/sonoff/language/pt-BR.h
index a32a7b5c3..0e6f82342 100644
--- a/sonoff/language/pt-BR.h
+++ b/sonoff/language/pt-BR.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Confirmar o reinicio"
#define D_CONFIGURE_MODULE "Configurar Módulo"
+#define D_CONFIGURE_MCP230XX "Configurar MCP230xx"
#define D_CONFIGURE_WIFI "Configurar WiFi"
#define D_CONFIGURE_MQTT "Configurar MQTT"
#define D_CONFIGURE_DOMOTICZ "Configurar Domoticz"
diff --git a/sonoff/language/pt-PT.h b/sonoff/language/pt-PT.h
index 393a74a87..e6d56ba1d 100644
--- a/sonoff/language/pt-PT.h
+++ b/sonoff/language/pt-PT.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Confirmar o reinicio"
#define D_CONFIGURE_MODULE "Configurar Módulo"
+#define D_CONFIGURE_MCP230XX "Configurar MCP230xx"
#define D_CONFIGURE_WIFI "Configurar WiFi"
#define D_CONFIGURE_MQTT "Configurar MQTT"
#define D_CONFIGURE_DOMOTICZ "Configurar Domoticz"
diff --git a/sonoff/language/ru-RU.h b/sonoff/language/ru-RU.h
index 79df5b2d4..e4bc30ea2 100644
--- a/sonoff/language/ru-RU.h
+++ b/sonoff/language/ru-RU.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Подтвердить перезагрузку"
#define D_CONFIGURE_MODULE "Конфигурация Модуля"
+#define D_CONFIGURE_MCP230XX "Конфигурация MCP230xx"
#define D_CONFIGURE_WIFI "Конфигурация WiFi"
#define D_CONFIGURE_MQTT "Конфигурация MQTT"
#define D_CONFIGURE_DOMOTICZ "Конфигурация Domoticz"
diff --git a/sonoff/language/uk-UK.h b/sonoff/language/uk-UK.h
index d925d13fb..fda5d2e46 100644
--- a/sonoff/language/uk-UK.h
+++ b/sonoff/language/uk-UK.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "Підтвердити перезавантаження"
#define D_CONFIGURE_MODULE "Конфігурація модуля"
+#define D_CONFIGURE_MCP230XX "Конфігурація MCP230xx"
#define D_CONFIGURE_WIFI "Конфігурація WiFi"
#define D_CONFIGURE_MQTT "Конфігурація MQTT"
#define D_CONFIGURE_DOMOTICZ "Конфігурація Domoticz"
diff --git a/sonoff/language/zh-CN.h b/sonoff/language/zh-CN.h
index 9e5149125..203e5ac08 100644
--- a/sonoff/language/zh-CN.h
+++ b/sonoff/language/zh-CN.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "确认重启"
#define D_CONFIGURE_MODULE "模块设置"
+#define D_CONFIGURE_MCP230XX "MCP230xx设置"
#define D_CONFIGURE_WIFI "WiFi设置"
#define D_CONFIGURE_MQTT "MQTT设置"
#define D_CONFIGURE_DOMOTICZ "Domoticz设置"
diff --git a/sonoff/language/zh-TW.h b/sonoff/language/zh-TW.h
index 6d4154cdf..22f35f924 100644
--- a/sonoff/language/zh-TW.h
+++ b/sonoff/language/zh-TW.h
@@ -227,6 +227,7 @@
#define D_CONFIRM_RESTART "確認重啟"
#define D_CONFIGURE_MODULE "模塊設置"
+#define D_CONFIGURE_MCP230XX "MCP230xx設置"
#define D_CONFIGURE_WIFI "WiFi設置"
#define D_CONFIGURE_MQTT "MQTT設置"
#define D_CONFIGURE_DOMOTICZ "Domoticz設置"
diff --git a/sonoff/user_config.h b/sonoff/user_config.h
index 12a4924b1..1550383fb 100644
--- a/sonoff/user_config.h
+++ b/sonoff/user_config.h
@@ -287,12 +287,9 @@
// #define USE_MGS // Add I2C code for Xadow and Grove Mutichannel Gas sensor using library Multichannel_Gas_Sensor (+10k code)
#define MGS_SENSOR_ADDR 0x04 // Default Mutichannel Gas sensor i2c address
// #define USE_APDS9960 // Add I2C code for APDS9960 Proximity Sensor. Disables SHT and VEML6070 (+4k7 code)
-
- // If only USE_MCP230xx then device can be configured using sensor29 command
-// #define USE_MCP230xx // Add I2C code for MCP23008/MCP23017 for GP INPUT ONLY (+2260 bytes)
-// #define USE_MCP230xx_displaymain // Display pin status on Tasmota main page (+188 bytes)
-// #define USE_MCP230xx_webconfig // Enable web config button and form to Tasmota web interface (+2444)
-
+// #define USE_MCP230xx // Add I2C code for MCP23008/MCP23017 for GP INPUT ONLY providing command Sensor29 for configuration (+2k2 code)
+// #define USE_MCP230xx_displaymain // Display pin status on Tasmota main page (+0k2 code)
+// #define USE_MCP230xx_webconfig // Enable web config button and form to Tasmota web interface (+2k1 code)
#endif // USE_I2C
// -- SPI sensors ---------------------------------
diff --git a/sonoff/xdrv_02_webserver.ino b/sonoff/xdrv_02_webserver.ino
index ec6423e6b..3f6a7b628 100644
--- a/sonoff/xdrv_02_webserver.ino
+++ b/sonoff/xdrv_02_webserver.ino
@@ -190,6 +190,10 @@ const char HTTP_BTN_RSTRT[] PROGMEM =
"