6namespace grove_gas_mc_v2 {
8static const char *
const TAG =
"grove_gas_mc_v2";
13static const uint8_t GROVE_GAS_MC_V2_HEAT_ON = 0xFE;
14static const uint8_t GROVE_GAS_MC_V2_HEAT_OFF = 0xFF;
15static const uint8_t GROVE_GAS_MC_V2_READ_GM102B = 0x01;
16static const uint8_t GROVE_GAS_MC_V2_READ_GM302B = 0x03;
17static const uint8_t GROVE_GAS_MC_V2_READ_GM502B = 0x05;
18static const uint8_t GROVE_GAS_MC_V2_READ_GM702B = 0x07;
21 if (sensor ==
nullptr) {
25 if (!this->
read_bytes(address, (uint8_t *) &value, 4)) {
26 ESP_LOGW(TAG,
"Reading Grove Gas Sensor data failed!");
36 ESP_LOGCONFIG(TAG,
"Setting up Grove Multichannel Gas Sensor V2...");
39 if (!(this->
write_bytes(GROVE_GAS_MC_V2_HEAT_ON, {}))) {
45void GroveGasMultichannelV2Component::update() {
47 if (!this->
read_sensor_(GROVE_GAS_MC_V2_READ_GM102B, this->nitrogen_dioxide_sensor_))
49 if (!this->
read_sensor_(GROVE_GAS_MC_V2_READ_GM302B, this->ethanol_sensor_))
51 if (!this->
read_sensor_(GROVE_GAS_MC_V2_READ_GM502B, this->tvoc_sensor_))
53 if (!this->
read_sensor_(GROVE_GAS_MC_V2_READ_GM702B, this->carbon_monoxide_sensor_))
59void GroveGasMultichannelV2Component::dump_config() {
60 ESP_LOGCONFIG(TAG,
"Grove Multichannel Gas Sensor V2");
62 LOG_UPDATE_INTERVAL(this)
63 LOG_SENSOR(" ", "Nitrogen Dioxide", this->nitrogen_dioxide_sensor_)
64 LOG_SENSOR(" ", "Ethanol", this->ethanol_sensor_)
65 LOG_SENSOR(" ", "Carbon Monoxide", this->carbon_monoxide_sensor_)
66 LOG_SENSOR(" ", "TVOC", this->tvoc_sensor_)
69 switch (this->error_code_) {
71 ESP_LOGW(TAG,
"Communication failed! Is the sensor connected?");
74 ESP_LOGW(TAG,
"Sensor reported invalid APP installed.");
77 ESP_LOGW(TAG,
"Sensor reported APP start failed.");
81 ESP_LOGW(TAG,
"Unknown setup error!");