1
0
mirror of https://github.com/esphome/esphome.git synced 2025-03-13 14:18:14 +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)
MSA_RESOLUTIONS = {
RESOLUTIONS_MSA301 = {
14: MSAResolution.RES_14BIT,
12: MSAResolution.RES_12BIT,
10: MSAResolution.RES_10BIT,
8: MSAResolution.RES_8BIT,
}
RESOLUTIONS_MSA311 = {
12: MSAResolution.RES_12BIT,
}
_COMMON_SCHEMA = cv.Schema(
{
cv.GenerateID(): cv.declare_id(MSA3xxComponent),
@ -99,14 +103,12 @@ CONFIG_SCHEMA = cv.typed_schema(
{
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)),
MODEL_MSA311: _COMMON_SCHEMA.extend(
{
cv.Optional(CONF_RESOLUTION): cv.invalid(
"MSA311 doesn't support different resolutions"
),
cv.Optional(CONF_RESOLUTION, default=12): cv.enum(RESOLUTIONS_MSA311),
}
).extend(i2c.i2c_device_schema(0x62)),
},
@ -114,21 +116,23 @@ CONFIG_SCHEMA = cv.typed_schema(
enum=MSA_MODELS,
)
MSA_SENSOR_SCHEMA = cv.Schema(
{
cv.GenerateID(CONF_MSA3XX_ID): cv.use_id(MSA3xxComponent),
}
)
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)
if config[CONF_TYPE] == MODEL_MSA311:
config[CONF_RESOLUTION] = 12
cg.add(var.set_model(config[CONF_TYPE]))
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:
transform = config[CONF_TRANSFORM]
if transform := config.get(CONF_TRANSFORM):
cg.add(
var.set_transform(
transform[CONF_MIRROR_X],
@ -138,8 +142,7 @@ async def to_code(config):
)
)
if CONF_CALIBRATION in config:
calibration_config = config[CONF_CALIBRATION]
if calibration_config := config.get(CONF_CALIBRATION):
cg.add(
var.set_offset(
calibration_config[CONF_OFFSET_X],

View File

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

View File

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

View File

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