Mon problème
Je cherche à activer ou pas un service de ESPHome par une variable.
Ma configuration
System Health
version | core-2022.5.4 |
---|---|
installation_type | Home Assistant Supervised |
dev | false |
hassio | true |
docker | true |
user | root |
virtualenv | false |
python_version | 3.9.9 |
os_name | Linux |
os_version | 5.10.1-v8+ |
arch | aarch64 |
timezone | Europe/Paris |
Home Assistant Community Store
GitHub API | ok |
---|---|
GitHub Content | ok |
GitHub Web | ok |
GitHub API Calls Remaining | 5000 |
Installed Version | 1.24.5 |
Stage | running |
Available Repositories | 1051 |
Downloaded Repositories | 13 |
Home Assistant Cloud
logged_in | false |
---|---|
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
Home Assistant Supervisor
host_os | Debian GNU/Linux 10 (buster) |
---|---|
update_channel | stable |
supervisor_version | supervisor-2022.05.1 |
docker_version | 20.10.1 |
disk_total | 109.8 GB |
disk_used | 15.1 GB |
healthy | true |
supported | failed to load: Unsupported |
supervisor_api | ok |
version_api | ok |
installed_addons | File editor (5.3.3), MariaDB (2.4.0), Nginx Proxy Manager (0.11.0), Mosquitto broker (6.1.2), InfluxDB (4.4.1), SSH & Web Terminal (10.1.3), Samba share (9.6.1), SQLite Web (3.3.0), Zigbee2mqtt (1.18.1-1), Network UPS Tools (0.10.0) |
Dashboards
dashboards | 3 |
---|---|
resources | 17 |
views | 14 |
mode | storage |
J’ai suivi l’excellent article de @OmiTech sur Simplifier la configuration des appareils sous ESPHome pour mettre en commun les différents service utilisés dans tout mes modules wifi
, ota
, ap
, etc…
C’est super pratique pour définir à un seul endroit un service et être sûr de ne pas se tromper en recopiant.
Pour pousser plus loin, je cherche comment activer un service défini dans le fichier commun via une variable dans le fichier d’un module.
Par exemple, dans mon fichier commun, je voudrais tester via une variable l’inclusion de la configuration du web serveur :
common.yaml
---
# Core Configuration:
# https://esphome.io/components/esphome.html
esphome:
name: $esphome_name
# WiFi Component:
# https://esphome.io/components/wifi.html
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_pass
manual_ip:
static_ip: $static_ip
gateway: !secret ip_gateway
subnet: !secret ip_subnet
# Web Server Component:
# https://esphome.io/components/web_server.html
if $activate_web_server then
<<: !include config_web_server.yaml
mon fichier config_web_server :
config_web_server.yaml
web_server:
port: !secret web_port
et je voudrais pouvoir activer ce service dans un module test1 via la variable booléenne activate_web_server
:
test1.yaml
substitutions:
esphome_name: test1
logger_level: DEBUG
logger_baud_rate: '0'
static_ip: !secret ip_test1
activate_web_server: true
<<: !include common.yaml
esp32:
board: esp32dev
Si la variable activate_web_server
est à true
, je charge la configuration du web serveur dans mon fichier du module sinon je ne le charge pas.
Est-ce que l’inclusion conditionnelle est possible sous ESPHome ?
Quelle syntaxe dois-je avoir pour que cela fonctionne ?
Merci d’avance pour votre aide.