Generate voice assistant configuration from Home Assistant labels.
Project description
Automatically generate your voice assistant configuration from Home Assistant labels.
🚧 Early development project
Feedback and ideas are welcome.
Why?
Do you maintain dozens of Google Assistant entities manually?
Managing voice assistant configurations manually quickly becomes difficult.
HA Voice Label Sync automatically generates the required configuration from Home Assistant labels, making your labels the single source of truth.
With the current release you can:
Stop maintaining large YAML files manually. Avoid duplicated configuration. Keep Home Assistant as the only place where entities are managed. Generate your configuration in seconds.
Current Status
Project status
HVLS is currently under active development.
Latest stable release: v0.1.2
Current development version: 0.2.0.dev0
Current capabilities:
- Standalone CLI
- Reusable Python core
- Google Assistant YAML generation
- Dry-run support
- Safe atomic file writing
- Automatic backups and retention
- Initial Home Assistant integration skeleton
Not yet available:
- Full Home Assistant configuration UI
- Home Assistant actions and buttons
- Backup restoration from the UI
- HACS installation
HA Voice Label Sync has been designed to support multiple voice assistants.
-
Currently supported :
✅ Google Assistant -
Planned :
Amazon Alexa Apple HomeKit
Instead of maintaining a long list of exposed entities manually, simply assign a label in Home Assistant, run the script, and let HA Voice Label Sync generate the configuration for you.
Features
- Select entities using a Home Assistant label
- Generate
entity_configfor Google Assistant - Use Home Assistant friendly names
- Use Home Assistant areas as Google rooms
- Ignore disabled or hidden entities
- Dry-run mode before writing the file
How it works
Home Assistant
│
▼
Labels
│
▼
Voice Assistant Sync
│
┌──────┴───────┐
│ │
Google Assistant Amazon Alexa
Generated entity_config
switch.prise_pompe:
expose: true
name: Pompe piscine
room: Piscine
Home Assistant configuration
google_assistant:
project_id: YOUR_PROJECT_ID
service_account: !include google_key.json
report_state: true
expose_by_default: false
entity_config: !include google_assistant_entities.yaml
Quick start
Installation
Option 1 – Download the script
Download the latest version of ga_label_sync.py from the repository.
Copy it to your Home Assistant scripts directory.
Typical locations are:
/config/scripts/
or
<home-assistant-config>/scripts/
depending on your Home Assistant installation.
Option 2 – Clone the repository
git clone https://github.com/flimo44/ha-voice-label-sync.git
The script is located in:
scripts/ga_label_sync.py
If you simply want to use the script, downloading scripts/ga_label_sync.py is enough.
Cloning the repository is recommended only if you plan to follow development or contribute to the project.
Usage :
Step 1 — Add the label
Step 2 — Preview the generated configuration
python3 /config/scripts/ga_label_sync.py --label "google_assistant" --dry-run
# --- Couloir ---
lock.serrure_maison:
expose: true
name: Serrure porte entrée
room: Couloir
# --- Jardin ---
switch.portail:
expose: true
name: Portail
room: Jardin
# --- Piscine ---
input_select.piscine_mode_gestion:
expose: true
name: "Piscine - Mode Gestion"
room: Piscine
switch.piscine_chauffage:
expose: true
name: Pac Piscine
room: Piscine
switch.prise_pompe2:
expose: true
name: Pompe piscine
room: Piscine
Step 3 — Generate the file
python3 /config/scripts/ga_label_sync.py --label "google_assistant"
Step 4 — Restart Home Assistant
Step 5 — Synchronize Google Home
Google Home before synchronization
Google Home after synchronization
License MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ha_voice_label_sync-0.2.0.dev0.tar.gz.
File metadata
- Download URL: ha_voice_label_sync-0.2.0.dev0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce13d5c676bbbe0ae83dc394ea8145e94695eeda120c039a794fbb22094b9989
|
|
| MD5 |
8b1aeccb850388329149bb66a852dd90
|
|
| BLAKE2b-256 |
8dcaf16be47e5a09c02d1c76db8eff706ee5b2fc23a4abee10412b663ae321b8
|
Provenance
The following attestation bundles were made for ha_voice_label_sync-0.2.0.dev0.tar.gz:
Publisher:
publish-pypi.yml on flimo44/ha-voice-label-sync
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ha_voice_label_sync-0.2.0.dev0.tar.gz -
Subject digest:
ce13d5c676bbbe0ae83dc394ea8145e94695eeda120c039a794fbb22094b9989 - Sigstore transparency entry: 2170839284
- Sigstore integration time:
-
Permalink:
flimo44/ha-voice-label-sync@a2a3a35c1106b8d3c91018b5378230abeb62c998 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/flimo44
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@a2a3a35c1106b8d3c91018b5378230abeb62c998 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file ha_voice_label_sync-0.2.0.dev0-py3-none-any.whl.
File metadata
- Download URL: ha_voice_label_sync-0.2.0.dev0-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
537ffe1f2a573fda93ce8b1dbfaaeef6b4017bf145e80894094dbe56625bcd1f
|
|
| MD5 |
33df612c54365d56fab34e22225a41c5
|
|
| BLAKE2b-256 |
b4b318330bc2720b335d3942bdf8712461d8b23d47ebfc9e5e9138c07763e169
|
Provenance
The following attestation bundles were made for ha_voice_label_sync-0.2.0.dev0-py3-none-any.whl:
Publisher:
publish-pypi.yml on flimo44/ha-voice-label-sync
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ha_voice_label_sync-0.2.0.dev0-py3-none-any.whl -
Subject digest:
537ffe1f2a573fda93ce8b1dbfaaeef6b4017bf145e80894094dbe56625bcd1f - Sigstore transparency entry: 2170839316
- Sigstore integration time:
-
Permalink:
flimo44/ha-voice-label-sync@a2a3a35c1106b8d3c91018b5378230abeb62c998 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/flimo44
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@a2a3a35c1106b8d3c91018b5378230abeb62c998 -
Trigger Event:
workflow_dispatch
-
Statement type: