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.
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
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.
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