Blitzer.de integration - speed camera for Germany

Hi all,

I’d like to share a custom integration that brings Blitzer.de traffic data into Home Assistant — speed controls and traffic hazards, with a dashboard card of its own.

It is a continuation of the original hass-blitzerde by @timniklas, whose GitHub account and repo are no longer available. A few of us were still relying on it, so I picked it up: github.com/somansch/blitzer

The card

“What is on my way right now”: controls and hazards in one list, nearest first, with a map above them that either mirrors the list or drives it. Three formats — portrait (map over list), landscape (side by side), and minimal, a single line with two numbers and the reports behind it in a pop-up.

Pick the area on the card or pin it to one, switch between controls and hazards, sort by distance, newest or oldest, measure distances from a person or a zone instead of the area’s centre, fold a long list, refresh on demand.

It comes with the integration — nothing to download, no file in www, no resource to register.

Yours to style

Around 190 settings in the editor, each with an “i” explaining it: colour, typeface, size, background and symbol, element by element. No YAML, no card-mod, no CSS.

Same card, same data as above. For dressing a whole dashboard at once there are 132 CSS variables, one per layout setting, documented in the README.

What it reports

For any area or route you configure — a centre point + radius, or a hand-drawn route for your daily commute — everything Blitzer.de knows about that stretch arrives as geo_location entities:

  • Controls / Kontrollen — not just speed cameras. Red light cameras, section controls, tunnel cameras, distance, weight, height and lane checks, entrance and access controls, overtaking bans, police checks and dummies. Seventeen kinds, each tickable on its own, plus Blitzer.de’s archived records (off by default, clearly labelled).
  • Hazards / Gefahren — tailbacks with the length of the queue and the delay it costs, plus accidents, roadworks, obstacles, broken-down vehicles, road blocks and official police bulletins. Ten types, all off until you switch them on.

Features

  • :round_pushpin: Config flow — add as many areas or routes as you like (“Munich”, “Berlin”, “Commute”), each with its own entities and its own device
  • :automobile: Route mode — draw a corridor along waypoints instead of a radius, no external routing engine needed, and edit the waypoints later without redrawing
  • :new_button: “Counts as new for” / “Als neu zählen für” — how long a report counts as new, per area and separately for each half, also as a number entity on the device page. One answer that the card, an automation and a template all read
  • :memo: A ready-made summary on every entity — Stauende · 2.3 km · 34 km/h · +3 min · A100, Berlin — so a card or a notification uses one field instead of six
  • :stopwatch: Controls and hazards poll independently, each with its own interval, count limit, city whitelist, ID blacklist and on-demand refresh action. A tailback is stale within a minute; a permanent roadwork is still there next week
  • :bell: blitzer_new_control and blitzer_new_hazard events — fired only for something genuinely new, never for one already known and never right after a restart
  • :robot: Blueprint “Report Alerts” — live alerts for anything new plus a digest of everything currently reported. Push, notification bell, dashboard helper, text-to-speech, your own actions. No YAML, and it installs itself along with the integration
  • :globe_showing_europe_africa: German and English throughout — config flow, actions, card and count sensors follow your Home Assistant language

Installation

Available as a HACS default repository:

  1. Open HACS in Home Assistant
  2. Search for “Blitzer.de
  3. Click the “Download” button
  4. Restart HA

That is everything: the card and the blueprint come along. Needs Home Assistant 2024.7 or newer. Manual installation instructions are in the README as well.

Also on the standard map card

Every report is a plain geo_location entity, and each entry publishes two sources of its own — blitzer_<name>_controls and blitzer_<name>_hazards — so the built-in map card can show one area, one half, or any combination, with Blitzer.de’s own symbols rather than generic markers.

A note on the data source

There’s no official, documented Blitzer.de API — this integration queries the backend used internally by their map app, the same way several long-standing community projects (Home Assistant, ioBroker, FHEM) do. Blitzer.de’s terms of use don’t really cover this kind of use, so please be aware this sits in a legal gray area — use it at your own risk, same as the projects it’s based on.

Feedback, issues, and PRs are all welcome on GitHub. Hope it’s useful to some of you! I welcome a “star” at my repo, don’t need a coffee :laughing:

1 Like

New release 1.6 is out! Biggest addition: you can now search for cameras along a route instead of just a radius around one point — perfect for your daily commute. Just drop waypoints on the map (same easy drag-the-map flow as the radius picker), set a corridor width, done. No external routing service involved. Waypoints are fully editable afterwards too — reposition, remove, or add more without redrawing the whole route.

Smaller stuff:

  • Whitelist is now a simple comma-separated city list (Berlin,Potsdam) instead of regex — same syntax as the blacklist.
  • A few config flow bugs squashed (blank forms in some cases, waypoint entry stalling after 3 points, whitelist/blacklist not saving when cleared).
  • “Number of sensors” renamed to “Maximum number of cameras” for clarity.

Grab it via HACS or the release. Full changelog here. Feedback/issues welcome on GitHub :waving_hand:

1 Like

I’m not here to piss in your pool. This is a genuine question.

Why not simply use Waze on your mobile or Android Auto headunit if you have one?

  • It doesn’t require you to remember to enter your destination to show you the cams.
  • It’s free & works across the globe (not just in Germany).
  • It warns you visually and audibly when you’re approaching a camera.
  • It doesn’t create a bunch of geolocation sensors or other entities in HA.

I mean, I get it, home automation is cool & all, but sometimes you have to step back & ask yourself whether you really need a home automation project to try to replicate some of the functionality that already exists in a free app.

There seems to be a need for some users. 14 downloads in the first 24 hours of availability…

