
NL-alert voor Home Assistant
Na de P2000 in Home Assistant wil ik ook het NL-Alert in HA krijgen.
Helaas is crisis.nl gewijzigd en werkt het niet meer.
Bij een ramp in je omgeving ontvang je een 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, pas de binary sensor aan voor jouw woonplaats.
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 template: - binary_sensor: - name: "NL-Alert in de regio" state: >- {% set woonplaats = 'Maastricht' %} {% set checklist = [ woonplaats | lower, 'testbericht' ] | join('|') %} {% set message = state_attr('sensor.nl_alert_state', 'melding') | lower %} {{ message is search(checklist) and not message is search('ingetrokken|afgemeld|einde berichtgeving') }}
- 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.
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
Ook kun je natuurlijk de sensors in een lijstje zetten.
HACS
Wanneer je HACS hebt geïnstalleerd kun je Multiscrape installeren.
Na installeren herstarten, daarna kun je het volgende in
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, onderstaande 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
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>  }}) [Meer Informatie](https://www.crisis.nl{{ state_attr('sensor.nl_alert_state', 'meer_informatie') }})
WhatsApp melding
Heb je de nieuwe Whatsapp add-on?
De automation voor een NL-alert melding via WhatsApp. Pas de plaatsnamen aan voor jouw regio! En natuurlijk het nummer.
alias: "NL-Alert: bericht" description: "" trigger: - platform: state entity_id: - sensor.nl_alert_state to: "on" condition: - condition: template value_template: >- {{ states('sensor.nl_alert_melding') is search('maastricht|meerssen|beek|umond|born|geleen|stein|sittard|amstenrade|schinnen|beekdalen|mijnstreek|testbericht|test|',ignorecase=True) }} action: - service: whatsapp.send_message data: clientId: default to: 31687654321@s.whatsapp.net #jouw nummer body: text: >- Er is een NL-Alert afgegeven in de regio, {{ state_attr('sensor.nl_alert_state', 'melding') }} mode: single
Nice 😉