Integrazione Home Assistant per il calendario raccolta rifiuti Contarina (Treviso).
Riscrittura della versione originale di gianlucaf81: niente più file .ics in www/, niente più ical-sensor esterno.
| v1 | v2 |
|---|---|
Scarica .ics in www/ con urllib + regex |
DataUpdateCoordinator con aiohttp + asyncio.timeout, parsing RFC5545, timezone Europe/Rome, cache offline in .storage/ |
| Aggiornamento solo manuale | Auto-refresh 12h + refresh 00:05 + pulsante |
Richiede ical-sensor + /local/*.ics |
calendar nativa + sensori + binary sensor |
| Nessun sensore | 7 sensori + 2 binary sensor |
| Filtri con riscrittura file | Filtri in-memory (switch + opzioni) |
Manca unload, servizio per-entry |
unload corretto, multi-comune, unique_id per zona |
| Nessuna traduzione/test | it/en, icon.json, test pytest, hassfest + hacs validation |
- HACS → repo custom → Calendario Contarina (oppure copia
custom_components/contarinainconfig/custom_components/). - Riavvia HA.
- Impostazioni → Dispositivi e servizi → Aggiungi → Calendario Contarina → scegli zona.
Icone bidoni servite dall'integrazione su /contarina/contarina-<tipo>.svg: niente da copiare. Solo le Tile con icon: local:contarina-* richiedono una copia una tantum in config/www/custom_icons/ (vedi custom_icons/README.md), altrimenti usa le MDI indicate lì.
calendar.<zona>_calendario_rifiuti— calendario nativo.sensor.<zona>_prossima_raccolta(date) + attributitipi, tipi_lista, giorni_mancanti, prossimi[5].sensor.<zona>_raccolta_rifiuti(label card:Domani · VPL, Umido) +tipi_lista, giorni_mancanti, data.sensor.<zona>_prossimo_secco/_prossimo_umido/_prossima_carta/_prossimo_vpl/_prossimo_vegetale(date per frazione, nota il femminile di carta).binary_sensor.<zona>_esporre_stasera—onse domani c'è raccolta (per badge e automazioni).binary_sensor.<zona>_raccolta_oggi—onse raccolta oggi.button.<zona>_aggiorna_calendario,switch.<zona>_filtro_*(5).
Vedi dashboard-example-bubble.yaml: bottone Bubble con sensor.xxx_raccolta_rifiuti + Markdown foto da tipi_lista. dashboard-example-popup.yaml: tap → popup con calendario mese + prossimi 5 + filtri.
dashboard-rifiuti.yaml: 1 vista Sections pronta — intestazione Bubble, badge condizionali (stasera/oggi), Tile per frazione con giorni_mancanti, lista auto-entities senza Jinja manuale, calendario mese, filtri. Trova e sostituisci ZONA con lo slug del device. Richiede HACS: bubble-card, auto-entities, template-entity-row. Le varianti restano negli altri file. I pezzi separati sono anche in dashboard-example-bubble.yaml (solo Bubble+foto), dashboard-example-tiles.yaml (solo Tile+chip+badge) e dashboard-example-list.yaml (solo lista).
- Cambiare zona senza ricreare: Impostazioni → Integrazione → … → Riconfigura.
- Filtri: Configura (sezioni Frazioni principali / Altre frazioni) oppure gli switch.
- Problemi rete: se Contarina non risponde compare un repair Impostazioni → Riparazioni e i dati restano da cache. Diagnostica scaricabile da … → Scarica diagnostica.
blueprints/automation/contarina/avviso_serale.yaml: alle 20:00 se esporre_stasera=on → notify con tipi + foto primo bidone.
automation:
- alias: "Avvisa raccolta domani"
trigger:
- platform: state
entity_id: binary_sensor.giavera_del_montello_esporre_stasera
to: "on"
action:
- service: notify.mobile_app_telefono
data:
message: "{{ states('sensor.giavera_del_montello_raccolta_rifiuti') }}"- Sorgente:
https://contarina.it/api/?query=genera_ics_calendari&zona={zona}&time=0700 - Refresh 12h + 00:05, timeout 30s, fallback cache
.storage/contarina_zona_<id>.ics. DTSTART:YYYYMMDDTHHMMSS→Europe/Rome. Zero dipendenze extra.
- Dopo un aggiornamento HACS riavvia sempre HA, altrimenti resta caricata la versione vecchia (controlla
"version"incustom_components/contarina/manifest.json). - Entità
unknowndopo il setup: quasi sempre rete/DNS versocontarina.it. Controlla il registro concustom_components.contarina: debugnel logger. - Vedi ancora la 2.5.1 in HACS: … → Riscarica, poi riavvia.