After running my errands today I rewarded myself by rewriting my IoT rotary phone as an Arduino sketch.
This is the third rewrite, and so far the best version. It uses MQTT to send messages to my home automation server.
The previous ones called the server API directly which meant actions were annoying to change.
Version 1 was written in Swift and ran on a Raspberry Pi. It worked but was kind of a waste of a whole Raspberry Pi.
Version 2 was written in MicroPython on a Wemos D1 Mini. It was flakey and required connecting to USB to update.
Version 3 still runs on a D1 but moves all automation logic to the server so updates are super easy.
emory.coffee is one server in the network