We have a esphome device config that uses external components (c++ libs) as local component which works great. Now i wanted to move the build process to the esphome builder.
Therefore i created a minimal esphome config that loads the package from a git repostitory. This works to the point where the external component statement in the config is reached. ESPhome then look in the folder of the minimal config for the files, not in the package dir below .esphome/packages/… where the actual git gets checked out to. If i symlink components from the checkout directory to the directory of the minimal config everthing works.
the config looks like
substitutions:
device_name: "a-device"
friendly_name: "A-Device"
packages:
remote-package:
url: https://example.com
files:
- a-device.yaml
ref: main
refresh: 300s
the external component definition in the yaml of the remote package looks like this:
external_components:
- source:
type: local
path: components
i’m not sure if this is an edge case not handled correctly or if miss something. I would assume i need to tell esphome somehow what is work directory is?