1
0
mirror of https://github.com/esphome/esphome.git synced 2025-03-15 15:18:16 +00:00

update after review

This commit is contained in:
Anton Viktorov 2025-02-23 18:09:41 +01:00
parent c701f50793
commit b991f910b2
4 changed files with 24 additions and 31 deletions

View File

@ -54,13 +54,17 @@ MSA_RANGES = {
} }
MSAResolution = msa3xx_ns.enum("Resolution", True) MSAResolution = msa3xx_ns.enum("Resolution", True)
MSA_RESOLUTIONS = { RESOLUTIONS_MSA301 = {
14: MSAResolution.RES_14BIT, 14: MSAResolution.RES_14BIT,
12: MSAResolution.RES_12BIT, 12: MSAResolution.RES_12BIT,
10: MSAResolution.RES_10BIT, 10: MSAResolution.RES_10BIT,
8: MSAResolution.RES_8BIT, 8: MSAResolution.RES_8BIT,
} }
RESOLUTIONS_MSA311 = {
12: MSAResolution.RES_12BIT,
}
_COMMON_SCHEMA = cv.Schema( _COMMON_SCHEMA = cv.Schema(
{ {
cv.GenerateID(): cv.declare_id(MSA3xxComponent), cv.GenerateID(): cv.declare_id(MSA3xxComponent),
@ -99,14 +103,12 @@ CONFIG_SCHEMA = cv.typed_schema(
{ {
MODEL_MSA301: _COMMON_SCHEMA.extend( MODEL_MSA301: _COMMON_SCHEMA.extend(
{ {
cv.Optional(CONF_RESOLUTION, default=14): cv.enum(MSA_RESOLUTIONS), cv.Optional(CONF_RESOLUTION, default=14): cv.enum(RESOLUTIONS_MSA301),
} }
).extend(i2c.i2c_device_schema(0x26)), ).extend(i2c.i2c_device_schema(0x26)),
MODEL_MSA311: _COMMON_SCHEMA.extend( MODEL_MSA311: _COMMON_SCHEMA.extend(
{ {
cv.Optional(CONF_RESOLUTION): cv.invalid( cv.Optional(CONF_RESOLUTION, default=12): cv.enum(RESOLUTIONS_MSA311),
"MSA311 doesn't support different resolutions"
),
} }
).extend(i2c.i2c_device_schema(0x62)), ).extend(i2c.i2c_device_schema(0x62)),
}, },
@ -114,21 +116,23 @@ CONFIG_SCHEMA = cv.typed_schema(
enum=MSA_MODELS, enum=MSA_MODELS,
) )
MSA_SENSOR_SCHEMA = cv.Schema(
{
cv.GenerateID(CONF_MSA3XX_ID): cv.use_id(MSA3xxComponent),
}
)
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)
await i2c.register_i2c_device(var, config) await i2c.register_i2c_device(var, config)
if config[CONF_TYPE] == MODEL_MSA311:
config[CONF_RESOLUTION] = 12
cg.add(var.set_model(config[CONF_TYPE])) cg.add(var.set_model(config[CONF_TYPE]))
cg.add(var.set_range(MSA_RANGES[config[CONF_RANGE]])) cg.add(var.set_range(MSA_RANGES[config[CONF_RANGE]]))
cg.add(var.set_resolution(MSA_RESOLUTIONS[config[CONF_RESOLUTION]])) cg.add(var.set_resolution(RESOLUTIONS_MSA301[config[CONF_RESOLUTION]]))
if CONF_TRANSFORM in config: if transform := config.get(CONF_TRANSFORM):
transform = config[CONF_TRANSFORM]
cg.add( cg.add(
var.set_transform( var.set_transform(
transform[CONF_MIRROR_X], transform[CONF_MIRROR_X],
@ -138,8 +142,7 @@ async def to_code(config):
) )
) )
if CONF_CALIBRATION in config: if calibration_config := config.get(CONF_CALIBRATION):
calibration_config = config[CONF_CALIBRATION]
cg.add( cg.add(
var.set_offset( var.set_offset(
calibration_config[CONF_OFFSET_X], calibration_config[CONF_OFFSET_X],

View File

@ -3,7 +3,7 @@ from esphome.components import binary_sensor
import esphome.config_validation as cv import esphome.config_validation as cv
from esphome.const import CONF_ACTIVE, CONF_NAME, DEVICE_CLASS_VIBRATION, ICON_VIBRATE from esphome.const import CONF_ACTIVE, CONF_NAME, DEVICE_CLASS_VIBRATION, ICON_VIBRATE
from . import CONF_MSA3XX_ID, MSA3xxComponent from . import CONF_MSA3XX_ID, MSA_SENSOR_SCHEMA
CODEOWNERS = ["@latonita"] CODEOWNERS = ["@latonita"]
DEPENDENCIES = ["msa3xx"] DEPENDENCIES = ["msa3xx"]
@ -17,11 +17,7 @@ ICON_DOUBLE_TAP = "mdi:gesture-double-tap"
EVENT_SENSORS = (CONF_TAP, CONF_DOUBLE_TAP, CONF_ACTIVE) EVENT_SENSORS = (CONF_TAP, CONF_DOUBLE_TAP, CONF_ACTIVE)
ICONS = (ICON_TAP, ICON_DOUBLE_TAP, ICON_VIBRATE) ICONS = (ICON_TAP, ICON_DOUBLE_TAP, ICON_VIBRATE)
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = MSA_SENSOR_SCHEMA.extend(
{
cv.GenerateID(CONF_MSA3XX_ID): cv.use_id(MSA3xxComponent),
}
).extend(
{ {
cv.Optional(event): cv.maybe_simple_value( cv.Optional(event): cv.maybe_simple_value(
binary_sensor.binary_sensor_schema( binary_sensor.binary_sensor_schema(

View File

@ -11,7 +11,7 @@ from esphome.const import (
UNIT_METER_PER_SECOND_SQUARED, UNIT_METER_PER_SECOND_SQUARED,
) )
from . import CONF_MSA3XX_ID, MSA3xxComponent from . import CONF_MSA3XX_ID, MSA_SENSOR_SCHEMA
CODEOWNERS = ["@latonita"] CODEOWNERS = ["@latonita"]
DEPENDENCIES = ["msa3xx"] DEPENDENCIES = ["msa3xx"]
@ -29,11 +29,9 @@ accel_schema = cv.maybe_simple_value(
) )
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = MSA_SENSOR_SCHEMA.extend(
{ {cv.Optional(sensor): accel_schema for sensor in ACCELERATION_SENSORS}
cv.GenerateID(CONF_MSA3XX_ID): cv.use_id(MSA3xxComponent), )
}
).extend({cv.Optional(sensor): accel_schema for sensor in ACCELERATION_SENSORS})
async def to_code(config): async def to_code(config):

View File

@ -3,7 +3,7 @@ from esphome.components import text_sensor
import esphome.config_validation as cv import esphome.config_validation as cv
from esphome.const import CONF_NAME from esphome.const import CONF_NAME
from . import CONF_MSA3XX_ID, MSA3xxComponent from . import CONF_MSA3XX_ID, MSA_SENSOR_SCHEMA
CODEOWNERS = ["@latonita"] CODEOWNERS = ["@latonita"]
DEPENDENCIES = ["msa3xx"] DEPENDENCIES = ["msa3xx"]
@ -14,11 +14,7 @@ ICON_SCREEN_ROTATION = "mdi:screen-rotation"
ORIENTATION_SENSORS = (CONF_ORIENTATION_XY, CONF_ORIENTATION_Z) ORIENTATION_SENSORS = (CONF_ORIENTATION_XY, CONF_ORIENTATION_Z)
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = MSA_SENSOR_SCHEMA.extend(
{
cv.GenerateID(CONF_MSA3XX_ID): cv.use_id(MSA3xxComponent),
}
).extend(
{ {
cv.Optional(sensor): cv.maybe_simple_value( cv.Optional(sensor): cv.maybe_simple_value(
text_sensor.text_sensor_schema(icon=ICON_SCREEN_ROTATION), text_sensor.text_sensor_schema(icon=ICON_SCREEN_ROTATION),