Saltar a contenido

Source: bellack Hass Ansible (configs via API)

Patrón superior al role oficial (que es para HA Core install deprecated). Esta role bidireccional vía HA API: download (HA→repo) y upload (repo→HA) + render Jinja2 + restart. Resuelve el dolor real: "yo edito en UI, después quiero sync con repo". Esto es el patrón canónico para everything-is-code en setups HAOS/HA Container.

Por qué entró al wiki

  • Resuelve el gap concreto que dejé en ../analysis/q3-iac-strategy-v1: cómo gestionar configs HA via Ansible cuando HA es appliance (HAOS) o container.
  • Bidireccional → maneja el caso real de "a veces edito en UI" que el usuario probablemente tiene.
  • Repo público mantenido: bellackn/ansible-role-hass-control.

Páginas derivadas

Take-away accionable

Patrón "download then commit"

# 1. Hacer cambios en HA UI normalmente
# 2. Sync UI changes a repo
ansible-playbook sync-ha.yml
# 3. Review diff, commit
git diff
git commit -am "Update: añadida automation X"

Esto resuelve la tensión: HA UI es conveniente para iterar, pero rompe "everything is code". Esta role hace download diff trivial.

Patrón "upload changes desde repo"

# Editar en repo, commit, push
vim home-assistant/automations.yaml
git commit -am "feat: morning routine refinement"

# Aplicar a HA via Ansible
ansible-playbook -e hass_control_mode=set sync-ha.yml

Renders Jinja2 + restarts HA si es necesario.

Para el agente AI

El agente del Q10 strategy puede: 1. Read state vía ha-mcp. 2. Propose cambio via PR. 3. Tras merge, llamar a ansible-playbook con mode=set. 4. Verify post-restart.

Más limpio que el patrón scp de Beguelin — bidireccional, valida via API.

Citas

  • "sometimes I just like to change things manually in the Home Assistant UI. Then I want to make sure that my local files and those that are actually active are in sync."

Implicancia: actualización del Q3 strategy

Reemplaza la sección que sugería scp con ESTA role como default. Para el setup del usuario:

HA Yellow (essentials)
  ↑ ↓
  | bellackn.hass_control (Ansible)
  |
Mini-PC (corre el playbook desde repo git)

Abierto / gaps

  • Ingerir el bellackn/ansible-role-hass-control README directo para ver edge cases (qué archivos sí/no se sincronizan).
  • Patrón concreto para HAOS Yellow: ¿la role requiere SSH addon enabled?
  • Cómo se maneja secrets.yaml en este flow (asume Ansible Vault según el blog).