mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-06-13 16:13:32 +02:00
hlw8012: fix constants for BL0937 (#1973)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
@@ -11,6 +11,7 @@ from esphome.const import (
|
||||
CONF_POWER,
|
||||
CONF_ENERGY,
|
||||
CONF_SEL_PIN,
|
||||
CONF_MODEL,
|
||||
CONF_VOLTAGE,
|
||||
CONF_VOLTAGE_DIVIDER,
|
||||
DEVICE_CLASS_CURRENT,
|
||||
@@ -31,11 +32,19 @@ AUTO_LOAD = ["pulse_counter"]
|
||||
hlw8012_ns = cg.esphome_ns.namespace("hlw8012")
|
||||
HLW8012Component = hlw8012_ns.class_("HLW8012Component", cg.PollingComponent)
|
||||
HLW8012InitialMode = hlw8012_ns.enum("HLW8012InitialMode")
|
||||
HLW8012SensorModels = hlw8012_ns.enum("HLW8012SensorModels")
|
||||
|
||||
INITIAL_MODES = {
|
||||
CONF_CURRENT: HLW8012InitialMode.HLW8012_INITIAL_MODE_CURRENT,
|
||||
CONF_VOLTAGE: HLW8012InitialMode.HLW8012_INITIAL_MODE_VOLTAGE,
|
||||
}
|
||||
|
||||
MODELS = {
|
||||
"HLW8012": HLW8012SensorModels.HLW8012_SENSOR_MODEL_HLW8012,
|
||||
"CSE7759": HLW8012SensorModels.HLW8012_SENSOR_MODEL_CSE7759,
|
||||
"BL0937": HLW8012SensorModels.HLW8012_SENSOR_MODEL_BL0937,
|
||||
}
|
||||
|
||||
CONF_CF1_PIN = "cf1_pin"
|
||||
CONF_CF_PIN = "cf_pin"
|
||||
CONFIG_SCHEMA = cv.Schema(
|
||||
@@ -62,6 +71,7 @@ CONFIG_SCHEMA = cv.Schema(
|
||||
),
|
||||
cv.Optional(CONF_CURRENT_RESISTOR, default=0.001): cv.resistance,
|
||||
cv.Optional(CONF_VOLTAGE_DIVIDER, default=2351): cv.positive_float,
|
||||
cv.Optional(CONF_MODEL, default="HLW8012"): cv.enum(MODELS, upper=True),
|
||||
cv.Optional(CONF_CHANGE_MODE_EVERY, default=8): cv.All(
|
||||
cv.uint32_t, cv.Range(min=1)
|
||||
),
|
||||
@@ -99,3 +109,4 @@ async def to_code(config):
|
||||
cg.add(var.set_voltage_divider(config[CONF_VOLTAGE_DIVIDER]))
|
||||
cg.add(var.set_change_mode_every(config[CONF_CHANGE_MODE_EVERY]))
|
||||
cg.add(var.set_initial_mode(INITIAL_MODES[config[CONF_INITIAL_MODE]]))
|
||||
cg.add(var.set_sensor_model(config[CONF_MODEL]))
|
||||
|
||||
Reference in New Issue
Block a user