diff --git a/tasmota/xsns_15_mhz19.ino b/tasmota/xsns_15_mhz19.ino index 0444bce64..a2afb267f 100644 --- a/tasmota/xsns_15_mhz19.ino +++ b/tasmota/xsns_15_mhz19.ino @@ -74,7 +74,7 @@ const char kMhzModels[] PROGMEM = "|B"; const char ABC_ENABLED[] = "ABC is Enabled"; const char ABC_DISABLED[] = "ABC is Disabled"; -enum MhzCommands { MHZ_CMND_READPPM, MHZ_CMND_ABCENABLE, MHZ_CMND_ABCDISABLE, MHZ_CMND_ZEROPOINT, MHZ_CMND_RESET, MHZ_CMND_RANGE_1000, MHZ_CMND_RANGE_2000, MHZ_CMND_RANGE_3000, MHZ_CMND_RANGE_5000 }; +enum MhzCommands { MHZ_CMND_READPPM, MHZ_CMND_ABCENABLE, MHZ_CMND_ABCDISABLE, MHZ_CMND_ZEROPOINT, MHZ_CMND_RESET, MHZ_CMND_RANGE_1000, MHZ_CMND_RANGE_2000, MHZ_CMND_RANGE_3000, MHZ_CMND_RANGE_5000, MHZ_CMND_RANGE_10000 }; const uint8_t kMhzCommands[][4] PROGMEM = { // 2 3 6 7 {0x86,0x00,0x00,0x00}, // mhz_cmnd_read_ppm @@ -85,7 +85,8 @@ const uint8_t kMhzCommands[][4] PROGMEM = { {0x99,0x00,0x03,0xE8}, // mhz_cmnd_set_range_1000 {0x99,0x00,0x07,0xD0}, // mhz_cmnd_set_range_2000 {0x99,0x00,0x0B,0xB8}, // mhz_cmnd_set_range_3000 - {0x99,0x00,0x13,0x88}}; // mhz_cmnd_set_range_5000 + {0x99,0x00,0x13,0x88}, // mhz_cmnd_set_range_5000 + {0x99,0x00,0x27,0x10}}; // mhz_cmnd_set_range_10000 uint8_t mhz_type = 1; uint16_t mhz_last_ppm = 0; @@ -135,7 +136,7 @@ bool MhzCheckAndApplyFilter(uint16_t ppm, uint8_t s) if (1 == s) { return false; // S==1 => "A" version sensor bootup, do not use values. } - if (mhz_last_ppm < 400 || mhz_last_ppm > 5000) { + if (mhz_last_ppm < 400 || mhz_last_ppm > 10000) { // Prevent unrealistic values during start-up with filtering enabled. // Just assume the entered value is correct. mhz_last_ppm = ppm; @@ -269,6 +270,7 @@ void MhzEverySecond(void) #define D_JSON_RANGE_2000 "2000 ppm range" #define D_JSON_RANGE_3000 "3000 ppm range" #define D_JSON_RANGE_5000 "5000 ppm range" +#define D_JSON_RANGE_10000 "10000 ppm range" bool MhzCommandSensor(void) { @@ -309,6 +311,10 @@ bool MhzCommandSensor(void) MhzSendCmd(MHZ_CMND_RANGE_5000); Response_P(S_JSON_SENSOR_INDEX_SVALUE, XSNS_15, D_JSON_RANGE_5000); break; + case 10000: + MhzSendCmd(MHZ_CMND_RANGE_10000); + Response_P(S_JSON_SENSOR_INDEX_SVALUE, XSNS_15, D_JSON_RANGE_10000); + break; default: if (!Settings.SensorBits1.mhz19b_abc_disable) { Response_P(S_JSON_SENSOR_INDEX_SVALUE, XSNS_15, ABC_ENABLED);