Readds the battery level for xiaomi_hhccjcy01 (#1288)

This commit is contained in:
Jesse Hills 2020-09-20 14:37:34 +12:00 committed by GitHub
parent b5df50893b
commit 99598d87a9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 2 deletions

View file

@ -1,8 +1,8 @@
import esphome.codegen as cg import esphome.codegen as cg
import esphome.config_validation as cv import esphome.config_validation as cv
from esphome.components import sensor, esp32_ble_tracker from esphome.components import sensor, esp32_ble_tracker
from esphome.const import CONF_MAC_ADDRESS, CONF_TEMPERATURE, \ from esphome.const import CONF_BATTERY_LEVEL, CONF_MAC_ADDRESS, CONF_TEMPERATURE, \
UNIT_CELSIUS, ICON_THERMOMETER, UNIT_PERCENT, ICON_WATER_PERCENT, CONF_ID, \ UNIT_CELSIUS, ICON_THERMOMETER, UNIT_PERCENT, ICON_WATER_PERCENT, ICON_BATTERY, CONF_ID, \
CONF_MOISTURE, CONF_ILLUMINANCE, ICON_BRIGHTNESS_5, UNIT_LUX, CONF_CONDUCTIVITY, \ CONF_MOISTURE, CONF_ILLUMINANCE, ICON_BRIGHTNESS_5, UNIT_LUX, CONF_CONDUCTIVITY, \
UNIT_MICROSIEMENS_PER_CENTIMETER, ICON_FLOWER UNIT_MICROSIEMENS_PER_CENTIMETER, ICON_FLOWER
@ -19,6 +19,7 @@ CONFIG_SCHEMA = cv.Schema({
cv.Optional(CONF_TEMPERATURE): sensor.sensor_schema(UNIT_CELSIUS, ICON_THERMOMETER, 1), cv.Optional(CONF_TEMPERATURE): sensor.sensor_schema(UNIT_CELSIUS, ICON_THERMOMETER, 1),
cv.Optional(CONF_MOISTURE): sensor.sensor_schema(UNIT_PERCENT, ICON_WATER_PERCENT, 0), cv.Optional(CONF_MOISTURE): sensor.sensor_schema(UNIT_PERCENT, ICON_WATER_PERCENT, 0),
cv.Optional(CONF_ILLUMINANCE): sensor.sensor_schema(UNIT_LUX, ICON_BRIGHTNESS_5, 0), cv.Optional(CONF_ILLUMINANCE): sensor.sensor_schema(UNIT_LUX, ICON_BRIGHTNESS_5, 0),
cv.Optional(CONF_BATTERY_LEVEL): sensor.sensor_schema(UNIT_PERCENT, ICON_BATTERY, 0),
cv.Optional(CONF_CONDUCTIVITY): cv.Optional(CONF_CONDUCTIVITY):
sensor.sensor_schema(UNIT_MICROSIEMENS_PER_CENTIMETER, ICON_FLOWER, 0), sensor.sensor_schema(UNIT_MICROSIEMENS_PER_CENTIMETER, ICON_FLOWER, 0),
}).extend(esp32_ble_tracker.ESP_BLE_DEVICE_SCHEMA).extend(cv.COMPONENT_SCHEMA) }).extend(esp32_ble_tracker.ESP_BLE_DEVICE_SCHEMA).extend(cv.COMPONENT_SCHEMA)
@ -43,3 +44,6 @@ def to_code(config):
if CONF_CONDUCTIVITY in config: if CONF_CONDUCTIVITY in config:
sens = yield sensor.new_sensor(config[CONF_CONDUCTIVITY]) sens = yield sensor.new_sensor(config[CONF_CONDUCTIVITY])
cg.add(var.set_conductivity(sens)) cg.add(var.set_conductivity(sens))
if CONF_BATTERY_LEVEL in config:
sens = yield sensor.new_sensor(config[CONF_BATTERY_LEVEL])
cg.add(var.set_battery_level(sens))

View file

@ -14,6 +14,7 @@ void XiaomiHHCCJCY01::dump_config() {
LOG_SENSOR(" ", "Moisture", this->moisture_); LOG_SENSOR(" ", "Moisture", this->moisture_);
LOG_SENSOR(" ", "Conductivity", this->conductivity_); LOG_SENSOR(" ", "Conductivity", this->conductivity_);
LOG_SENSOR(" ", "Illuminance", this->illuminance_); LOG_SENSOR(" ", "Illuminance", this->illuminance_);
LOG_SENSOR(" ", "Battery Level", this->battery_level_);
} }
bool XiaomiHHCCJCY01::parse_device(const esp32_ble_tracker::ESPBTDevice &device) { bool XiaomiHHCCJCY01::parse_device(const esp32_ble_tracker::ESPBTDevice &device) {
@ -50,6 +51,8 @@ bool XiaomiHHCCJCY01::parse_device(const esp32_ble_tracker::ESPBTDevice &device)
this->conductivity_->publish_state(*res->conductivity); this->conductivity_->publish_state(*res->conductivity);
if (res->illuminance.has_value() && this->illuminance_ != nullptr) if (res->illuminance.has_value() && this->illuminance_ != nullptr)
this->illuminance_->publish_state(*res->illuminance); this->illuminance_->publish_state(*res->illuminance);
if (res->battery_level.has_value() && this->battery_level_ != nullptr)
this->battery_level_->publish_state(*res->battery_level);
success = true; success = true;
} }

View file

@ -22,6 +22,7 @@ class XiaomiHHCCJCY01 : public Component, public esp32_ble_tracker::ESPBTDeviceL
void set_moisture(sensor::Sensor *moisture) { moisture_ = moisture; } void set_moisture(sensor::Sensor *moisture) { moisture_ = moisture; }
void set_conductivity(sensor::Sensor *conductivity) { conductivity_ = conductivity; } void set_conductivity(sensor::Sensor *conductivity) { conductivity_ = conductivity; }
void set_illuminance(sensor::Sensor *illuminance) { illuminance_ = illuminance; } void set_illuminance(sensor::Sensor *illuminance) { illuminance_ = illuminance; }
void set_battery_level(sensor::Sensor *battery_level) { battery_level_ = battery_level; }
protected: protected:
uint64_t address_; uint64_t address_;
@ -29,6 +30,7 @@ class XiaomiHHCCJCY01 : public Component, public esp32_ble_tracker::ESPBTDeviceL
sensor::Sensor *moisture_{nullptr}; sensor::Sensor *moisture_{nullptr};
sensor::Sensor *conductivity_{nullptr}; sensor::Sensor *conductivity_{nullptr};
sensor::Sensor *illuminance_{nullptr}; sensor::Sensor *illuminance_{nullptr};
sensor::Sensor *battery_level_{nullptr};
}; };
} // namespace xiaomi_hhccjcy01 } // namespace xiaomi_hhccjcy01

View file

@ -101,6 +101,8 @@ sensor:
name: "Xiaomi HHCCJCY01 Illuminance" name: "Xiaomi HHCCJCY01 Illuminance"
conductivity: conductivity:
name: "Xiaomi HHCCJCY01 Soil Conductivity" name: "Xiaomi HHCCJCY01 Soil Conductivity"
battery_level:
name: "Xiaomi HHCCJCY01 Battery Level"
- platform: xiaomi_lywsdcgq - platform: xiaomi_lywsdcgq
mac_address: 7A:80:8E:19:36:BA mac_address: 7A:80:8E:19:36:BA
temperature: temperature: