I want to share some experience about building your own MQTT gadget.
For our new home, I started to develop some custom hardware to control rollershutters, radiators, temperature & humidity sensor, irrigation valves & pumps and what ever I come up with in the future.
Since I do not like to have this all working on battery and WiFi but with PoE, there literally are no products in the market. However, I installed about 500m of Cat5e cable. To every radiator, rollershutter, etc.
Before we began renovating the new home, I developed prototypes for every purpose, to find a suitable platform.
I went for Arduino and MQTT.
My prototypes worked and convinced me that Arduino was the platform of choise. After one and a half year later now, I dropped the Arduino platform. I never managed to get them to work reliably. The majority of applications involves relays. Arduino Nano and Mega combined with a w5500 Ethernet shield have been the base of my prototypes. The connection to my MQTT broker, established with the PubSubClient Arduino library on top of the Arduino Ethernet library always fails after some time when a relay had been turn on. I have not been able to fix this, although I spent months on hardware and software debugging.
Now I switched to the ESP32 platform and it works out of the box. Ethernet and PoE are onboard, no need for PoE splitters or an w5500 Ethernet shield. I tested relay boards with it. Flawlessly!
The prize (not counting the debugging hours) is equal!
25€ for one ESP32 PoE ISO vs. 25€ for one Arduino device (10€ PoE splitter + 3€ Ard Nano + 12€ w5500).
So keep away from Arduino + Ethernet. It is horrible.
Go for ESP32!
I hope I can save someone a lot of time and headaches…