Turning 433Mhz doorbell into a smart doorbell

Hi guys,

It’s been a LONG time since I ventured into something for HA. Decided to try get myself an ESP32s and an RF receiver with the idea of just capturing the doorbell press so I can setup notofications in HA.

So far I have a crude and parcially working set of code.

remote_receiver:
  pin: GPIO32
  dump: rc_switch
  # Settings to optimize recognition of RF devices
  tolerance: 25%
  filter: 25us
  idle: 10ms
  buffer_size: 2kb

binary_sensor:
  - platform: remote_receiver
    name: rc1
    on_press:
      then:
        - binary_sensor.template.publish:
            id: doorbell
            state: ON
    rc_switch_raw:
      code: '10101000001100001000'
      protocol: 6
  - platform: template
    name: Doorbell
    id: doorbell

What I notice is that I have to press the doorbell button a LOT in order to capture anything in the logs - seems inconsistent. I’ve tried changing the settings to find out why this might be, but I am at a loss. I’m also quite sure I am not entirely on the right path with the binary sensor code. The doorbell is a momentary push, so I guess once the signal is received I then need it to change back to not pressed or OFF.

If I update the tolerance to around 60% I see more consistent button presses which yeilds:

[20:00:01][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='10101000001100001001'
[20:00:11][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='10101000001100001001'
[20:00:19][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='10101000001100001001'
[20:00:26][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='10101000001100001001'
[20:00:29][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=2 data='0000000000'
[20:00:34][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=2 data='0000000000000000'
[20:00:38][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='101010000'
[20:00:42][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='101010000'
[20:00:46][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='101010000011000010'
[20:00:49][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='10101000001100001001'
[20:00:51][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='10101000001100001001'
[20:01:00][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='10101000001100001000'
[20:01:04][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='10101000001100001000'
[20:01:06][D][remote.rc_switch:259]: Received RCSwitch Raw: protocol=6 data='10101000001100001000'

I thought I’d see a constant data output, rather than it changing so much.

I feel like I’m going round in circles so I am reaching out for some guidance. Go easy on me guys!

try my code. works on several of my devices.

remote_receiver:
  - id: rc_receiver
    pin:
      number: GPIO22
      inverted: True
    dump: rc_switch
    tolerance: 60%
    filter: 250us
    idle: 4ms
    buffer_size: 2kb

I still get trouble getting consistent data. Sometimes it works and other times button presses result on no data.

What receiver did you use? I’m using an srx882 and I’m wondering if this module just isn’t that good.

I might give that module a go. I can’t understand why sometimes it captures the press perfectly and other times I get nothing. The doorbell is right next to me in testing. I’ve tried all manner of settings as well.

I’ve tried both the SRX882 and the RXB6 the last few weeks, and they both generate a lot of spurious interrupts. :frowning: Thought maybe the RXB12 might do better, but the lead time to get one is weeks. :frowning: Going to try a MICRF211 later this week, and a CC1101 after that, if necessary.

I have several modules wl101 and they all work well

Just ordered a wl101 - fingers crossed I get more consistent results!

1 Like

I want to note that this contact is not a date to be used !! Not I know what it is connected with, but for me and on all boards when I connect nothing works !!. although according to the scheme two contracts of parallel

I believe that’s normal with on-off keying (OOK) at 433MHz. When the transmitter is off long enough, the receiver’s automatic gain control (AGC) turns up the gain until it hears something (even if it’s just noise), thus generating random pulses on it’s data output pin.

I’ve almost given up hope. Though this particular (Byron) doorbell has a mains receiver that I’m wondering might be able to be intercept something to use as a signal on the esp when the receiver picks up the transmitter. It looks like it could be lowering the voltage for the secondary PCB with the receiver on. Though it’s a little beyond my skills so I will continue to see if I can find it being done before.

Some time ago I was able to put a ESP device (Wemos D1 mini) into a powered 433MHz chime of a (Byron) doorbell. It looks that you are trying to solve a similar problem. What made all project easy to implement, was that as the first thing I flashed Tasmota firmware into ESP. Perhaps you find it useful to look at some of my projects on Github. That chime project is not there as I thought it maybe of limited interest.

Hello,

i was wondering if you have found a solution yet.

Aditionally i wanted to know if your dorrbell button is a powered one (e.g. by battery).

I have a similar issue with a piezo button, i will probably open a new thread for that right now, so maybe you can check out my detailed problem there.