Can you connect a custom iOS or Android app to ESPHome

I’m looking to do a small run of 50 devices as a proof of concept/MVP in order to pitch my company for investment.

Currently the company consists of just me, I only have some basic coding experience and very limited funds. I already have experience with ESPHome, so thought using that as firmware would save coding time and have all the functionality for the initial run. Getting it done sooner means I can potentially gain financing sooner and hire a software engineer sooner. Essentially, I’m considering my options in terms of using ESPHome as the firmware or putting together custom firmware.

My two hold ups are the user being able to connect their device to their home internet and whether or not I can connect a custom iOS or Android app to ESPHome to administer software updates and perhaps provide additional features down the line.

Appreciate all opinions and advice!

1 Like

The ESPHome API is documented here:

I’m assuming this means yes?

1 Like

Well that’s up to you. If you can connect your app to the API, then yes.

2 Likes

also esphome supports mqtt, and that is a ubiquitous.

1 Like

Were you able to move forward with this? I seek the same for my small startup. I thought of an app that lists all esphome devices on the local network and the user could control it by choosing the device. Esphome’s webserver interface is very complete.

1 Like

If you want to use the web interface then that is much easier. Just do a zeroconf scan for _esphomelib._tcp.local. - that will show all your esphome devices. However they won’t necessariy have the web server activated.

The home assistant dashboard knows when the web server is running - if you look in the device page from Open your Home Assistant instance and show your integrations. then you’ll see that if the webserver is running, the Visit link opens the webserver, if it isn’t then the Visit link opens the esphome addon page.

The code seems to be here https://github.com/home-assistant/core/blob/f0640fc057ff8f200eb35dd6c57388432e2c33ed/homeassistant/components/esphome/dashboard.py

Hope that helps.

1 Like