diff --git a/CHANGELOG.md b/CHANGELOG.md index 615136a82..b45515f60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ All notable changes to this project will be documented in this file. ## [12.4.0.3] ### Added +- Support for PMSA003I Air Quality Sensor by Jean-Pierre Deschamps (#18214) +- Support for DingTian virtual switch/button/relay (#18223) ### Breaking Changed diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 05d0815d8..8ab2606e7 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -120,6 +120,8 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm - Berry support for Tensorflow Lite (TFL) by Christiaan Baars [#18119](https://github.com/arendst/Tasmota/issues/18119) - Berry `webclient` features - Display TM1650 commands like TM1637 [#18109](https://github.com/arendst/Tasmota/issues/18109) +- Support for PMSA003I Air Quality Sensor by Jean-Pierre Deschamps [#18214](https://github.com/arendst/Tasmota/issues/18214) +- Support for DingTian virtual switch/button/relay [#18223](https://github.com/arendst/Tasmota/issues/18223) ### Breaking Changed - Shelly Pro 4PM using standard MCP23xxx driver and needs one time Auto-Configuration diff --git a/tasmota/include/tasmota_configurations.h b/tasmota/include/tasmota_configurations.h index 48b2b5afe..4bca9671e 100644 --- a/tasmota/include/tasmota_configurations.h +++ b/tasmota/include/tasmota_configurations.h @@ -158,7 +158,7 @@ //#define USE_DS3502 // [I2CDriver67] Enable DS3502 digital potentiometer (I2C address 0x28 - 0x2B) (+0k4 code) //#define USE_HYT // [I2CDriver68] Enable HYTxxx temperature and humidity sensor (I2C address 0x28) (+0k5 code) //#define USE_LUXV30B // [I2CDriver70] Enable RFRobot SEN0390 LuxV30b ambient light sensor (I2C address 0x4A) (+0k5 code) -//#define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+0k2 code) +//#define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+1k8 code) //#define USE_RTC_CHIPS // Enable RTC chip support and NTP server - Select only one // #define USE_DS3231 // [I2cDriver26] Enable DS3231 RTC (I2C address 0x68) (+1k2 code) diff --git a/tasmota/include/tasmota_configurations_ESP32.h b/tasmota/include/tasmota_configurations_ESP32.h index efd38390d..7dba8ee9b 100644 --- a/tasmota/include/tasmota_configurations_ESP32.h +++ b/tasmota/include/tasmota_configurations_ESP32.h @@ -430,7 +430,7 @@ //#define USE_DS3502 // [I2CDriver67] Enable DS3502 digital potentiometer (I2C address 0x28 - 0x2B) (+0k4 code) //#define USE_HYT // [I2CDriver68] Enable HYTxxx temperature and humidity sensor (I2C address 0x28) (+0k5 code) //#define USE_LUXV30B // [I2CDriver70] Enable RFRobot SEN0390 LuxV30b ambient light sensor (I2C address 0x4A) (+0k5 code) -//#define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+0k2 code) +//#define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+1k8 code) //#define USE_RTC_CHIPS // Enable RTC chip support and NTP server - Select only one // #define USE_DS3231 // [I2cDriver26] Enable DS3231 RTC (I2C address 0x68) (+1k2 code) @@ -655,7 +655,7 @@ //#define USE_DS3502 // [I2CDriver67] Enable DS3502 digital potentiometer (I2C address 0x28 - 0x2B) (+0k4 code) //#define USE_HYT // [I2CDriver68] Enable HYTxxx temperature and humidity sensor (I2C address 0x28) (+0k5 code) //#define USE_LUXV30B // [I2CDriver70] Enable RFRobot SEN0390 LuxV30b ambient light sensor (I2C address 0x4A) (+0k5 code) -//#define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+0k2 code) +//#define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+1k8 code) //#define USE_RTC_CHIPS // Enable RTC chip support and NTP server - Select only one // #define USE_DS3231 // [I2cDriver26] Enable DS3231 RTC (I2C address 0x68) (+1k2 code) diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h index a5b54c359..8f5d400eb 100644 --- a/tasmota/my_user_config.h +++ b/tasmota/my_user_config.h @@ -699,7 +699,7 @@ // #define INA3221_ADDRESS1 // allow to change the 1st address to search for INA3221 to 0x41..0x43 // #define INA3221_MAX_COUNT // change the number of devices to search for (default 4). // // Both settings together allow to limit searching for INA3221 to only a subset of addresses -// #define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+0k2 code) +// #define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+1k8 code) // #define USE_RTC_CHIPS // Enable RTC chip support and NTP server - Select only one // #define USE_DS3231 // [I2cDriver26] Enable DS3231 RTC (I2C address 0x68) (+1k2 code) diff --git a/tasmota/tasmota_xsns_sensor/xsns_104_pmsa003i.ino b/tasmota/tasmota_xsns_sensor/xsns_104_pmsa003i.ino index c5ca14f82..1f757a9e9 100644 --- a/tasmota/tasmota_xsns_sensor/xsns_104_pmsa003i.ino +++ b/tasmota/tasmota_xsns_sensor/xsns_104_pmsa003i.ino @@ -53,7 +53,7 @@ struct PMSA003I { void pmsa003i_Init(void) { if (!I2cSetDevice(PMSA003I_ADDRESS)) { - // AddLog(LOG_LEVEL_DEBUG, PSTR("PMSA003I: " D_JSON_I2CSCAN_NO_DEVICES_FOUND)); + // AddLog(LOG_LEVEL_DEBUG, PSTR("PMS: " D_JSON_I2CSCAN_NO_DEVICES_FOUND)); return; } @@ -61,8 +61,8 @@ void pmsa003i_Init(void) Pmsa003i.type = true; Pmsa003i.warmup_counter = PMSA003I_WARMUP_DELAY; I2cSetActiveFound(PMSA003I_ADDRESS, "PMSA003I"); - } else { - AddLog(LOG_LEVEL_DEBUG, PSTR("PMSA003I: " "begin_I2C failed")); +// } else { +// AddLog(LOG_LEVEL_DEBUG, PSTR("PMS: " "Begin_I2C failed")); } } @@ -76,7 +76,7 @@ void Pmsa003iUpdate(void) Pmsa003i.ready = false; PM25_AQI_Data data; - if (! Pmsa003iaqi.read(&data)) { // Could not read from AQI + if (! Pmsa003i.aqi.read(&data)) { // Could not read from AQI return; } Pmsa003i.data = data;