Added Raspiaudio Muse Luxe again as a sendspin player.
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import esphome.codegen as cg
|
||||
import esphome.config_validation as cv
|
||||
from esphome.components import binary_sensor, i2c, sensor
|
||||
from esphome.const import CONF_ID, ENTITY_CATEGORY_DIAGNOSTIC
|
||||
|
||||
DEPENDENCIES = ["i2c"]
|
||||
AUTO_LOAD = ["sensor", "binary_sensor"]
|
||||
|
||||
ns = cg.esphome_ns.namespace("luxe_ip5306")
|
||||
LuxeIP5306 = ns.class_("LuxeIP5306", cg.PollingComponent, i2c.I2CDevice)
|
||||
|
||||
CONFIG_SCHEMA = (
|
||||
cv.Schema(
|
||||
{
|
||||
cv.GenerateID(): cv.declare_id(LuxeIP5306),
|
||||
cv.Required("available"): binary_sensor.binary_sensor_schema(
|
||||
device_class="connectivity", entity_category=ENTITY_CATEGORY_DIAGNOSTIC
|
||||
),
|
||||
cv.Required("charging"): binary_sensor.binary_sensor_schema(
|
||||
device_class="battery_charging"
|
||||
),
|
||||
cv.Required("full"): binary_sensor.binary_sensor_schema(),
|
||||
cv.Required("charge_allowed"): binary_sensor.binary_sensor_schema(
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC
|
||||
),
|
||||
cv.Required("level"): sensor.sensor_schema(
|
||||
unit_of_measurement="%", accuracy_decimals=0, device_class="battery",
|
||||
state_class="measurement", entity_category=ENTITY_CATEGORY_DIAGNOSTIC
|
||||
),
|
||||
cv.Required("current_limit"): sensor.sensor_schema(
|
||||
unit_of_measurement="mA", accuracy_decimals=0,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC
|
||||
),
|
||||
}
|
||||
)
|
||||
.extend(cv.polling_component_schema("10s"))
|
||||
.extend(i2c.i2c_device_schema(0x75))
|
||||
)
|
||||
|
||||
|
||||
async def to_code(config):
|
||||
var = cg.new_Pvariable(config[CONF_ID])
|
||||
await cg.register_component(var, config)
|
||||
await i2c.register_i2c_device(var, config)
|
||||
for key in ("available", "charging", "full", "charge_allowed"):
|
||||
entity = await binary_sensor.new_binary_sensor(config[key])
|
||||
cg.add(getattr(var, f"set_{key}")(entity))
|
||||
for key in ("level", "current_limit"):
|
||||
entity = await sensor.new_sensor(config[key])
|
||||
cg.add(getattr(var, f"set_{key}")(entity))
|
||||
Reference in New Issue
Block a user