Compare commits

..

1 Commits

Author SHA1 Message Date
Beat bfe20af6c8
Merge 21d490cb77 into 5846d3bf6b 2024-12-16 20:02:36 -05:00
3 changed files with 40 additions and 69 deletions

View File

@ -8,7 +8,7 @@ repos:
- id: end-of-file-fixer - id: end-of-file-fixer
- id: check-added-large-files - id: check-added-large-files
- repo: https://github.com/pre-commit/mirrors-clang-format - repo: https://github.com/pre-commit/mirrors-clang-format
rev: v19.1.5 rev: v19.1.2
hooks: hooks:
- id: clang-format - id: clang-format
types_or: types_or:
@ -16,11 +16,3 @@ repos:
- "c" - "c"
- "cuda" - "cuda"
args: [-style=Webkit, -i] args: [-style=Webkit, -i]
- repo: https://github.com/PyCQA/isort
rev: 5.13.2
hooks:
- id: isort
- repo: https://github.com/psf/black
rev: 24.10.0
hooks:
- id: black

View File

@ -2,8 +2,8 @@ import esphome.codegen as cg
import esphome.config_validation as cv import esphome.config_validation as cv
import voluptuous as vol import voluptuous as vol
from esphome import automation, pins from esphome import automation, pins
from esphome.components import binary_sensor
from esphome.const import CONF_ID, CONF_TRIGGER_ID from esphome.const import CONF_ID, CONF_TRIGGER_ID
from esphome.components import binary_sensor
DEPENDENCIES = ["preferences"] DEPENDENCIES = ["preferences"]
MULTI_CONF = True MULTI_CONF = True
@ -44,27 +44,15 @@ CONF_DRY_CONTACT_OPEN_SENSOR = "dry_contact_open_sensor"
CONF_DRY_CONTACT_CLOSE_SENSOR = "dry_contact_close_sensor" CONF_DRY_CONTACT_CLOSE_SENSOR = "dry_contact_close_sensor"
CONF_DRY_CONTACT_SENSOR_GROUP = "dry_contact_sensor_group" CONF_DRY_CONTACT_SENSOR_GROUP = "dry_contact_sensor_group"
def validate_protocol(config): def validate_protocol(config):
if config.get(CONF_PROTOCOL, None) == PROTOCOL_DRYCONTACT and ( if config.get(CONF_PROTOCOL, None) == PROTOCOL_DRYCONTACT and (CONF_DRY_CONTACT_CLOSE_SENSOR not in config or CONF_DRY_CONTACT_OPEN_SENSOR not in config):
CONF_DRY_CONTACT_CLOSE_SENSOR not in config raise cv.Invalid("dry_contact_close_sensor and dry_contact_open_sensor are required when using protocol drycontact")
or CONF_DRY_CONTACT_OPEN_SENSOR not in config if config.get(CONF_PROTOCOL, None) != PROTOCOL_DRYCONTACT and (CONF_DRY_CONTACT_CLOSE_SENSOR in config or CONF_DRY_CONTACT_OPEN_SENSOR in config):
): raise cv.Invalid("dry_contact_close_sensor and dry_contact_open_sensor are only valid when using protocol drycontact")
raise cv.Invalid( # if config.get(CONF_PROTOCOL, None) == PROTOCOL_DRYCONTACT and CONF_DRY_CONTACT_OPEN_SENSOR not in config:
"dry_contact_close_sensor and dry_contact_open_sensor are required when using protocol drycontact" # raise cv.Invalid("dry_contact_open_sensor is required when using protocol drycontact")
)
if config.get(CONF_PROTOCOL, None) != PROTOCOL_DRYCONTACT and (
CONF_DRY_CONTACT_CLOSE_SENSOR in config
or CONF_DRY_CONTACT_OPEN_SENSOR in config
):
raise cv.Invalid(
"dry_contact_close_sensor and dry_contact_open_sensor are only valid when using protocol drycontact"
)
# if config.get(CONF_PROTOCOL, None) == PROTOCOL_DRYCONTACT and CONF_DRY_CONTACT_OPEN_SENSOR not in config:
# raise cv.Invalid("dry_contact_open_sensor is required when using protocol drycontact")
return config return config
CONFIG_SCHEMA = cv.All( CONFIG_SCHEMA = cv.All(
cv.Schema( cv.Schema(
{ {
@ -85,17 +73,13 @@ CONFIG_SCHEMA = cv.All(
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(SyncFailed), cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(SyncFailed),
} }
), ),
cv.Optional(CONF_PROTOCOL, default=PROTOCOL_SECPLUSV2): cv.All( cv.Optional(CONF_PROTOCOL, default=PROTOCOL_SECPLUSV2): cv.All(vol.In(
vol.In(SUPPORTED_PROTOCOLS) SUPPORTED_PROTOCOLS
), )),
# cv.Inclusive(CONF_DRY_CONTACT_OPEN_SENSOR,CONF_DRY_CONTACT_SENSOR_GROUP): cv.use_id(binary_sensor.BinarySensor), # cv.Inclusive(CONF_DRY_CONTACT_OPEN_SENSOR,CONF_DRY_CONTACT_SENSOR_GROUP): cv.use_id(binary_sensor.BinarySensor),
# cv.Inclusive(CONF_DRY_CONTACT_CLOSE_SENSOR,CONF_DRY_CONTACT_SENSOR_GROUP): cv.use_id(binary_sensor.BinarySensor), # cv.Inclusive(CONF_DRY_CONTACT_CLOSE_SENSOR,CONF_DRY_CONTACT_SENSOR_GROUP): cv.use_id(binary_sensor.BinarySensor),
cv.Optional(CONF_DRY_CONTACT_OPEN_SENSOR): cv.use_id( cv.Optional(CONF_DRY_CONTACT_OPEN_SENSOR): cv.use_id(binary_sensor.BinarySensor),
binary_sensor.BinarySensor cv.Optional(CONF_DRY_CONTACT_CLOSE_SENSOR): cv.use_id(binary_sensor.BinarySensor),
),
cv.Optional(CONF_DRY_CONTACT_CLOSE_SENSOR): cv.use_id(
binary_sensor.BinarySensor
),
} }
).extend(cv.COMPONENT_SCHEMA), ).extend(cv.COMPONENT_SCHEMA),
validate_protocol, validate_protocol,
@ -125,18 +109,11 @@ async def to_code(config):
cg.add(var.set_input_obst_pin(pin)) cg.add(var.set_input_obst_pin(pin))
if CONF_DRY_CONTACT_OPEN_SENSOR in config and config[CONF_DRY_CONTACT_OPEN_SENSOR]: if CONF_DRY_CONTACT_OPEN_SENSOR in config and config[CONF_DRY_CONTACT_OPEN_SENSOR]:
dry_contact_open_sensor = await cg.get_variable( dry_contact_open_sensor = await cg.get_variable(config[CONF_DRY_CONTACT_OPEN_SENSOR])
config[CONF_DRY_CONTACT_OPEN_SENSOR]
)
cg.add(var.set_dry_contact_open_sensor(dry_contact_open_sensor)) cg.add(var.set_dry_contact_open_sensor(dry_contact_open_sensor))
if ( if CONF_DRY_CONTACT_CLOSE_SENSOR in config and config[CONF_DRY_CONTACT_CLOSE_SENSOR]:
CONF_DRY_CONTACT_CLOSE_SENSOR in config dry_contact_close_sensor = await cg.get_variable(config[CONF_DRY_CONTACT_CLOSE_SENSOR])
and config[CONF_DRY_CONTACT_CLOSE_SENSOR]
):
dry_contact_close_sensor = await cg.get_variable(
config[CONF_DRY_CONTACT_CLOSE_SENSOR]
)
cg.add(var.set_dry_contact_close_sensor(dry_contact_close_sensor)) cg.add(var.set_dry_contact_close_sensor(dry_contact_close_sensor))
for conf in config.get(CONF_ON_SYNC_FAILED, []): for conf in config.get(CONF_ON_SYNC_FAILED, []):

View File

@ -18,7 +18,9 @@ CoverOpeningTrigger = ratgdo_ns.class_(
CoverClosingTrigger = ratgdo_ns.class_( CoverClosingTrigger = ratgdo_ns.class_(
"CoverClosingTrigger", automation.Trigger.template() "CoverClosingTrigger", automation.Trigger.template()
) )
CoverStateTrigger = ratgdo_ns.class_("CoverStateTrigger", automation.Trigger.template()) CoverStateTrigger = ratgdo_ns.class_(
"CoverStateTrigger", automation.Trigger.template()
)
CONF_ON_OPENING = "on_opening" CONF_ON_OPENING = "on_opening"
CONF_ON_CLOSING = "on_closing" CONF_ON_CLOSING = "on_closing"