brugbericht.nl

Open API voor brugopeningen

brugbericht.nl heeft een open API. Je krijgt de live status van de Spijkenisserbrug, de verwachte opening en de schepen op de Oude Maas als JSON. Gratis, zonder sleutel en zonder account. Voor eigen gebruik en voor je huisautomatisering. Laat je de gegevens ergens zien? Noem dan de bron: “bron: brugbericht.nl”.

GET /api/state

Eén adres, één antwoord in JSON. Elke website en elk programma mag het lezen (CORS staat open).

curl https://brugbericht.nl/api/state

Let op: forecast en predictions zijn voorspellingen. Ze kunnen fout zijn. bridgeStatus is een waarneming van de brug zelf. De belangrijkste velden:

generatedAt
Tijd van dit antwoord (ISO 8601, UTC).
source
"live" of "demo". Bij "demo" is de scheepsdata uitgevallen. De schepen in het antwoord zijn dan niet echt.
bridge
De brug: id, name, lat en lon.
forecast.signal
Wat we voor de komende 30 minuten verwachten. "open_soon": de brug gaat waarschijnlijk open. "maybe": misschien. "closed": geen opening verwacht. "blocked": een geplande afsluiting, de brug gaat nu niet open. "unknown": we hebben te weinig gegevens.
forecast.nextOpeningAt
Onze beste schatting van de volgende opening (ISO 8601). null als we geen opening verwachten.
forecast.headline
Eén zin in het Nederlands, bijvoorbeeld "Brug gaat over ~12 min open voor MSTX 15".
bridgeStatus.isOpen
Staat de brug nu open? Dit is een waarneming (NDW of isdebrugopen.nl), geen voorspelling. bridgeStatus kan ontbreken als geen bron antwoordt. Met "stale": true is de waarde oud.
bridgeStatus.lastOpenedAt
Begin van de laatste waargenomen opening (ISO 8601) of null.
ships[]
De schepen op de Oude Maas bij de brug. Per schip onder andere mmsi, name, typeName (bijvoorbeeld "Cargo Vessel"), lengthM, direction en etaS: het aantal seconden tot het schip bij de brug is. etaS is null als het schip niet naar de brug vaart.
predictions[]
Per schip (mmsi) de kans pOpen, van 0 tot 1, dat dit schip een opening nodig heeft. Met reasons: korte redenen in het Nederlands. Dit is een schatting van een model, geen feit.

De volledige lijst met velden staat in het contract van de API (shared/contract.ts). Velden met een vraagteken kunnen ontbreken.

Cache en fair use

De server bewaart het antwoord 10 seconden (Cache-Control: public, max-age=10). Vaker vragen geeft geen nieuwere gegevens. Vraag het adres daarom hooguit elke 15 seconden op. Voor een sensor thuis is elke 30 seconden genoeg. Haal je veel vaker op, dan kunnen we je adres blokkeren.

Home Assistant

Met de ingebouwde rest-integratie heb je geen extra software nodig. Zet dit in configuration.yaml en start Home Assistant opnieuw. Je krijgt een sensor met de verwachting (open_soon, maybe, closed, blocked of unknown), een sensor met de tijd van de volgende opening en een binaire sensor die zegt of de brug nu open staat.

# configuration.yaml
rest:
  - resource: https://brugbericht.nl/api/state
    scan_interval: 30
    sensor:
      - name: "Spijkenisserbrug verwachting"
        value_template: "{{ value_json.forecast.signal }}"
        json_attributes_path: "$.forecast"
        json_attributes:
          - headline
          - nextOpeningAt
      - name: "Spijkenisserbrug volgende opening"
        device_class: timestamp
        value_template: "{{ value_json.forecast.nextOpeningAt or none }}"
    binary_sensor:
      - name: "Spijkenisserbrug open"
        value_template: >-
          {{ value_json.bridgeStatus.isOpen
             if value_json.bridgeStatus is defined else false }}

Een automatisering kan dan starten als de sensor Spijkenisserbrug verwachting op open_soon springt. Bijvoorbeeld: een lamp die oranje wordt, of een melding op je telefoon.

Homey en andere systemen

Er is nog geen officiële BrugBericht-app voor Homey. Gebruik in een Flow een HTTP-verzoek (GET) naar https://brugbericht.nl/api/state, bijvoorbeeld met de app “HTTP request flow cards”, en lees forecast.signal uit het antwoord. Een webhook die wij naar jou sturen als de brug open gaat, is er nog niet. Wil je die? Mail ons.

Elk systeem dat een URL kan lezen, werkt: Node-RED, ioBroker, Domoticz, een Siri-opdracht (Opdrachten: “Inhoud van URL ophalen”) of een eigen script.

GET /api/openings

Nieuw: dit adres geeft de laatste brugopeningen (tijd, duur, schip) en de cijfers per dag, per uur en in de spits als JSON. Het is net nieuw, de velden kunnen nog veranderen; dezelfde gegevens staan als pagina op brugopeningen Spijkenisserbrug.

Voorwaarden

De voorwaarden van brugbericht.nl gelden ook voor de API. We geven geen garantie: gegevens kunnen te laat komen, ontbreken of fout zijn, en de API kan zonder bericht veranderen of stoppen. Gebruik de API niet om te beslissen of je de brug of het water nog veilig kunt passeren. Volg altijd de lichten, de slagbomen en de borden bij de brug.

Vragen, een idee of een link naar wat je hebt gebouwd? Stuur een e-mail naar info@brugbericht.nl.