mirror of
https://github.com/esphome/esphome.git
synced 2024-11-21 22:48:10 +01:00
fix canbus send config (#5585)
Co-authored-by: Samuel Sieb <samuel@sieb.net>
This commit is contained in:
parent
e3fbf54a1a
commit
84c00a5867
3 changed files with 31 additions and 14 deletions
|
@ -17,11 +17,12 @@ CONF_ON_FRAME = "on_frame"
|
|||
|
||||
|
||||
def validate_id(config):
|
||||
can_id = config[CONF_CAN_ID]
|
||||
id_ext = config[CONF_USE_EXTENDED_ID]
|
||||
if not id_ext:
|
||||
if can_id > 0x7FF:
|
||||
raise cv.Invalid("Standard IDs must be 11 Bit (0x000-0x7ff / 0-2047)")
|
||||
if CONF_CAN_ID in config:
|
||||
can_id = config[CONF_CAN_ID]
|
||||
id_ext = config[CONF_USE_EXTENDED_ID]
|
||||
if not id_ext:
|
||||
if can_id > 0x7FF:
|
||||
raise cv.Invalid("Standard IDs must be 11 Bit (0x000-0x7ff / 0-2047)")
|
||||
return config
|
||||
|
||||
|
||||
|
@ -151,22 +152,18 @@ async def canbus_action_to_code(config, action_id, template_arg, args):
|
|||
if can_id := config.get(CONF_CAN_ID):
|
||||
can_id = await cg.templatable(can_id, args, cg.uint32)
|
||||
cg.add(var.set_can_id(can_id))
|
||||
use_extended_id = await cg.templatable(
|
||||
config[CONF_USE_EXTENDED_ID], args, cg.uint32
|
||||
)
|
||||
cg.add(var.set_use_extended_id(use_extended_id))
|
||||
cg.add(var.set_use_extended_id(config[CONF_USE_EXTENDED_ID]))
|
||||
|
||||
remote_transmission_request = await cg.templatable(
|
||||
config[CONF_REMOTE_TRANSMISSION_REQUEST], args, bool
|
||||
cg.add(
|
||||
var.set_remote_transmission_request(config[CONF_REMOTE_TRANSMISSION_REQUEST])
|
||||
)
|
||||
cg.add(var.set_remote_transmission_request(remote_transmission_request))
|
||||
|
||||
data = config[CONF_DATA]
|
||||
if isinstance(data, bytes):
|
||||
data = [int(x) for x in data]
|
||||
if cg.is_template(data):
|
||||
templ = await cg.templatable(data, args, cg.std_vector.template(cg.uint8))
|
||||
cg.add(var.set_data_template(templ))
|
||||
else:
|
||||
if isinstance(data, bytes):
|
||||
data = [int(x) for x in data]
|
||||
cg.add(var.set_data_static(data))
|
||||
return var
|
||||
|
|
|
@ -203,3 +203,19 @@ light:
|
|||
from: 20
|
||||
to: 25
|
||||
- single_light_id: ${roomname}_lights
|
||||
|
||||
canbus:
|
||||
- platform: esp32_can
|
||||
id: esp32_internal_can
|
||||
rx_pin: GPIO04
|
||||
tx_pin: GPIO05
|
||||
can_id: 4
|
||||
bit_rate: 50kbps
|
||||
|
||||
button:
|
||||
- platform: template
|
||||
name: Canbus Actions
|
||||
on_press:
|
||||
- canbus.send: "abc"
|
||||
- canbus.send: [0, 1, 2]
|
||||
- canbus.send: !lambda return {0, 1, 2};
|
||||
|
|
|
@ -3214,6 +3214,10 @@ text_sensor:
|
|||
canbus_id: mcp2515_can
|
||||
can_id: 23
|
||||
data: [0x10, 0x20, 0x30]
|
||||
- canbus.send:
|
||||
canbus_id: mcp2515_can
|
||||
can_id: 23
|
||||
data: !lambda return {0x10, 0x20, 0x30};
|
||||
- canbus.send:
|
||||
canbus_id: esp32_internal_can
|
||||
can_id: 23
|
||||
|
|
Loading…
Reference in a new issue