For those of you that know me, I am kinda big on the ESP8266 WiFi enabled chip for IOT. I do use the Arduino IDE for coding these chips and have integrated aspects of automatic setup much like consumer IOT products use. The one thing that has been tricky is in setting up things like MQTT feeds and even the MQTT credentials on setup. Typically I have those coded into the chip firmware. The Arduino OTA option makes it easy to re-code the chips I already have active on my network, but the ultimate goal is to auto detect the chips capability once it connects to my IOT Hub. HASSio has been working on an auto detect for MQTT, but I recently noticed support for something called ESPhome.
According to the documentation (esphomelib.com) you can flash any ESP8266 or ESP32 device with firmware that will allow Home Assistant to read or wright to the IO pins just by editing the Yaml files on your HASSio server. They seem to have quite a bit of functionality built in like NeoPixle controls that even allow animation effects created through Yaml config. Support for DHT sensors and many more are set as well. While I am not a huge fan of Yaml files for coding, this will make things much easier for people intimidated by C++ coding. It is also a testament to how much amazing support Home Assistant has attracted.