mirror of
https://github.com/esphome/esphome.git
synced 2025-03-15 07:08:20 +00:00
Refactor diesel heater BLE component: streamline configuration schemas and improve code readability
This commit is contained in:
parent
a7bddffad6
commit
50999e6492
@ -1,8 +1,6 @@
|
|||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
|
from esphome.components import ble_client, sensor
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
from esphome.components import ble_client
|
|
||||||
from esphome.components import sensor
|
|
||||||
|
|
||||||
from esphome.const import CONF_ID
|
from esphome.const import CONF_ID
|
||||||
|
|
||||||
CODEOWNERS = ["@warehog"]
|
CODEOWNERS = ["@warehog"]
|
||||||
@ -11,18 +9,17 @@ DEPENDENCIES = ["ble_client"]
|
|||||||
CONF_HEATER_ID = "diesel_heater_ble"
|
CONF_HEATER_ID = "diesel_heater_ble"
|
||||||
|
|
||||||
diesel_heater_ble_ns = cg.esphome_ns.namespace("diesel_heater_ble")
|
diesel_heater_ble_ns = cg.esphome_ns.namespace("diesel_heater_ble")
|
||||||
DieselHeaterBLE = diesel_heater_ble_ns.class_("DieselHeaterBLE", sensor.Sensor, cg.Component, ble_client.BLEClientNode)
|
DieselHeaterBLE = diesel_heater_ble_ns.class_(
|
||||||
|
"DieselHeaterBLE", sensor.Sensor, cg.Component, ble_client.BLEClientNode
|
||||||
|
)
|
||||||
|
|
||||||
CONFIG_SCHEMA = (
|
CONFIG_SCHEMA = (
|
||||||
cv.Schema(
|
cv.Schema({cv.GenerateID(): cv.declare_id(DieselHeaterBLE)})
|
||||||
{
|
|
||||||
cv.GenerateID(): cv.declare_id(DieselHeaterBLE)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.extend(cv.COMPONENT_SCHEMA)
|
.extend(cv.COMPONENT_SCHEMA)
|
||||||
.extend(ble_client.BLE_CLIENT_SCHEMA)
|
.extend(ble_client.BLE_CLIENT_SCHEMA)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
var = cg.new_Pvariable(config[CONF_ID])
|
var = cg.new_Pvariable(config[CONF_ID])
|
||||||
await cg.register_component(var, config)
|
await cg.register_component(var, config)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
import esphome.config_validation as cv
|
|
||||||
from esphome.components import button
|
from esphome.components import button
|
||||||
|
import esphome.config_validation as cv
|
||||||
|
|
||||||
from . import DieselHeaterBLE, CONF_HEATER_ID, diesel_heater_ble_ns
|
from . import CONF_HEATER_ID, DieselHeaterBLE, diesel_heater_ble_ns
|
||||||
|
|
||||||
CONF_LEVEL_UP_ID = "level_up"
|
CONF_LEVEL_UP_ID = "level_up"
|
||||||
CONF_LEVEL_DOWN_ID = "level_down"
|
CONF_LEVEL_DOWN_ID = "level_down"
|
||||||
@ -10,37 +10,39 @@ CONF_TEMP_UP_ID = "temp_up"
|
|||||||
CONF_TEMP_DOWN_ID = "temp_down"
|
CONF_TEMP_DOWN_ID = "temp_down"
|
||||||
|
|
||||||
|
|
||||||
CONFIG_SCHEMA = (
|
CONFIG_SCHEMA = cv.Schema(
|
||||||
cv.Schema(
|
{
|
||||||
{
|
cv.GenerateID(CONF_HEATER_ID): cv.use_id(DieselHeaterBLE),
|
||||||
cv.GenerateID(CONF_HEATER_ID): cv.use_id(DieselHeaterBLE),
|
cv.Optional(CONF_LEVEL_UP_ID): button.button_schema(
|
||||||
cv.Optional(CONF_LEVEL_UP_ID): button.button_schema(
|
diesel_heater_ble_ns.class_("LevelUpButton", button.Button),
|
||||||
diesel_heater_ble_ns.class_("LevelUpButton", button.Button),
|
icon="mdi:arrow-up",
|
||||||
icon="mdi:arrow-up",
|
),
|
||||||
),
|
cv.Optional(CONF_LEVEL_DOWN_ID): button.button_schema(
|
||||||
cv.Optional(CONF_LEVEL_DOWN_ID): button.button_schema(
|
diesel_heater_ble_ns.class_("LevelDownButton", button.Button),
|
||||||
diesel_heater_ble_ns.class_("LevelDownButton", button.Button),
|
icon="mdi:arrow-down",
|
||||||
icon="mdi:arrow-down",
|
),
|
||||||
),
|
cv.Optional(CONF_TEMP_UP_ID): button.button_schema(
|
||||||
cv.Optional(CONF_TEMP_UP_ID): button.button_schema(
|
diesel_heater_ble_ns.class_("TempUpButton", button.Button),
|
||||||
diesel_heater_ble_ns.class_("TempUpButton", button.Button),
|
icon="mdi:arrow-up",
|
||||||
icon="mdi:arrow-up",
|
),
|
||||||
),
|
cv.Optional(CONF_TEMP_DOWN_ID): button.button_schema(
|
||||||
cv.Optional(CONF_TEMP_DOWN_ID): button.button_schema(
|
diesel_heater_ble_ns.class_("TempDownButton", button.Button),
|
||||||
diesel_heater_ble_ns.class_("TempDownButton", button.Button),
|
icon="mdi:arrow-down",
|
||||||
icon="mdi:arrow-down",
|
),
|
||||||
),
|
}
|
||||||
}
|
).extend(cv.COMPONENT_SCHEMA)
|
||||||
)
|
|
||||||
.extend(cv.COMPONENT_SCHEMA)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
parent = await cg.get_variable(config[CONF_HEATER_ID])
|
parent = await cg.get_variable(config[CONF_HEATER_ID])
|
||||||
|
|
||||||
for var in [CONF_LEVEL_UP_ID, CONF_LEVEL_DOWN_ID, CONF_TEMP_UP_ID, CONF_TEMP_DOWN_ID]:
|
for var in [
|
||||||
|
CONF_LEVEL_UP_ID,
|
||||||
|
CONF_LEVEL_DOWN_ID,
|
||||||
|
CONF_TEMP_UP_ID,
|
||||||
|
CONF_TEMP_DOWN_ID,
|
||||||
|
]:
|
||||||
if conf := config.get(var):
|
if conf := config.get(var):
|
||||||
sw_var = await button.new_button(conf)
|
sw_var = await button.new_button(conf)
|
||||||
await cg.register_parented(sw_var, parent)
|
await cg.register_parented(sw_var, parent)
|
||||||
cg.add(getattr(parent, f"set_{var}_button")(sw_var))
|
cg.add(getattr(parent, f"set_{var}_button")(sw_var))
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
import esphome.config_validation as cv
|
|
||||||
from esphome.components import number
|
from esphome.components import number
|
||||||
from esphome.const import (
|
import esphome.config_validation as cv
|
||||||
CONF_TEMPERATURE
|
|
||||||
)
|
|
||||||
|
|
||||||
from . import DieselHeaterBLE, CONF_HEATER_ID, diesel_heater_ble_ns
|
from . import CONF_HEATER_ID, DieselHeaterBLE, diesel_heater_ble_ns
|
||||||
|
|
||||||
CODEOWNERS = ["@warehog"]
|
CODEOWNERS = ["@warehog"]
|
||||||
DEPENDENCIES = ["diesel_heater_ble"]
|
DEPENDENCIES = ["diesel_heater_ble"]
|
||||||
@ -17,16 +14,14 @@ PowerLevelNumber = diesel_heater_ble_ns.class_("PowerLevelNumber", number.Number
|
|||||||
CONF_SET_TEMP = "set_temp"
|
CONF_SET_TEMP = "set_temp"
|
||||||
SetTempNumber = diesel_heater_ble_ns.class_("SetTempNumber", number.Number)
|
SetTempNumber = diesel_heater_ble_ns.class_("SetTempNumber", number.Number)
|
||||||
|
|
||||||
CONFIG_SCHEMA = (
|
CONFIG_SCHEMA = cv.Schema(
|
||||||
cv.Schema(
|
{
|
||||||
{
|
cv.GenerateID(CONF_HEATER_ID): cv.use_id(DieselHeaterBLE),
|
||||||
cv.GenerateID(CONF_HEATER_ID): cv.use_id(DieselHeaterBLE),
|
cv.Optional(CONF_POWER_LEVEL): number.number_schema(PowerLevelNumber),
|
||||||
cv.Optional(CONF_POWER_LEVEL): number.number_schema(PowerLevelNumber),
|
cv.Optional(CONF_SET_TEMP): number.number_schema(SetTempNumber),
|
||||||
cv.Optional(CONF_SET_TEMP): number.number_schema(SetTempNumber),
|
}
|
||||||
}
|
).extend(cv.COMPONENT_SCHEMA)
|
||||||
)
|
|
||||||
.extend(cv.COMPONENT_SCHEMA)
|
|
||||||
)
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
parent = await cg.get_variable(config[CONF_HEATER_ID])
|
parent = await cg.get_variable(config[CONF_HEATER_ID])
|
||||||
|
@ -1,21 +1,18 @@
|
|||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
|
from esphome.components import ble_client, sensor
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
from esphome.components import ble_client
|
|
||||||
from esphome.components import sensor
|
|
||||||
from esphome.const import (
|
from esphome.const import (
|
||||||
CONF_ID,
|
DEVICE_CLASS_EMPTY,
|
||||||
UNIT_VOLT,
|
|
||||||
UNIT_CELSIUS,
|
|
||||||
UNIT_PERCENT,
|
|
||||||
UNIT_SECOND,
|
|
||||||
UNIT_METER,
|
|
||||||
UNIT_EMPTY,
|
|
||||||
DEVICE_CLASS_TEMPERATURE,
|
DEVICE_CLASS_TEMPERATURE,
|
||||||
STATE_CLASS_MEASUREMENT,
|
STATE_CLASS_MEASUREMENT,
|
||||||
DEVICE_CLASS_EMPTY
|
UNIT_CELSIUS,
|
||||||
|
UNIT_EMPTY,
|
||||||
|
UNIT_METER,
|
||||||
|
UNIT_SECOND,
|
||||||
|
UNIT_VOLT,
|
||||||
)
|
)
|
||||||
|
|
||||||
from . import DieselHeaterBLE, CONF_HEATER_ID
|
from . import CONF_HEATER_ID, DieselHeaterBLE
|
||||||
|
|
||||||
CODEOWNERS = ["@warehog"]
|
CODEOWNERS = ["@warehog"]
|
||||||
DEPENDENCIES = ["diesel_heater_ble"]
|
DEPENDENCIES = ["diesel_heater_ble"]
|
||||||
@ -45,146 +42,144 @@ CONF_TEMP_UNIT = "temp_unit"
|
|||||||
CONF_ALTITUDE_UNIT = "altitude_unit"
|
CONF_ALTITUDE_UNIT = "altitude_unit"
|
||||||
CONF_AUTOMATIC_HEATING = "automatic_heating"
|
CONF_AUTOMATIC_HEATING = "automatic_heating"
|
||||||
|
|
||||||
CONFIG_SCHEMA = (
|
CONFIG_SCHEMA = cv.Schema(
|
||||||
cv.Schema(
|
{
|
||||||
{
|
cv.GenerateID(CONF_HEATER_ID): cv.use_id(DieselHeaterBLE),
|
||||||
cv.GenerateID(CONF_HEATER_ID): cv.use_id(DieselHeaterBLE),
|
cv.Optional(CONF_RUNNING_STATE): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_RUNNING_STATE): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=1,
|
||||||
accuracy_decimals=1,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_ERROR_CODE): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_ERROR_CODE): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_RUNNING_STEP): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_RUNNING_STEP): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_ALTITUDE): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_ALTITUDE): sensor.sensor_schema(
|
unit_of_measurement=UNIT_METER,
|
||||||
unit_of_measurement=UNIT_METER,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_RUNNING_MODE): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_RUNNING_MODE): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_SET_LEVEL): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_SET_LEVEL): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_SET_TEMP): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_SET_TEMP): sensor.sensor_schema(
|
unit_of_measurement=UNIT_CELSIUS,
|
||||||
unit_of_measurement=UNIT_CELSIUS,
|
accuracy_decimals=1,
|
||||||
accuracy_decimals=1,
|
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT
|
),
|
||||||
),
|
cv.Optional(CONF_SUPPLY_VOLTAGE): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_SUPPLY_VOLTAGE): sensor.sensor_schema(
|
unit_of_measurement=UNIT_VOLT,
|
||||||
unit_of_measurement=UNIT_VOLT,
|
accuracy_decimals=1,
|
||||||
accuracy_decimals=1,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_CASE_TEMP): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_CASE_TEMP): sensor.sensor_schema(
|
unit_of_measurement=UNIT_CELSIUS,
|
||||||
unit_of_measurement=UNIT_CELSIUS,
|
accuracy_decimals=1,
|
||||||
accuracy_decimals=1,
|
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT
|
),
|
||||||
),
|
cv.Optional(CONF_CAB_TEMP): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_CAB_TEMP): sensor.sensor_schema(
|
unit_of_measurement=UNIT_CELSIUS,
|
||||||
unit_of_measurement=UNIT_CELSIUS,
|
accuracy_decimals=1,
|
||||||
accuracy_decimals=1,
|
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_START_TIME): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_START_TIME): sensor.sensor_schema(
|
unit_of_measurement=UNIT_SECOND,
|
||||||
unit_of_measurement=UNIT_SECOND,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_AUTO_TIME): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_AUTO_TIME): sensor.sensor_schema(
|
unit_of_measurement=UNIT_SECOND,
|
||||||
unit_of_measurement=UNIT_SECOND,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_RUN_TIME): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_RUN_TIME): sensor.sensor_schema(
|
unit_of_measurement=UNIT_SECOND,
|
||||||
unit_of_measurement=UNIT_SECOND,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_IS_AUTO): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_IS_AUTO): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_LANGUAGE): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_LANGUAGE): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_TEMP_OFFSET): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_TEMP_OFFSET): sensor.sensor_schema(
|
unit_of_measurement=UNIT_CELSIUS,
|
||||||
unit_of_measurement=UNIT_CELSIUS,
|
accuracy_decimals=1,
|
||||||
accuracy_decimals=1,
|
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT
|
),
|
||||||
),
|
cv.Optional(CONF_TANK_VOLUME): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_TANK_VOLUME): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_OIL_PUMP_TYPE): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_OIL_PUMP_TYPE): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_RF433_ON_OFF): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_RF433_ON_OFF): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_TEMP_UNIT): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_TEMP_UNIT): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_ALTITUDE_UNIT): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_ALTITUDE_UNIT): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
),
|
cv.Optional(CONF_AUTOMATIC_HEATING): sensor.sensor_schema(
|
||||||
cv.Optional(CONF_AUTOMATIC_HEATING): sensor.sensor_schema(
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
accuracy_decimals=0,
|
||||||
accuracy_decimals=0,
|
device_class=DEVICE_CLASS_EMPTY,
|
||||||
device_class=DEVICE_CLASS_EMPTY,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
),
|
||||||
)
|
}
|
||||||
}
|
).extend(ble_client.BLE_CLIENT_SCHEMA)
|
||||||
)
|
|
||||||
.extend(ble_client.BLE_CLIENT_SCHEMA)
|
|
||||||
)
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
var = await cg.get_variable(config[CONF_HEATER_ID])
|
var = await cg.get_variable(config[CONF_HEATER_ID])
|
||||||
@ -198,7 +193,7 @@ async def to_code(config):
|
|||||||
CONF_SET_LEVEL,
|
CONF_SET_LEVEL,
|
||||||
CONF_SET_TEMP,
|
CONF_SET_TEMP,
|
||||||
CONF_SUPPLY_VOLTAGE,
|
CONF_SUPPLY_VOLTAGE,
|
||||||
CONF_CASE_TEMP,
|
CONF_CASE_TEMP,
|
||||||
CONF_CAB_TEMP,
|
CONF_CAB_TEMP,
|
||||||
CONF_START_TIME,
|
CONF_START_TIME,
|
||||||
CONF_AUTO_TIME,
|
CONF_AUTO_TIME,
|
||||||
@ -211,7 +206,8 @@ async def to_code(config):
|
|||||||
CONF_RF433_ON_OFF,
|
CONF_RF433_ON_OFF,
|
||||||
CONF_TEMP_UNIT,
|
CONF_TEMP_UNIT,
|
||||||
CONF_ALTITUDE_UNIT,
|
CONF_ALTITUDE_UNIT,
|
||||||
CONF_AUTOMATIC_HEATING]:
|
CONF_AUTOMATIC_HEATING,
|
||||||
|
]:
|
||||||
if sensor_config := config.get(sensor_name):
|
if sensor_config := config.get(sensor_name):
|
||||||
sens = await sensor.new_sensor(sensor_config)
|
sens = await sensor.new_sensor(sensor_config)
|
||||||
cg.add(getattr(var, f"set_{sensor_name}")(sens))
|
cg.add(getattr(var, f"set_{sensor_name}")(sens))
|
||||||
|
@ -1,29 +1,18 @@
|
|||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
import esphome.config_validation as cv
|
|
||||||
from esphome.components import switch
|
from esphome.components import switch
|
||||||
|
import esphome.config_validation as cv
|
||||||
|
|
||||||
from . import DieselHeaterBLE, CONF_HEATER_ID, diesel_heater_ble_ns
|
from . import CONF_HEATER_ID, DieselHeaterBLE, diesel_heater_ble_ns
|
||||||
|
|
||||||
CONFIG_SCHEMA = (
|
CONFIG_SCHEMA = cv.Schema(
|
||||||
cv.Schema(
|
{
|
||||||
{
|
cv.GenerateID(CONF_HEATER_ID): cv.use_id(DieselHeaterBLE),
|
||||||
cv.GenerateID(CONF_HEATER_ID): cv.use_id(DieselHeaterBLE),
|
cv.Optional("power"): switch.switch_schema(
|
||||||
cv.Optional("power"): switch.switch_schema(
|
diesel_heater_ble_ns.class_("PowerSwitch", switch.Switch),
|
||||||
diesel_heater_ble_ns.class_("PowerSwitch", switch.Switch),
|
icon="mdi:power",
|
||||||
icon="mdi:power",
|
),
|
||||||
),
|
}
|
||||||
# cv.Optional("mode"): switch.switch_schema(
|
).extend(cv.COMPONENT_SCHEMA)
|
||||||
# heater_ns.class_("ModeSwitch", switch.Switch),
|
|
||||||
# icon="mdi:power",
|
|
||||||
# ),
|
|
||||||
# cv.Optional("alpine"): switch.switch_schema(
|
|
||||||
# heater_ns.class_("AlpineSwitch", switch.Switch),
|
|
||||||
# icon="mdi:power",
|
|
||||||
# ),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.extend(cv.COMPONENT_SCHEMA)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
@ -33,4 +22,4 @@ async def to_code(config):
|
|||||||
if conf := config.get(switch_type):
|
if conf := config.get(switch_type):
|
||||||
sw_var = await switch.new_switch(conf)
|
sw_var = await switch.new_switch(conf)
|
||||||
await cg.register_parented(sw_var, parent)
|
await cg.register_parented(sw_var, parent)
|
||||||
cg.add(getattr(parent, f"set_{switch_type}_switch")(sw_var))
|
cg.add(getattr(parent, f"set_{switch_type}_switch")(sw_var))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user