Hello everyone,
Everything is working perfectly now!
Thank you so much for your help and tips.
I have one more request, which I’ll mention at the bottom.
Here’s what I did:
I now have the SRX882 and STX882 modules, which @LutzDe recommended above.
I also tested these two modules with a Tasmota-flashed ESP8266 to determine the pulse length.
This was the output when pressing the “+” button on the Vevor diesel heater’s remote control:
23:26:43.409 MQT: tele/tasmota_723F18/RESULT = {"Time":"2025-10-29T23:26:43","RfReceived":{"Data":"0x1C5E08F0","Bits":32,"Protocol":1,"Pulse":255}}
The pulse length was identical for “-”, “ON”, and “OFF”. It was always 255.
I then converted the received data using a hex-to-binary converter and compared it to my previous values.
They all matched.
I then inserted the converted binary codes with the pulse length into ESPHome, and lo and behold, everything works perfectly.
The transmit and receive performance of the STX882 and SRX882 modules is excellent.
Here’s the code ==>
remote_receiver:
pin: GPIO18
#dump: all # rc_switch
dump: # dump: all
- rc_switch
# Settings to optimize recognition of RF devices
tolerance: 50%
# filter: 250us
idle: 4ms
#rmt_channel: 2
# not work
remote_transmitter:
pin: GPIO17
carrier_duty_percent: 100% # change from 100% to 50%
button:
#### RC Switch Raw
- platform: template
name: Heizung An
on_press:
- remote_transmitter.transmit_rc_switch_raw:
code: '00011100010111100001000110110000'
protocol:
pulse_length: 255
repeat:
times: 5
wait_time: 0s
- platform: template
name: Heizung Aus
on_press:
- remote_transmitter.transmit_rc_switch_raw:
code: '00011100010111100000010100001000'
protocol:
pulse_length: 255
repeat:
times: 5
wait_time: 0s
- platform: template
name: Heizleistung Plus
on_press:
- remote_transmitter.transmit_rc_switch_raw:
code: '00011100010111100000100011110000'
protocol:
pulse_length: 255
repeat:
times: 5
wait_time: 0s
- platform: template
name: Heizleistung Minus
on_press:
#- script.call: heizleistung_1
- remote_transmitter.transmit_rc_switch_raw:
code: '00011100010111100000001010001000'
protocol:
pulse_length: 255
repeat:
times: 5
wait_time: 0s
I’m not very familiar with ESPHome and have a request.
My heater has “+” and “-” buttons.
I can adjust the heating power from 1 to 10.
After switching it on, the device is always set to 10.
I also have temperature sensors, etc.
I don’t want to have to switch the device on and off every time, but rather just adjust it up or down to a specific power level.
Since the heater returns the heating power setting, I would need to add an automation or script that always sets everything to the value 1 when adjusting the heating power, and then increases the heating power to X from there.
So, I would have to execute “-” (minus) 9 times to ensure I’m at 1, and then, for example, 4 “+” commands to reach heating power level 5.
And so forth .
This ESPHome-Code i try but i get a lot errors.
- platform: template
name: Heizungleistung Minus
on_press:
#- script.call: heizleistung_1
- remote_transmitter.transmit_rc_switch_raw:
code: '00011100010111100000001010001000'
protocol:
pulse_length: 255
repeat:
times: 5
wait_time: 0s
- platform: template
name: Heizleistung 50%
on_press:
- script.call: heizleistung_5
script:
- id: heizleistung_5
then:
- repeat:
count: 9 # Set the heating power with minus-code to 1
- remote_transmitter.transmit_rc_switch_raw:
code: '00011100010111100000001010001000'
protocol:
pulse_length: 255
repeat:
times: 5
wait_time: 0s
- repeat:
count: 4 # Set the heating power with plus-code to 5
- remote_transmitter.transmit_rc_switch_raw:
code: '00011100010111100000100011110000'
protocol:
pulse_length: 255
repeat:
times: 5
wait_time: 0s
then:
- logger.log: "Aktion wiederholt"
- delay: 1s
What i do wrong?