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,
"Running setup");
38 if (!(this->
write_bytes(GROVE_GAS_MC_V2_HEAT_ON, {}))) {
44void GroveGasMultichannelV2Component::update() {
46 if (!this->
read_sensor_(GROVE_GAS_MC_V2_READ_GM102B, this->nitrogen_dioxide_sensor_))
48 if (!this->
read_sensor_(GROVE_GAS_MC_V2_READ_GM302B, this->ethanol_sensor_))
50 if (!this->
read_sensor_(GROVE_GAS_MC_V2_READ_GM502B, this->tvoc_sensor_))
52 if (!this->
read_sensor_(GROVE_GAS_MC_V2_READ_GM702B, this->carbon_monoxide_sensor_))
58void GroveGasMultichannelV2Component::dump_config() {
59 ESP_LOGCONFIG(TAG,
"Grove Multichannel Gas Sensor V2");
61 LOG_UPDATE_INTERVAL(this)
62 LOG_SENSOR(" ", "Nitrogen Dioxide", this->nitrogen_dioxide_sensor_)
63 LOG_SENSOR(" ", "Ethanol", this->ethanol_sensor_)
64 LOG_SENSOR(" ", "Carbon Monoxide", this->carbon_monoxide_sensor_)
65 LOG_SENSOR(" ", "TVOC", this->tvoc_sensor_)
68 switch (this->error_code_) {
70 ESP_LOGW(TAG, ESP_LOG_MSG_COMM_FAIL);
73 ESP_LOGW(TAG,
"Sensor reported invalid APP installed");
76 ESP_LOGW(TAG,
"Sensor reported APP start failed");
80 ESP_LOGW(TAG,
"Unknown setup error");