@aerodolphin Due to having to use Ethernet, I am currently controlling our fireplace using ESPHome and an ESP32-POE with 433MHz transmitter.
In case it’s of any help, below is my configuration YAML in ESPHome. As you can see, I have four commands (power on/off, and flame up/down). Each command is defined as a switch (i.e. 433MHz transmitter sends the code to the fireplace), as well as a binary sensor (HA detects when the original remote’s buttons are pressed, and also when the 433MHz transmitter sends the codes). The binary sensors are not really necessary, but I really wanted to make sure I was able to go full circle (due to being a control freak ).
esphome:
name: esp32_poe_2
platform: ESP32
board: esp32-poe
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO17_OUT
phy_addr: 0
power_pin: GPIO12
logger:
api:
ota:
remote_transmitter:
pin: GPIO32
carrier_duty_percent: 100%
remote_receiver:
pin:
number: GPIO33
inverted: True
mode: INPUT_PULLUP
filter: 200us # default = 10us
idle: 4ms # default = 10ms
binary_sensor:
# Fireplace
- platform: remote_receiver
name: Fireplace On
rc_switch_raw:
code: '1010011110011'
protocol:
pulse_length: 380
sync: [45, 1]
zero: [1, 2]
one: [2, 1]
inverted: true
filters:
- delayed_off: 1000ms
- platform: remote_receiver
name: Fireplace Off
rc_switch_raw:
code: '1010011110111'
protocol:
pulse_length: 380
sync: [45, 1]
zero: [1, 2]
one: [2, 1]
inverted: true
filters:
- delayed_off: 1000ms
- platform: remote_receiver
name: Flame Up
rc_switch_raw:
code: '1010011111011'
protocol:
pulse_length: 380
sync: [45, 1]
zero: [1, 2]
one: [2, 1]
inverted: true
filters:
- delayed_off: 1000ms
- platform: remote_receiver
name: Flame Down
rc_switch_raw:
code: '1010011111101'
protocol:
pulse_length: 380
sync: [45, 1]
zero: [1, 2]
one: [2, 1]
inverted: true
filters:
- delayed_off: 1000ms
switch:
# Fireplace
- platform: template
name: Fireplace
icon: "mdi:fireplace"
optimistic: true
assumed_state: true
turn_on_action:
# - remote_transmitter.transmit_raw:
# carrier_frequency: 433MHz
# code: [ 380, -380, 380, -760, 760, -380, 380, -760, 380, -760, 760, -380, 760, -380, 760, -380, 760, -380, 380, -760, 380, -760, 760, -380, 760, -17200 ]
# repeat:
# times: 120
- remote_transmitter.transmit_rc_switch_raw:
code: '1010011110011'
protocol:
pulse_length: 380
sync: [1, 45]
zero: [1, 2]
one: [2, 1]
repeat:
times: 120
wait_time: 10ms
turn_off_action:
# - remote_transmitter.transmit_raw:
# carrier_frequency: 433MHz
# code: [ 380, -380, 380, -760, 760, -380, 380, -760, 380, -760, 760, -380, 760, -380, 760, -380, 760, -380, 380, -760, 760, -380, 760, -380, 760, -17200 ]
# repeat:
# times: 60
- remote_transmitter.transmit_rc_switch_raw:
code: '1010011110111'
protocol:
pulse_length: 380
sync: [1, 45]
zero: [1, 2]
one: [2, 1]
repeat:
times: 60
wait_time: 10ms
- platform: template
name: Flame
icon: "mdi:fire"
optimistic: true
assumed_state: true
turn_on_action:
# - remote_transmitter.transmit_raw:
# carrier_frequency: 433MHz
# code: [ 380, -380, 380, -760, 760, -380, 380, -760, 380, -760, 760, -380, 760, -380, 760, -380, 760, -380, 380, -380, 380, -760, 760, -380, 760, -17200 ]
# repeat:
# times: 60
- remote_transmitter.transmit_rc_switch_raw:
code: '1010011111011'
protocol:
pulse_length: 380
sync: [1, 45]
zero: [1, 2]
one: [2, 1]
repeat:
times: 60
wait_time: 10ms
turn_off_action:
# - remote_transmitter.transmit_raw:
# carrier_frequency: 433MHz
# code: [ 380, -380, 380, -760, 760, -380, 380, -760, 380, -760, 760, -380, 760, -380, 760, -380, 760, -380, 760, -380, 760, -380, 380, -760, 760, -17200 ]
# repeat:
# times: 60
- remote_transmitter.transmit_rc_switch_raw:
code: '1010011111101'
protocol:
pulse_length: 380
sync: [1, 45]
zero: [1, 2]
one: [2, 1]
repeat:
times: 60
wait_time: 10ms
For testing purposes, I include all of these entities in a Lovelace card:
I have some photos of the hardware in another post (bottom half of the post):