Avertizări meteo - Andrei - 06-20-2025
Update:
-erori rezolvate cu municipiul Bucuresti (nu era afisat)
-eroare rezolvata cu codul rosu
Dacă folosești Home Assistant și vrei să fii cu un pas înaintea vremii, atunci integrarea avertizărilor meteo de la ANM (Administrația Națională de Meteorologie) e o mișcare deșteaptă.
Tot ce-ți trebuie este:
- Home Assistant funcțional
- Acces la fișierul configuration.yaml
Deschide fișierul configuration.yaml
Mergi în Home Assistant, intră în File Editor
Caută fișierul configuration.yaml
Dă scroll până găsești zona cu sensor: sau adaugă la finalul fișierului dacă nu există deja
Adaugă acest cod:
În cod se va înlocui TM cu codul județului dorit (in toate sectiunile de cod), de ex. CS MH GJ etc.
Code: sensor:
- platform: rest
name: met_alerta
resource: https://hass-forum.ro/api/meteo.php
value_template: "OK"
json_attributes:
- alerts
scan_interval: 2700
Salvează și dă un restart la Home Assistant
Mergi la Settings → System → Restart
Card
În cod se va înlocui TM cu codul județului dorit.
Code: type: markdown
content: >
{% set judet = 'TM' %} {% set alerts = state_attr('sensor.met_alerta',
'alerts') %}
{% macro bold_judet(judete, target) -%}
{%- for j in judete %}
{%- if j == target %}
<strong>{{ j }}</strong>{% if not loop.last %}, {% endif %}
{%- else %}
{{ j }}{% if not loop.last %}, {% endif %}
{%- endif %}
{%- endfor %}
{%- endmacro %}
{% if alerts | selectattr('Judete', 'defined') | selectattr('Judete',
'search', judet) | list | length > 0 %}
{% for alert in alerts if judet in alert['Judete'] %}
<div style="border: 2px solid #FF6F00; border-radius: 10px; padding: 15px;
margin-bottom: 15px; background: #FFF8E1; box-shadow: 0 3px 6px
rgba(0,0,0,0.1);">
<h3 style="color: #E65100; font-size: 18px; margin-top: 0;">⚠️ Cod {{ alert['Cod'] }}</h3>
<p><strong>? Fenomene:</strong> {{ alert['Fenomene'] }}</p>
<p><strong>? Perioadă:</strong> {{ alert['Interval'] }}</p>
<p><strong>? Județe afectate:</strong> {{ bold_judet(alert['Judete'], judet) }}</p>
</div>
{% endfor %}
{% else %} <div style="padding: 15px; border-radius: 10px; background:
#E0F2F1; color: #004D40;">
✅ Nicio alertă meteo pentru județul <strong>{{ judet }}</strong>.
</div> {% endif %}
Automatizari
Pentru automatizari vom avea nevoie de inca un senzor in configuration.yaml:
Code: template:
- sensor:
- name: "Avertizare Meteo"
unique_id: alerta_meteo_senzor
state: >
{% set judet = 'TM' %}
{% set alerts = state_attr('sensor.met_alerta', 'alerts') %}
{% set cod = namespace(val='off') %}
{% if alerts %}
{% for alert in alerts %}
{% if judet in alert['Judete'] %}
{% if 'Cod' in alert %}
{% set cod.val = alert['Cod'] %}
{% endif %}
{% break %}
{% endif %}
{% endfor %}
{% endif %}
{{ cod.val }}
attributes:
judet: TM
Cod automatizare (notificari):
Code: alias: "[Meteo] Notificare avertizare nouă"
description: "Gestionează toate notificările pentru avertizări meteo"
trigger:
- platform: state
entity_id: sensor.avertizare_meteo
not_from: "unavailable"
condition: []
action:
- choose:
- conditions:
- condition: template
value_template: "{{ trigger.from_state.state == 'off' and trigger.to_state.state != 'off' }}"
sequence:
- service: notify.notify
data:
title: "⚠ Avertizare Meteo Nouă ⚠"
message: "A apărut o nouă avertizare - COD: {{ trigger.to_state.state }}"
- conditions:
- condition: template
value_template: "{{ trigger.from_state.state != 'off' and trigger.to_state.state == 'off' }}"
sequence:
- service: notify.notify
data:
title: "✅ Avertizări încheiate"
message: "Toate avertizările meteo au expirat"
- conditions:
- condition: template
value_template: "{{ trigger.from_state.state != 'off' and trigger.to_state.state != 'off' and trigger.from_state.state != trigger.to_state.state }}"
sequence:
- service: notify.notify
data:
title: "? Actualizare Avertizare Meteo"
message: >-
Avertizare modificată:
{{ trigger.from_state.state }} → {{ trigger.to_state.state }}
default: []
mode: single
![[Image: WhatsApp-Image-2025-06-28-at-13.48.04_75...68x670.jpg]](https://andreidima.ro/wp-content/uploads/2025/06/WhatsApp-Image-2025-06-28-at-13.48.04_7555fece-768x670.jpg)
RE: Avertizări meteo - another_andrew - 07-04-2025
Ideea e super utila, o aveam si eu in lucru de ceva timp, dar nu am finalizat-o.
Eu am reusit sa preiau datele direct din feed-ul lor RSS https://www.meteoromania.ro/avertizari-rss.php, citit in HA, fara un server intermediar. Ar fi excelent daca ai putea modifica integrarea sa nu mai depinda strict de serverul tau. Au si un API XML.
RE: Avertizări meteo - Andrei - 07-05-2025
(07-04-2025, 02:01 PM)another_andrew Wrote: Ideea e super utila, o aveam si eu in lucru de ceva timp, dar nu am finalizat-o.
Eu am reusit sa preiau datele direct din feed-ul lor RSS https://www.meteoromania.ro/avertizari-rss.php, citit in HA, fara un server intermediar. Ar fi excelent daca ai putea modifica integrarea sa nu mai depinda strict de serverul tau. Au si un API XML. Salut. Mi-a fost mai ușor sa interpretez datele într-un api propriu. Plus ca ideea era să preiau date din mai multe locuri. Dacă ai reușit să reproduci codul cu preluare din api-ul lor direct, poți să postezi codul pentru cei care nu vor api intermediar
RE: Avertizări meteo - Tibrox - 07-25-2025
Multumesc frumos am tot cautat asa ceva acum incerc sa-l instalez poate o sa am nevoie de ajutor sunt incepator
(06-20-2025, 07:02 PM)Andrei Wrote: Update:
-erori rezolvate cu municipiul Bucuresti (nu era afisat)
-eroare rezolvata cu codul rosu
Dacă folosești Home Assistant și vrei să fii cu un pas înaintea vremii, atunci integrarea avertizărilor meteo de la ANM (Administrația Națională de Meteorologie) e o mișcare deșteaptă.
Tot ce-ți trebuie este:
- Home Assistant funcțional
- Acces la fișierul configuration.yaml
Deschide fișierul configuration.yaml
Mergi în Home Assistant, intră în File Editor
Caută fișierul configuration.yaml
Dă scroll până găsești zona cu sensor: sau adaugă la finalul fișierului dacă nu există deja
Adaugă acest cod:
În cod se va înlocui TM cu codul județului dorit (in toate sectiunile de cod), de ex. CS MH GJ etc.
Code: sensor:
- platform: rest
name: met_alerta
resource: https://hass-forum.ro/api/meteo.php
value_template: "OK"
json_attributes:
- alerts
scan_interval: 2700
Salvează și dă un restart la Home Assistant
Mergi la Settings → System → Restart
Card
În cod se va înlocui TM cu codul județului dorit.
Code: type: markdown
content: >
{% set judet = 'TM' %} {% set alerts = state_attr('sensor.met_alerta',
'alerts') %}
{% macro bold_judet(judete, target) -%}
{%- for j in judete %}
{%- if j == target %}
<strong>{{ j }}</strong>{% if not loop.last %}, {% endif %}
{%- else %}
{{ j }}{% if not loop.last %}, {% endif %}
{%- endif %}
{%- endfor %}
{%- endmacro %}
{% if alerts | selectattr('Judete', 'defined') | selectattr('Judete',
'search', judet) | list | length > 0 %}
{% for alert in alerts if judet in alert['Judete'] %}
<div style="border: 2px solid #FF6F00; border-radius: 10px; padding: 15px;
margin-bottom: 15px; background: #FFF8E1; box-shadow: 0 3px 6px
rgba(0,0,0,0.1);">
<h3 style="color: #E65100; font-size: 18px; margin-top: 0;">⚠️ Cod {{ alert['Cod'] }}</h3>
<p><strong>? Fenomene:</strong> {{ alert['Fenomene'] }}</p>
<p><strong>? Perioadă:</strong> {{ alert['Interval'] }}</p>
<p><strong>? Județe afectate:</strong> {{ bold_judet(alert['Judete'], judet) }}</p>
</div>
{% endfor %}
{% else %} <div style="padding: 15px; border-radius: 10px; background:
#E0F2F1; color: #004D40;">
✅ Nicio alertă meteo pentru județul <strong>{{ judet }}</strong>.
</div> {% endif %}
Automatizari
Pentru automatizari vom avea nevoie de inca un senzor in configuration.yaml:
Code: template:
- sensor:
- name: "Avertizare Meteo"
unique_id: alerta_meteo_senzor
state: >
{% set judet = 'TM' %}
{% set alerts = state_attr('sensor.met_alerta', 'alerts') %}
{% set cod = namespace(val='off') %}
{% if alerts %}
{% for alert in alerts %}
{% if judet in alert['Judete'] %}
{% if 'Cod' in alert %}
{% set cod.val = alert['Cod'] %}
{% endif %}
{% break %}
{% endif %}
{% endfor %}
{% endif %}
{{ cod.val }}
attributes:
judet: TM
Cod automatizare (notificari):
Code: alias: "[Meteo] Notificare avertizare nouă"
description: "Gestionează toate notificările pentru avertizări meteo"
trigger:
- platform: state
entity_id: sensor.avertizare_meteo
not_from: "unavailable"
condition: []
action:
- choose:
- conditions:
- condition: template
value_template: "{{ trigger.from_state.state == 'off' and trigger.to_state.state != 'off' }}"
sequence:
- service: notify.notify
data:
title: "⚠ Avertizare Meteo Nouă ⚠"
message: "A apărut o nouă avertizare - COD: {{ trigger.to_state.state }}"
- conditions:
- condition: template
value_template: "{{ trigger.from_state.state != 'off' and trigger.to_state.state == 'off' }}"
sequence:
- service: notify.notify
data:
title: "✅ Avertizări încheiate"
message: "Toate avertizările meteo au expirat"
- conditions:
- condition: template
value_template: "{{ trigger.from_state.state != 'off' and trigger.to_state.state != 'off' and trigger.from_state.state != trigger.to_state.state }}"
sequence:
- service: notify.notify
data:
title: "? Actualizare Avertizare Meteo"
message: >-
Avertizare modificată:
{{ trigger.from_state.state }} → {{ trigger.to_state.state }}
default: []
mode: single
![[Image: WhatsApp-Image-2025-06-28-at-13.48.04_75...68x670.jpg]](https://andreidima.ro/wp-content/uploads/2025/06/WhatsApp-Image-2025-06-28-at-13.48.04_7555fece-768x670.jpg)
Codul pt card unde bagi?mersi
O eroare? - Bud - 08-09-2025
Frumos lucrat! O problemă. Eu am pus la filtru B (București). Constat că îmi adaugă Bucureștiul la listă de capul lui! (am pus original de la ANM si rezultatul din HA).
Sau: la site-ul ANM zice "COD ROȘU
Interval de valabilitate: 11 august, ora 10 – 12 august, ora 10
Fenomene vizate: val de căldură intens și persistent, caniculă, disconfort termic deosebit de accentuat, noapte tropicală
Zone afectate: județele Mehedinți și Dolj
Noi primim: Cod ROSU
Fenomene: vijelii puternice
Perioadă: 10 august, 10:00 - 12 august, 10:00
Județe afectate: B, DJ, MH
RE: Avertizări meteo - cata2k2k - 10-11-2025
Salut, e frumos dar apare ciudat ?!
⚠️ Cod GALBEN
? Fenomene: intensificări ale vântului
? Perioadă: 01 January, 02:00 - 11 October, 23:00
? Județe afectate: TL, CT, GL, VN, CV, BV, MH, BT, IS, VS, SV, NT, BC
01 January ???
|