this post was submitted on 01 Oct 2023
21 points (95.7% liked)

homeassistant

12102 readers
13 users here now

Home Assistant is open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. Available for free at home-assistant.io

founded 1 year ago
MODERATORS
 

I'm using a ZigBee button to call an automation which notifies via Pushover and Alexa. Works fine.

I'd like to reduce latency and use a physical button. I can use a Pi, ESP32 or similar to respond to a closure and tell HA.

What's the lowest latency input to HA? My MQTT server is separate so I'm thinking an HTTP post direct into HA might be best.

Is there anything faster? HTTP is fast enough in my testing, it's an experiment as much as anything else.

you are viewing a single comment's thread
view the rest of the comments
[–] RegalPotoo@lemmy.world 4 points 1 year ago (2 children)

Theoretically, MQTT would be faster than HTTP; with MQTT the clients all maintain a persistent connection to the server, so sending a message is just a case of sending another packet on the existing connection, where as HTTP in the worst case would require a DNS lookup, TCP connection setup and TLS handshake before the button press could be reported.

The downside of a persistent connection is you have to maintain a persistent connection - not an issue if you are hardwired, but for things in batteries it probably isn't practical

[–] Sim 1 points 1 year ago (1 children)

I have a wired device sending HTTP POST updates very regularly (often more than one per second) and if I watch those arrive, they appear almost instantaneous. If the sending device used IP (or, more likely, had cached the lookup) I guess that would be fast too.

Good point about the MQTT persistence, cheers.

[–] RegalPotoo@lemmy.world 1 points 1 year ago

Practically it doesn't make any real difference - unless your network is ancient/massively overloaded/completely screwed or your client device is low power enough to struggle with TLS the whole connection setup process is only going to take ~100ms at most