TL;DR:
My goal is to identify which of the components available to purchase can be fairly easily integrated into an ESPHome project. I am not after recommendations on specific items, so much as general advice on how to choose components which should work with ESPHome without too much hassle because, lets face it, a device which doesn’t work has wasted your time and money.
- check the esphome.io website
- check esphome’s github list of components at github > esphome > components tree
- not officially supported, but search Home Assistant community. Do search before asking a common or vague question if you want a reply.
- try searching the internet, though you are more likely to find clues to further searches rather than a direct answer.
I come from a software background but have successfully configured ESPHome on several PC191HA smart power points, an ESP-01S/relay, and a ESP32-CAM - but these are all off-the-shelf devices.
For my current project (automating my greenhouse) I will need to assemble various hardware components, do a little soldering (aargh !!!) and configure them in ESPHome. I have already done a bit of Proof-of-Concept / bench testing with some sensors and components I bought (back when I thought robotics might be fun and bought my first Raspberry Pi). Now I’m into Home Assistant but retired - so I don’t have the money or patience to buy lots of bits and see which ones work.
Microcontroller
For my project I could use an old RasPi … but an ESP32 or RP2040 will be much lower power requirement (hence smaller battery and solar panel). My local electronics supplier has several ESP32-C6 and S3 boards cheaper than the older boards - but I note that in ESPHome > ESP32 Platform the ESP32C6 is not listed at all; and the list of "board"s seems rather old.
I understand that we are downsteam from platformio who in turn has to wait for support in the ESP-IDF … but it would be nice not to pay a higher price for a board that’s already 2 years old.
Searching the Home Assistant Community however there are a number of mentions of both the C6 and S3 modules, so should I assume that they can be used - but beware that not every feature is yet supported ?
I particularly like the look of DFRobot’s FireBeetle 2 ESP32 C6 IoT Development Board, which supports Wi-Fi 6, Bluetooth 5, Zigbee, Thread, Matter, and direct connection of Solar Panel as well as Li-PO battery. And at only AUS$10.40 there’s not much need to look for chinese rip-offs ! Except that these features are supported by the hardware - not by ESPHome. Is it worth buying one now, use the currently supported features, and wait for ESPHome support to catch up ?
Sensors and other components
I understand that official support is indicated by being listed in esphome.io … though I suspect this is behind the github > esphome > components tree.
For example, the BL0937 voltage and current monitor (used in the PC191HA smart power point) is a variation of the hlw8012 component, which can be found in github > esphome > components tree. In the hlw8012 folder is sensor.py, which includes a list of compatible models:
But you have to know where to look to find that it is a compatible model. Not easy for most users.
Esphome.io lists many components, and the github folder contains a long long list of components - but still many of the boards I am considering don’t appear in either.
Is there a better way for a user to determine whether a board is supported, and under which platform ?
What about sensors accessed through a common bus like i2c or SPI ?
I don’t trust my soldering so I prefer to buy breakout boards and connect on breadboard or via i2c. I note that despite using i2c, they also need to be supported directly by components in ESPHome.
sensor:
- platform: mcp9808
name: "MCP9808 Temperature"
And what if the desired component doesn’t have a directory in esphome / esphome / components ? Or the supplier doesn’t specify what chip is the main component on the board ? Maybe it is similar to a device which does have a folder - but how to find out which ?
For instance, I am considering a couple of power monitoring components to record charge from solar panel and battery.
- DFRobot’s Gravity: I2C Digital Wattmeter adopts TI INA219
- Adafruit MAX17048 LiPoly / LiIon Fuel Gauge and Battery Monitor
- Adafruit INA260 High or Low Side Voltage, Current, Power Sensor
There are folders for ina219 and ina260, so they are both supported.
No folder for max17048. There is a max17043 folder but the max17043/sensor.py gives no indication of being similar to the max 17048. Curiously the text on adafruits description gives a link to a Adafruit_CircuitPython_LC709203F driver on github, but there is no folder for LC709203F either.
The Adafruit MAX17048 LiPoly / LiIon Fuel Gauge and Battery Monitor claims “to do the annoying math of decoding the non-linear voltage to get you a valid percentage as well !” But it doesn’t matter that this board is better, because it isn’t supported by ESPHome … except that searching the discussion forum and web for code snippets other users have posted reveals an esphome configuration for max17048.
So I guess the bottom line is that after checking esphome.io we still need to do searches of the HA community and web because not all working components are in the officially supported lists.