mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-05-31 02:08:26 +02:00
Add transmit pioneer (#922)
* Added pioneer_protocol to support transmit_pioneer
This commit is contained in:
committed by
Brandon Davidson
parent
30ecb58e06
commit
6a60f01753
@@ -5,7 +5,7 @@ from esphome.components import binary_sensor
|
||||
from esphome.const import CONF_DATA, CONF_TRIGGER_ID, CONF_NBITS, CONF_ADDRESS, \
|
||||
CONF_COMMAND, CONF_CODE, CONF_PULSE_LENGTH, CONF_SYNC, CONF_ZERO, CONF_ONE, CONF_INVERTED, \
|
||||
CONF_PROTOCOL, CONF_GROUP, CONF_DEVICE, CONF_STATE, CONF_CHANNEL, CONF_FAMILY, CONF_REPEAT, \
|
||||
CONF_WAIT_TIME, CONF_TIMES, CONF_TYPE_ID, CONF_CARRIER_FREQUENCY
|
||||
CONF_WAIT_TIME, CONF_TIMES, CONF_TYPE_ID, CONF_CARRIER_FREQUENCY, CONF_RC_CODE_1, CONF_RC_CODE_2
|
||||
from esphome.core import coroutine
|
||||
from esphome.util import Registry, SimpleRegistry
|
||||
|
||||
@@ -86,7 +86,7 @@ def validate_repeat(value):
|
||||
if isinstance(value, dict):
|
||||
return cv.Schema({
|
||||
cv.Required(CONF_TIMES): cv.templatable(cv.positive_int),
|
||||
cv.Optional(CONF_WAIT_TIME, default='10ms'):
|
||||
cv.Optional(CONF_WAIT_TIME, default='25ms'):
|
||||
cv.templatable(cv.positive_time_period_microseconds),
|
||||
})(value)
|
||||
return validate_repeat({CONF_TIMES: value})
|
||||
@@ -288,6 +288,42 @@ def nec_action(var, config, args):
|
||||
cg.add(var.set_command(template_))
|
||||
|
||||
|
||||
# Pioneer
|
||||
(PioneerData, PioneerBinarySensor, PioneerTrigger, PioneerAction,
|
||||
PioneerDumper) = declare_protocol('Pioneer')
|
||||
PIONEER_SCHEMA = cv.Schema({
|
||||
cv.Required(CONF_RC_CODE_1): cv.hex_uint16_t,
|
||||
cv.Optional(CONF_RC_CODE_2, default=0): cv.hex_uint16_t,
|
||||
})
|
||||
|
||||
|
||||
@register_binary_sensor('pioneer', PioneerBinarySensor, PIONEER_SCHEMA)
|
||||
def pioneer_binary_sensor(var, config):
|
||||
cg.add(var.set_data(cg.StructInitializer(
|
||||
PioneerData,
|
||||
('rc_code_1', config[CONF_RC_CODE_1]),
|
||||
('rc_code_2', config[CONF_RC_CODE_2]),
|
||||
)))
|
||||
|
||||
|
||||
@register_trigger('pioneer', PioneerTrigger, PioneerData)
|
||||
def pioneer_trigger(var, config):
|
||||
pass
|
||||
|
||||
|
||||
@register_dumper('pioneer', PioneerDumper)
|
||||
def pioneer_dumper(var, config):
|
||||
pass
|
||||
|
||||
|
||||
@register_action('pioneer', PioneerAction, PIONEER_SCHEMA)
|
||||
def pioneer_action(var, config, args):
|
||||
template_ = yield cg.templatable(config[CONF_RC_CODE_1], args, cg.uint16)
|
||||
cg.add(var.set_rc_code_1(template_))
|
||||
template_ = yield cg.templatable(config[CONF_RC_CODE_2], args, cg.uint16)
|
||||
cg.add(var.set_rc_code_2(template_))
|
||||
|
||||
|
||||
# Sony
|
||||
SonyData, SonyBinarySensor, SonyTrigger, SonyAction, SonyDumper = declare_protocol('Sony')
|
||||
SONY_SCHEMA = cv.Schema({
|
||||
|
||||
Reference in New Issue
Block a user