There is HomeButtons, which is only MQTT, but if you are cool with just one transport, it seems perfect. https://github.com/nplan/HomeButtons