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.