Home Assistant

Dagelijks Woord is ook te gebruiken op de Home Assistant domotica software.

Let op: deze pagina bevat diverse links naar externe websites die buiten de verantwoordelijkheid van Stichting Dagelijks Woord vallen. Gebruik op eigen risico.

1. Vraag een API key aan

Vraag een API key voor de REST API aan bij via https://www.dagelijkswoord.nl/verspreiden/json-feed

2. Maak een sensor

In Home Assistant voegt u nu een sensor toe van het type ‘rest’. Zie https://www.home-assistant.io/integrations/rest/ voor documentatie over deze integratie.

De integratie haalt de JSON op van dagelijkswoord.nl via https://feed.dagelijkswoord.nl/api/json/1.0/. De sensor heeft 3 attributes te weten:

  1. ts
  2. source
  3. text
Deze attribute benamingen komen overeen met de benamingen die in de JSON staan.

Eventueel is het mogelijk om enkele sensors van het type platform ‘template’ aan te maken, om bijv. het Bijbelgedeelte en de Bijbeltekst op te halen in losse sensors. Echter, een beperking van een sensor is dat deze maar maximaal 255 karakters kan bevatten. Bij een te lange Bijbeltekst zal de sensor de waarde ‘unknown’ tonen. Een attribute van een sensor heeft deze beperking niet.

U kunt de sensor op meerdere manieren toevoegen:
Methode 1: in configuration.yaml
rest:
  - authentication: basic
    username: your-email@example.com
    password: your-password
    resource: https://feed.dagelijkswoord.nl/api/json/1.0/
    scan_interval: 3600
    headers:
      Content-Type: application/json

    sensor:
        - name: dagelijkswoord
          value_template: 'OK'
          json_attributes_path: "$.data[0]"
          json_attributes:
          - ts
          - source
          - text

        - name: dagelijkswoord_datum
          value_template: '{{ states.sensor.dagelijkswoord.attributes["ts"] }}'
        - name: dagelijkswoord_bron
          value_template: '{{ states.sensor.dagelijkswoord.attributes["source"] }}'
        - name: dagelijkswoord_tekst_hsv
          value_template: '{{ state_attr("sensor.dagelijkswoord", "text")["hsv"]|truncate(254,True) }}'
        - name: dagelijkswoord_tekst_bb
          value_template: '{{ state_attr("sensor.dagelijkswoord", "text")["bb"]|truncate(254,True) }}'

Methode 2: In included bestand
Het bestand, bijvoorbeeld /homeassistant/sensors/dagelijkswoord.yaml, wordt dan included door de volgende regel op te nemen in configuration.yaml: !include_dir_merge_list sensors/
- platform: rest
  name: dagelijkswoord
  json_attributes_path: "$.data[0]"
  json_attributes:
    - ts
    - source
    - text
  resource: https://feed.dagelijkswoord.nl/api/json/1.0/
  username: your-email@example.com
  password: your-password
  # Please do not request more than once an hour. The verse only updates once a day.
  scan_interval: 3600
  value_template: "OK"
  authentication: basic
  headers:
    Content-Type: application/json

- platform: template
  sensors:
    dagelijkswoord_datum:
      friendly_name: Datum
      value_template: '{{ states.sensor.dagelijkswoord.attributes["ts"] }}'
    dagelijkswoord_bron:
      friendly_name: Bron
      value_template: '{{ states.sensor.dagelijkswoord.attributes["source"] }}'
    dagelijkswoord_tekst_hsv:
      friendly_name: BijbeltekstHSV
      value_template: '{{ state_attr("sensor.dagelijkswoord", "text")["hsv"]|truncate(254,True) }}'
    dagelijkswoord_tekst_basisbijbel:
      friendly_name: BijbeltekstBasisBijbel
      value_template: '{{ state_attr("sensor.dagelijkswoord", "text")["bb"]|truncate(254,True) }}'

3. Sensoren en attributen

De sensoren en attributen worden nu getoond in de ‘Ontwikkelhulpmiddelen’ pagina.

De sensor ‘dagelijkswoord_tekst_hsv’ laat hier nu een goede waarde zien, maar bij een Bijbeltekst langer dan 255 karakters werkt dit niet. Gelukkig kunnen we de attributes van de sensor ‘dagelijkswoord’ gebruiken.

4. Toevoegen aan een dashboard

Toevoegen aan lovelace dashboard. Hiervoor kan het beste een kaart van het type ‘markdown’ gebruikt worden. De configuratie ziet er bijvoorbeeld als volgt uit:

type: markdown
content: |-
  {{ state_attr("sensor.dagelijkswoord", "text")["hsv"]|truncate(254,True) }}

  -- {{ state_attr("sensor.dagelijkswoord", "source")}}
title: Dagelijks Woord
In plaats van state_attr kunt u de tekst ook direct uit een state halen: {{states(“sensor.dawonew_tekst_hsv”)}}

Er wordt gebruik gemaakt van de attribute ‘text’ van de sensor ‘dagelijkswoord’. Bij de attribute worden blokhaken gebruikt om de juiste Bijbelvertaling te tonen, in dit geval ‘hsv’ (Herziene Statenvertaling).

5. Resultaat.