Here you can find the software pieces I am using to implement the basic IoT architecture.
On IoT devices I use custom lightweight open-source firmware based esp-idf/FreeRTOS (there is much to be improved on that code, it is on-going medium priority work)
Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker, suitable for use on all devices from low power single board computers to full servers.
Node-RED is a programming tool for wiring together hardware devices, APIs and online services. It also provides a nice web interface.
Home assistant is an open source home automation that puts local control and privacy first. While it can provide full home automation and it has his own web interface, I use it primarily as a proxy to Google Actions/Google Home in order to get the voice command interface to home automation