Hi! Actually I've literally just (yesterday) set up something similar with Home Assistant.
You're doing the right thing running the Pi from Ethernet, but yes, the range can be pretty low through brickwork - Bluetooth LE isn't great for that.
One thing you could try for starters is right after the button is pressed, increase the advertising interval to maybe 20ms for a minute (default is 375ms) - and that'll throw out a lot more packets that increases your chances of one arriving.
How are you doing the advertising->MQTT part at the moment?
When I did it, I used https://bthome.io/ which is built into Home Assistant (and then the https://www.espruino.com/BTHome library). As long as bluetooth is working with Home Assistant you can just advertise in the special format and it appears in Home Assistant without any extra config needed.
The real benefit is you can use ESPHome (https://esphome.io/components/bluetooth_proxy.html) on an ESP32 device as a simple bridge - so I've got one of those in the TV cabinet which is close enough to outside that it works (while my Pi with Home Assistant is in the loft).
Having said that, right now I'm only advertising every 375ms and it's taking several seconds for the button press to get through - so I need to increase the advertising interval (as I'd mentioned above) to help with it.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Hi! Actually I've literally just (yesterday) set up something similar with Home Assistant.
You're doing the right thing running the Pi from Ethernet, but yes, the range can be pretty low through brickwork - Bluetooth LE isn't great for that.
One thing you could try for starters is right after the button is pressed, increase the advertising interval to maybe 20ms for a minute (default is 375ms) - and that'll throw out a lot more packets that increases your chances of one arriving.
How are you doing the advertising->MQTT part at the moment?
When I did it, I used https://bthome.io/ which is built into Home Assistant (and then the https://www.espruino.com/BTHome library). As long as bluetooth is working with Home Assistant you can just advertise in the special format and it appears in Home Assistant without any extra config needed.
The real benefit is you can use ESPHome (https://esphome.io/components/bluetooth_proxy.html) on an ESP32 device as a simple bridge - so I've got one of those in the TV cabinet which is close enough to outside that it works (while my Pi with Home Assistant is in the loft).
Having said that, right now I'm only advertising every 375ms and it's taking several seconds for the button press to get through - so I need to increase the advertising interval (as I'd mentioned above) to help with it.
Hopefully I'll do a proper writeup on it soon