Automate ESP Device Deployment and ongoing Updates from GitHub #33
Roving-Ronin
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
Going through the installation steps and I notice it is based upon users needing to copy yaml / cpp / py files etc to their local ESPHome instance, and place in a /esphome/powmr-inverter directory.
Just wondering if you have looked at removing this step by using the external_components function, which you are part way there with the main.yaml calling:
Instead of calling the local instance of this file you could instead be calling the version you have on GitHub, something like this (on the end users device config yaml) e.g.:
In regards the modules, updating the main.yaml on GitHub, these could then also be automatically pulled down with:
Note: the above examples are based upon reordering your file structure on GitHub to typical layout, with main.yaml in the root directory, and modules/helpers being off the root directory (not under 'examples'). The 'helpers' could also be called using the https://esphome.io/components/external_components.html function.
This would mean end users could setup an esp device with the barest of steps, just needing to correctly name the device and add this line into it:
When going to install the firmware via ESPHome it would then download/call all the files off GitHub and build the bin file. This also would allow you to push any updates/fixes within the code at GitHub and users then automatically see there is a new version available and simply push the Update Device in ESPHome and have it download the latest code and be reflashed.
A good example of this is to have a look at https://github.com/EverythingSmartHome/everything-presence-one and specifically this device file that does all this: https://github.com/EverythingSmartHome/everything-presence-one/blob/main/everything-presence-one.yaml (and see how it calls / refers to the other modules/yaml on GitHub that it uses).
Beta Was this translation helpful? Give feedback.
All reactions