NL-alert voor Home Assistant

NL-alert voor Home Assistant

25 oktober 2022 0 Door Ivo

Na de P2000 in Home Assistant wil ik ook het NL-Alert in HA krijgen.

Bij een ramp in je omgeving ontvang je ontvangt NL Alert op je mobiel.
Ook is NL-Alert te zien op steeds meer digitale reclameborden en reisinformatieschermen in het openbaar vervoer.

Maar we willen de NL-Alerts ook zichtbaar hebben in Home Assistant!

Daarvoor zet je onderstaande in je configuration.yaml

sensor:
  - platform: scrape
    name: "NL-Alert Datum & Tijd"
    resource: https://crisis.nl/nl-alert/nl-alerts/
    select: "#content > div:nth-child(4) > a > h3"
  - platform: scrape
    name: "NL-Alert tekst"
    resource: https://crisis.nl/nl-alert/nl-alerts/
    select: "#content > div:nth-child(4)"
  - platform: scrape
    name: "NL-Alert"
    resource: https://crisis.nl/nl-alert/nl-alerts/
    select: "#content > div:nth-child(4) > a > p"
    value_template: '{{ "veilig" if "Situatie is weer veilig." in value else "niet veilig" }}'
  - platform: scrape
    name: "NL-Alert ingetrokken"
    resource: https://crisis.nl/nl-alert/nl-alerts/
    select: "#content > div:nth-child(4) > a > p"
    value_template: '{{ "ingetrokken" if "ingetrokken" in value else "Niet ingetrokken" }}'
    scan_interval: 600
  • omdat NL alert niet altijd aangeeft dat de situatie veilig is maar bijvoorbeeld aangeeft “NL-Alert voor brand in Den Helder is ingetrokken.” Heb ik de 4de sensor gemaakt om te kijken of de melding is ingetrokken.

Nu de Lovelace, maak een nieuwe kaart.

NL alert

type: conditional
conditions:
  - entity: sensor.nl_alert
    state_not: Veilig
card:
  type: markdown
  content: >-
    <ha-alert alert-type="error"><b>Afgegeven op: {{
    states('sensor.nl_alert_datum_tijd') }} </ha-alert></b><br>

       {{ states('sensor.nl_alert_tekst') }} 
  title: NL Alert

NL-alert lovelace

ook kun je natuurlijk de sensors in een lijstje zetten

 

 

HACS

NL-alert kaart

Wanneer je HACS hebt geïnstalleerd kun je Multiscrape installeren.
Na installeren herstarten, daarna kun je het volgende in configuration.yaml zetten:

multiscrape:
  - name: HA scraper
    resource: https://crisis.nl/nl-alert/nl-alerts/
    scan_interval: 3600
    sensor:
      - unique_id: nl_alert_state
        name: NL-Alert
        select: "#content > div:nth-child(4) > a > h3"
        value_template: '{{ "Actief" if  "ACTIEF" in value else "Geen actieve NL Alerts" }}'
        attributes:
          - name: Melding
            select: "#content > div:nth-child(4) > a > p"
          - name: Datum & Tijd
            select: "#content > div:nth-child(4) > a > h3"
            value_template: >
              {{ value.split('ACTIEF')[-1].strip() if 'ACTIEF' in value else value.strip() }}
          - name: Meer informatie
            select: "#content > div:nth-child(4) > a"
            attribute: href

  - name: NL
    button:
      unique_id: refresh_map
      name: Kaart laden
    resource_template: http://www.crisis.nl{{ state_attr('sensor.nl_alert_state', 'meer_informatie') }}
    scan_interval: 3600
    sensor:
      - unique_id: nl_alert_kaart
        name: Kaart
        value_template: "Kaart"
        attributes:
          - name: URL
            select: "#main > div.wrapper > div.googlemaps > img"
            attribute: src

De kaart update niet automatisch, daarvoor moet je een automation maken, onderstaand de code daarvoor.

alias: Kaart ophalen bij NL Alert
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.nl_alert_state
condition: []
action:
  - service: button.press
    data: {}
    target:
      entity_id: button.refresh_map
mode: single

De code voor bovenstaande melding+kaart:

type: conditional
conditions:
  - entity: sensor.nl_alert_state
    state: Actief
card:
  type: markdown
  content: >-
    <ha-alert alert-type="error"><b>{{ state_attr('sensor.nl_alert_state',
    'datum_tijd') }}</b>

    {{ state_attr('sensor.nl_alert_state', 'melding') }}

    </ha-alert>

    ![]({{ state_attr('sensor.nl_alert_kaart', 'url') }})
    [Meer Informatie](https://www.crisis.nl{{ state_attr('sensor.nl_alert_state', 'meer_informatie') }})

 

 

 

Inspiratie voor dit artikel vond ik deels op Tweakers.net, de eer gaat naar de gebruiker Toppe

NL-Alert