I have a wroom board running with an RF transmitter (FS1000A) to control my Novy hood. I have put the config together from various configs found on the internet.
I have put together the following config:
esphome:
name: novy-hood
friendly_name: novy_hood
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Web server.
web_server:
port: 80
# Enable Home Assistant API
api:
encryption:
key: "Random"
ota:
- platform: esphome
password: "Random"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: true
manual_ip:
static_ip: 192.168.22.22
gateway: !secret gateway_ip
subnet: !secret netmask
dns1: !secret dns1
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Novy-Hood Fallback Hotspot"
password: "Random"
captive_portal:
remote_transmitter:
pin: GPIO022
# RF uses a 100% carrier signal
carrier_duty_percent: 100%
#remote_receiver:
# pin: GPIO023
# dump: all
# # Settings to optimize recognition of RF devices
# tolerance: 50%
# filter: 250us
# idle: 4ms
# buffer_size: 2kb
button:
- platform: template
name: Novy FAN Plus
id: novy_fan_plus
on_press:
- remote_transmitter.transmit_rc_switch_raw:
code: '010101010101'
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
- platform: template
name: Novy FAN Min
id: novy_fan_min
on_press:
- remote_transmitter.transmit_rc_switch_raw:
code: '010101010110'
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
- platform: template
name: Afzuigkap
id: novy_aanuit_button
on_press:
- remote_transmitter.transmit_rc_switch_raw:
code: '010101010111010011'
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
- platform: template
name: Licht toggle
id: novy_licht_button
on_press:
- remote_transmitter.transmit_rc_switch_raw:
code: '010101010111010001'
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
# pattern to make sure the hood is off.
- platform: template
name: Ensure Off
id: novy_ensure_off
on_press:
- remote_transmitter.transmit_rc_switch_raw:
code: '1011001011001011001011001011001011001' # FAN Plus
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
- delay: 500ms
- remote_transmitter.transmit_rc_switch_raw:
code: '1011001011001011001011001011001001011' # Fan Min
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
- delay: 500ms
- remote_transmitter.transmit_rc_switch_raw:
code: '1011001011001011001011001011001001001011001011011001001' # On / Off
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
switch:
# Licht
- platform: template
name: Licht
restore_mode: ALWAYS_OFF
id: novy_licht
turn_on_action:
- remote_transmitter.transmit_rc_switch_raw:
code: '1011001011001011001011001011001001001011001011011011001'
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
- switch.template.publish:
id: novy_licht
state: ON
turn_off_action:
- remote_transmitter.transmit_rc_switch_raw:
code: '1011001011001011001011001011001001001011001011011011001'
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
- switch.template.publish:
id: novy_licht
state: OFF
# Kap
- platform: template
name: Afzuigkap
restore_mode: ALWAYS_OFF
id: novy_aanuit
turn_on_action:
- remote_transmitter.transmit_rc_switch_raw:
code: '1011001011001011001011001011001001001011001011011001001'
repeat:
times: 1
protocol:
zero: [0, 1]
one: [1, 0]
pulse_length: 380
- switch.template.publish:
id: novy_aanuit
state: ON
turn_off_action:
- remote_transmitter.transmit_rc_switch_raw:
code: '1011001011001011001011001011001001001011001011011001001'
repeat:
times: 1
protocol:
zero: [0, 1]
one: [1, 0]
pulse_length: 380
- delay: 2s
- remote_transmitter.transmit_rc_switch_raw:
code: '1011001011001011001011001011001001001011001011011001001'
repeat:
times: 1
protocol:
zero: [0, 1]
one: [1, 0]
pulse_length: 380
- switch.template.publish:
id: novy_aanuit
state: OFF
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true
bluetooth_proxy:
active: true
It works, but I do find the range is very poor. I did tie a 17cm copper wire to it (power wire with loose wires so to speak, because with solid core were too thick that I have. If I put it directly under it, it responds pretty well. However, if I put him in the kitchen cabinet where I want him, he responds, but sometimes misses commands.
The reason I want it in that spot is because of the BLE tracking in conjunction with Bermuda.
Is there any way to make the range better? For example, is there an official-like antenna that works better?
In addition, as indicated I created my config from multiple configs, now however I do not understand something.
When I use my receiver to see what comes in when I press the light button it is the following:
[11:06:29][I][remote.pronto:231]: Received Pronto: data=
[11:06:29][I][remote.pronto:233]: 0000 006D 000B 0000 003E 0014 0041 0011 003F 0014 003E 0015 003D 0016 0013 0016 0013 0017 003B 0017 0064 000A 001E 0019 0010 009B
[11:06:29][I][remote.canalsatld:100]: Received CanalSatLD: device=0x49, address=0x09, command=0x13, repeat=0x0
[11:06:29][I][remote.pronto:231]: Received Pronto: data=
[11:06:29][I][remote.pronto:233]: 0000 006D 0013 0000 000F 000C 001D 0019 0010 000C 001D 001A 0010 000C 001D 001A 000F 000C 001D 001A 000E 000E 001D 001A 000F 001A 000F 001A 000F 000D 001C 001A 000F 000D 001C 000D 001C 000D 001C 001B 000F 009B
[11:06:29][I][remote.rc_switch:261]: Received RCSwitch Raw: protocol=6 data='010101010111010001'
[11:06:29][I][remote.canalsatld:100]: Received CanalSatLD: device=0x49, address=0x08, command=0x27, repeat=0x0
[11:06:29][I][remote.pronto:231]: Received Pronto: data=
[11:06:29][I][remote.pronto:233]: 0000 006D 0013 0000 000E 000D 001C 001B 000F 000D 001C 001B 000E 000E 001C 001B 000F 000D 001C 001B 000F 0019 0010 001B 000E 001B 000E 001B 000E 000D 001C 001B 000E 000E 001C 000E 001C 000E 001A 001C 000E 009B
[11:06:29][I][remote.rc_switch:261]: Received RCSwitch Raw: protocol=6 data='010101011111010001'
The following code works:
platform: template
name: Licht toggle
id: novy_licht_button
on_press:
remote_transmitter.transmit_rc_switch_raw:
code: '010101010111010001'
protocol:
pulse_length: 320
sync: [36, 1]
zero: [1, 2]
one: [2, 1]
inverted: True
repeat:
times: 2
wait_time: 10ms
The following code doesn’t:
platform: template
name: Licht toggle
id: novy_licht_button
on_press:
- remote_transmitter.transmit_rc_switch_raw:
code: '1011001011001011001011001011001001001011001011011011001'
repeat:
times: 1
protocol:
zero: [0, 1]
one: [1, 0]
pulse_length: 380
The last one, which so does not work is from some guy on a forum, which I assume does work for him (tried asking but doesn’t answer). So is that simply a different code that Novy came up with? Or is there also something in that protocol; zero, one, and pulse length and thus can be improved looking at my RAW code?
So basically 2 questions.
- How can I improve the range?
- How do I make logic out of what is sent?