v2.0.0 released. Now, you can define the schedule for each config entry. In addition, you can use a service action to refresh your defined area or route. Readme is updated with a typical use case automation.

Now, the Google-Map-Card supports native integration of Blitzer.de :slightly_smiling_face:

This integration is now available as a HACS default repository.

v2.1.0 released with:

  • :bell: blitzer_new_camera event - fires the moment a genuinely new camera is reported for an area/route, ready to trigger an automation directly.

See details in readme.

1 Like

Thanks for the first 100 installations! Let me know, when you have an idea for an additional feature.

3.0.0 is out — the biggest release so far. :police_car_light:

:construction: Traffic hazards / Gefahren. Tailbacks, accidents, roadworks, obstacles, broken-down vehicles, road blocks and police bulletins — ten types, each tickable on its own, all off until you switch them on. They get their own map source, update interval and count sensor: a tailback is stale within a minute, a roadwork is still there next week.

:magnifying_glass_tilted_left: Seventeen control kinds instead of four categories that hid them. A tunnel camera, both halves of a section control, a weight check and a plain speed camera were all “fixed” — 98 of 127 in my test data. How a control is installed and what it measures are now two separate axes, so “only section controls” is something you can actually ask for.

:memo: One line per report. Every entity and both events carry a ready-made summary: Stauende · 2.3 km · 34 km/h · +3 min · A100, Berlin. A card or a notification uses one field instead of six.

:bell: A blueprint, “Report Alerts”. Live alerts for anything new, plus a digest of everything currently reported — at a time of day, when you leave a zone, or on demand. Push, notification bell, dashboard helper, TTS, your own actions. No YAML.

:warning: Breaking changes. blitzer.refreshblitzer.refresh_controls, blitzer_new_camerablitzer_new_control, map sources now name their half (blitzer_berlin_controls), and type no longer reports redlight — that moved to the new kind attribute. Count sensors migrate automatically and keep their history.

:open_book: Release notes · Changelog

1 Like

3.1.0 is out — the integration has a dashboard card of its own now.

:joker: A card, in three formats. Controls and hazards in one list, nearest first, with a map above them that either mirrors the list or drives it. Portrait stacks them, landscape puts them side by side, and minimal is a single line with two numbers and the reports behind it in a pop-up. Area picker, filter, sorting by distance/newest/oldest, a foldable list and a refresh button for areas set to poll manually.

:package: Card and blueprint come with the integration. No file to copy into www, no dashboard resource to register, no blueprint to import — and a release that changes the blueprint brings the new version with it.

:artist_palette: Styled without a line of YAML. Around 190 settings in the editor, each with an “i” explaining it: colour, typeface, size, background and symbol, element by element. No card-mod, no CSS. For a whole dashboard at once there are 132 CSS variables, one per layout setting, all documented in the README.

:new_button: “Counts as new for” / “Als neu zählen für”. How long a report counts as new is now a setting of the area — one window for controls, one for hazards, 60 minutes by default — and also a number entity on the device page. The card, an automation and a template all read the same answer, so they can’t disagree about what “new” means.

:open_book: Release notes · Changelog

1 Like

Hi everyone,
I’m Jogi and I’m new here.
I’m currently in the process of setting up my Home Assistant. Unfortunately, I know very little about programming, so I’m just muddling through…
I’d also like to do without my Blitzer.de app, and it would actually be great if Home Assistant could check my location, compare it with the data, and—in case of danger (speed camera alert)—call me and warn me.
I wouldn’t have a speed camera app on my phone, but I’d have the protection I want. Wouldn’t that work in combination with, say, Dawarich?

Best regards

@Jogi_vom_MHW , the idea of this integration is not the replacement of your Blitzer.de app. See it as an addition to get the messages before you are starting your ride, e.g. for your regular trip to work or back.

I see. But sometimes you’re just lost in thought—the best example is the mayor, who got caught by his own speed camera twice. So a reminder would be really nice. Or is the computational load too high for that?
I thought you just had to replace the fixed route with the dynamic position?

Maybe an option could be to add a device tracker as the source for a radius definition…

1 Like

3.2.0 is out — @Jogi_vom_MHW, this one started with your question.

An area can now follow a device tracker instead of sitting on a fixed point. Pick Device tracker (radius) when you add an entry, choose the tracker and a radius, and everything below that is the ordinary area form. Every poll asks where the tracker is and searches that circle, so what you get is what is around the car rather than around the driveway — distances included. Only trackers actually reporting coordinates are offered; one that knows nothing but home and away has no position to put a circle around.

To be clear: this is still not a replacement for the Blitzer.de app, and it is not trying to be. The app watches you continuously and warns you as you approach something. This polls on a clock and tells you what is reported in a circle. It is an addition — know what is on your route before you set off, get a notification when something new turns up in your area, put it on a dashboard. For a live warning in the car, keep the app.

That said, pick the radius against the interval rather than against what looks sensible on a map: at 130 km/h a car crosses a kilometre in 28 seconds, so on a motorway a 3 km circle is far more useful than a 1 km one; in town 1–2 km is plenty. And if you want it to look the moment you move instead of every minute, trigger an automation on the tracker’s latitude attribute and call blitzer.refresh_controls — set the entry’s own interval to 0 and that automation becomes the only thing polling it.

Also fixed: the card sometimes never appeared until the page was reloaded. Home Assistant imports a bundled card exactly once per page, so a single fetch that did not arrive left it missing for as long as that page stayed open. It now arrives through a small loader that keeps trying on its own.

Thanks to everyone using it — the last release passed 278 downloads.

Release notes · Changelog