home assistant
home assistant

Dacă folosești Home Assistant și vrei să fii cu un pas înaintea vremii, atunci integrarea avertizărilor meteo e o mișcare deșteaptă.

În acest tutorial scurt și la obiect, îți arăt cum să creezi un sensor personalizat care trage automat datele oficiale direct de pe site-ul meteoromania.ro (prin intermediul unui API intermediar ușor de folosit). Vei putea apoi afișa avertizările meteo direct în dashboard-ul tău sau să declanșezi automatizări atunci când apar coduri galbene, portocalii sau roșii.

home assistant

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 (sau te conectezi prin SSH dacă ești old school).
  • 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:

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 SettingsSystemRestart
  • Sau rulează în terminal:
ha core restart

Card meteo

În cod se va înlocui TM cu codul județului dorit.

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 %}

Dacă ai o sugestie sau nu merge ceva, poți cere ajutor aici: Avertizări meteo ANM

Automatizare

Cod exemplu pentru notificări:

Configuration.yaml

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

În cod se va înlocui TM cu codul județului dorit.

Cod automatizare:

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

Un comentariu la „Home Assistant – Avertizari meteo”
  1. Salut,

    De ce difera averizarea primita in HA fata de cea de pe siteul https://www.meteoromania.ro/avertizari/?
    De exemplu in Ilfov in HA am: ⚠️ Cod ROSU
    🌩 Fenomene: vijelii puternice

    🕒 Perioadă: 07 October, 10:00 – 08 October, 23:00

    📍 Județe afectate: CT, IL, CL, B, IF, GR, CV

    iar pe siteul meteoromania.ro mentioneaza alt interval orar si alte fenomene:
    COD ROȘU
    Interval de valabilitate: 7 octombrie, ora 21 – 8 octombrie, ora 15
    Fenomene vizate: ploi torențiale și abundente
    Zone afectate: județele Constanța, Călărași, Ialomița, Giurgiu, Ilfov și în municipiul București

    În județele Constanța, Călărași, Ialomița, Giurgiu, Ilfov și în municipiul București va ploua torențial și abundent, izolat se vor semnala descărcări electrice, iar în intervale scurte de timp sau prin acumulare vor fi cantități de apă de 80…100 și izolat 120…140 l/mp.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *