Integrare Home Assistant pentru monitorizarea în timp real a avariilor și întreruperilor de furnizare a apei calde și încălzirii din municipiul București, folosind datele oficiale publicate de Compania Municipală Termoenergetica București (CMTEB).
- 🌟 Caracteristici principale
- 📦 Instalare
- ⚙️ Configurare
- 💡 Exemple de Automatizări
- 📊 Exemple Carduri Lovelace
- ⚖️ Sursă de Date & Disclaimer
- Configurare 100% din interfața vizuală (UI): Fără linii de cod în
configuration.yaml. - Suport multi-adresă: Poți adăuga mai multe adrese/zone (ex: Acasă, Părinți, Birou).
- Căutare inteligentă cu normalizare automată:
- Ignoră automat diacriticele (
ș/ş➔s,ț/ţ➔t,ă/â➔a,î➔i). - Recunoaște abrevierile uzuale (
strada=str,bulevardul=bld,soseaua=sos,aleea=ale, etc.). - Permite căutare după numele străzii, numărul de bloc sau direct după numele punctului termic.
- Ignoră automat diacriticele (
- Entități create pentru fiecare adresă configurată:
- 🔴
binary_sensor.<adresa>_outage: Clasăproblem(Problemă/on= avarie/deficiență activă,OK/off= normal).- Atribute bogate: cauza avariei, tipul agentului afectat, data/ora estimată de remediere, punctul termic și adresa exactă identificată.
- ℹ️
sensor.<adresa>_service_status: Mesaj clar și concis în limba română (ex:Normal,Deficiență apă caldă,Oprire apă caldă,Deficiență încălzire). - ⏳
sensor.<adresa>_time_remaining: Numărătoare inversă formatată în zile și ore până la remediere (ex:13 zile și 11 ore). - ⏱️
sensor.<adresa>_estimated_restoration: Data și ora preconizate pentru repunerea în funcțiune. - 🏙️
sensor.<adresa>_sector_outages: Numărul total de avarii active din întregul sector.
- 🔴
- Interval de actualizare configurabil: Implicit 15 minute (reglabil între 5 și 120 de minute din meniul Configure).
- Bilingv: Suport complet pentru Română și Engleză.
- Deschide HACS în Home Assistant.
- Dă clic pe cele 3 puncte din colțul dreapta-sus și selectează Custom repositories.
- La Repository adaugă URL-ul repository-ului tău:
https://github.com/ygreq/termoalert-ha - La Type / Category selectează Integration.
- Dă clic pe Add.
- Caută acum în HACS TermoAlert București (CMTEB) și apasă Download.
- Repornește Home Assistant (
Settings->System->Restart).
- Descarcă arhiva release-ului sau clonează repository-ul.
- Copiază folderul
custom_components/termoalertîn directorul/config/custom_components/din instanța ta de Home Assistant. - Repornește Home Assistant.
- În Home Assistant, mergi la Settings (Setări) ➔ Devices & Services (Dispozitive și servicii).
- Apasă pe butonul Add Integration (+ Adaugă integrare).
- Caută TermoAlert București (CMTEB).
- Completează datele:
- Sectorul: Selectează sectorul (1 - 6).
- Apasă Submit. Dispozitivul și senzorii vor fi creați automat!
Important
Formatul adreselor în evidențele CMTEB:
În baza de date oficială a Termoenergetica (CMTEB), adresele sunt înregistrate după stradă și indicativul blocului (ex: bl. A1, bl. M12, bl. 403), NU după numărul poștal al străzii (nu se folosesc numere de tipul „nr. 25” sau „nr. 104” pentru imobile colective).
| Ce introduci la căutare | Exemple generice | Ce rezultate primești |
|---|---|---|
| Indicativul blocului tău (Recomandat pentru precizie maximă) | A12 sau bl. 403 |
Alerte strict când blocul tău este afectat de o avarie sau deficiență. |
| Numele străzii | Iancului sau Măgura Vulturului |
Alerte pentru orice avarie de pe acea stradă (chiar dacă afectează alt punct termic sau alt tronson de pe stradă). |
| Numele punctului termic | 21 Pantelimon |
Alerte pentru toate blocurile alimentate de acel punct termic. |
Căutarea include normalizare automată: poți scrie fără diacritice, cu litere mari sau mici, iar abrevierile comune (strada = str, bulevardul = bld, soseaua = sos, aleea = ale) sunt recunoscute automat.
Tip
Stradă sau indicativ de bloc — ce să alegi în practică?
- Căutarea după numele străzii (ex:
Iancului): Este permisă și funcționează perfect. Este ideală dacă locuiești la casă / vilă (fără indicativ de bloc) sau dacă vrei să fii la curent cu orice avarie de pe întreaga stradă. Pe străzile lungi cu mai multe tronsoane sau puncte termice, vei primi însă alerte chiar dacă avaria este la celălalt capăt al străzii, iar la tine funcționează normal. - Căutarea după indicativul blocului (ex:
A12saubl. 403): Este recomandată pentru imobile colective (blocuri), oferind precizie maximă. Primești alertă strict când blocul tău este afectat direct, eliminând orice alertă fals-pozitivă.
🔍 Cum verifici denumirea exactă a blocului sau a punctului termic:
Poți consulta lista oficială actualizată permanent pe site-ul Termoenergetica:
🔗 Funcționare sistem termoficare CMTEB
(Alege sectorul tău și caută strada cu Ctrl + F pentru a vedea denumirea exactă a punctului termic și lista blocurilor arondate).
În rapoartele și comunicatele oficiale CMTEB (Termoenergetica) vei întâlni frecvent aceste prescurtări:
ACC: Apă Caldă de Consum (furnizată la robinet / duș).ÎNC: Încălzire (agentul termic pentru calorifere).Oprire ACC: Furnizarea apei calde este oprită complet.Deficiență ACC: Apa caldă nu este sistată complet, dar este livrată sub parametrii contractuali (debit scăzut sau vine doar călâie/rece din cauza lipsei de presiune sau de temperatură din rețeaua primară).Oprire ÎNC: Furnizarea căldurii în calorifere este oprită complet.Deficiență ÎNC: Agentul termic pentru calorifere este livrat sub parametri contractuali (calorifere doar călâi).
Note
Integrarea TermoAlert interpretează automat aceste coduri tehnice și afișează direct mesaje explicite în limba română în starea senzorului (sensor.<adresa>_service_status).
| Stare senzor | Descriere | Notare tehnică CMTEB |
|---|---|---|
Normal |
Serviciul funcționează în parametri normali (fără avarie) | — |
Deficiență apă caldă |
Apă caldă livrată sub parametri contractuali (apă călâie / debit și presiune reduse) | Deficienta ACC |
Oprire apă caldă |
Furnizarea apei calde este sistată complet | Oprire ACC |
Deficiență încălzire |
Agentul termic pentru calorifere nu atinge temperatura optimă (calorifere călâi) | Deficienta INC |
Oprire încălzire |
Furnizarea încălzirii în calorifere este oprită complet | Oprire INC |
Deficiență apă & căldură |
Atât apa caldă, cât și încălzirea sunt furnizate sub parametri contractuali | Deficienta ACC / INC |
Oprire apă & căldură |
Atât apa caldă, cât și încălzirea sunt oprite complet | Oprire ACC / INC |
alias: "TermoAlert - Comutare Boiler la Avarie"
description: "Pornește boilerul dacă apa caldă este oprită de CMTEB"
trigger:
- platform: state
entity_id: binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage
to: "on"
action:
- service: switch.turn_on
target:
entity_id: switch.boiler_electric
- service: notify.notify
data:
title: "⚠️ Avarie Termoenergetica!"
message: >
S-a oprit apa caldă la adresa ta.
Cauza: {{ state_attr('binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage', 'cauza') }}
Remediere estimată: {{ state_attr('binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage', 'estimare_punere_in_functiune') }}
Boilerul electric a fost pornit automat.alias: "TermoAlert - Oprire Boiler la Remediere"
description: "Oprește boilerul când apa caldă revine la parametri"
trigger:
- platform: state
entity_id: binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage
to: "off"
action:
- service: switch.turn_off
target:
entity_id: switch.boiler_electric
- service: notify.notify
data:
title: "✅ Avarie Termoenergetica Remediată"
message: "Furnizarea apei calde a revenit la normal. Boilerul a fost oprit."Rândurile pentru Timp Rămas și Termen Remediere apar automat doar dacă există o avarie activă (Problemă / on):
type: entities
title: TermoAlert
entities:
- entity: sensor.termoalert_sector_2_elev_stefan_stefanescu_active_outage
name: Avarie Activă
- entity: sensor.termoalert_sector_2_elev_stefan_stefanescu_service_status
name: Stare Serviciu
- type: conditional
conditions:
- entity: binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage
state: "on"
row:
entity: sensor.termoalert_sector_2_elev_stefan_stefanescu_time_remaining
name: Timp Rămas
- type: conditional
conditions:
- entity: binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage
state: "on"
row:
entity: sensor.termoalert_sector_2_elev_stefan_stefanescu_estimated_restoration
name: Termen Remediere
- entity: sensor.termoalert_sector_2_elev_stefan_stefanescu_sector_outages
name: Avarii Sector 2Dacă folosești Mushroom Cards din HACS:
type: vertical-stack
cards:
- type: custom:mushroom-template-card
primary: Termoenergetica (Acasă)
secondary: >
{% if is_state('binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage', 'on') %}
{{ state_attr('binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage', 'agent_afectat') }} - Până la: {{ state_attr('binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage', 'estimare_punere_in_functiune') }}
{% else %}
Serviciu activ în parametri normali
{% endif %}
icon: >
{% if is_state('binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage', 'on') %}
mdi:water-boiler-off
{% else %}
mdi:water-boiler
{% endif %}
icon_color: >
{% if is_state('binary_sensor.termoalert_sector_2_elev_stefan_stefanescu_outage', 'on') %}
red
{% else %}
green
{% endif %}- Datele sunt preluate public din secțiunea oficială Funcționare sistem termoficare a Companiei Municipale Termoenergetica București S.A.
- Acest proiect este o inițiativă independentă open-source și nu este sponsorizat, afiliat sau dezvoltat direct de CMTEB.
- Licență: MIT.
