Since 2026 every forecourt in the UK has to publish its prices within 30 minutes of changing them, and the government shares the lot as open data. This build puts those prices on the wall panel's map. It reads the work van's real fuel level from its tracker and warns Kev's phone when the tank gets low, naming the best places to fill. It also checks, week by week, whether the business fuel card is actually cheaper than the pumps. The card's price arrives by text every Friday, and now that text updates Home Assistant by itself.
Fuel Finder is a legal requirement, not a website. Since February 2026 every UK forecourt must report a price change within 30 minutes, and the regulator can fine the ones that don't. The data comes two ways: an API with 30-minute freshness that needs a free registration, and a CSV of every station that needs nothing at all. This build uses the CSV: about 7.8 MB, refreshed twice a day. A small service on the Pi checks it every fifteen minutes with a conditional request, so an unchanged file costs one tiny "not modified" reply.
The van already carried a Teltonika OBD tracker for the Traccar map. It turns out it reads the engine computer's fuel-level value too, reported to Traccar as a bare number with no label. It only arrives while the engine is running, so the service keeps the last reading while the van is parked.
Pairs of readings 40 km or more apart, with no fill-up between them, give the van's real consumption: about 0.16% of the tank per kilometre, or 11 L/100 km. That turns a percentage into miles you can drive.
A jump of 12 points or more is a fill-up. It's matched to the forecourt where the van last parked, which is the groundwork for a fuel log with litres, cost and real mpg.
The van's card now shows its fuel level and range next to its speed and battery voltage, with a gauge that turns red below the alert level.
A station nine miles away can be 7p a litre cheaper and still cost more, because you burn fuel getting there and back. So the recommendations rank by value: the price times the litres needed to fill the tank, plus the fuel for the round trip, taking the road as about 1.35 times the straight-line distance. When the van's level drops below the alert threshold (15% by default), Kev's phone gets one alert per low spell with the best three places and a navigation button. It re-arms after the next fill-up.
At 10% there are about 63 litres to put in. Saving 7p a litre saves about £4.40, but getting there and back is about 24 miles by road, which burns about £8 of fuel. The value ranking sees that; a plain price sort doesn't. The first alert went out for real, at 10% with about 39 miles left.
On the Traccar tab a new Fuel button puts price pins on the map, coloured from cheapest (green) to dearest (red), with the three cheapest in view numbered and listed. A selector switches between diesel, petrol, super and premium diesel. A Fuel map button opens a full map with a ranked list around the van or the house, sortable by value, price or distance. Tap a station to see every grade with how fresh each price is, its hours, and a button that sends it to the phone with directions.
The van runs on a UK Fuels card, fuelplus through Radius, with a fixed weekly diesel price quoted without VAT and valid from Monday. At the supermarket forecourts that take it the price is a little higher: 3p more in September. So every station that takes the card shows both prices, card | pump, with VAT added to the card price so the two compare fairly. The dearer half is greyed, and the station's own panel says plainly which way to pay.
With VAT added, this week's card price beat only 10 of 169 pumps within ten miles. The supermarkets' own pumps were cheaper than the card's supermarket price every time. Next week's card price is lower, but 130 pumps are still cheaper. Kev had suspected as much. Now the map shows it at a glance, every week, without anyone doing the maths.
Radius texts next week's card price every Friday afternoon. The plan was for the phone's Home Assistant app to read the notification. That sensor turned out not to exist in this build of the app, so a free automation app, MacroDroid, now does one job: when a text arrives containing "fuel price", it sends that text, and nothing else, to a private Home Assistant webhook. A script reads the week and the price, stores it as next week's price and sends a summary. At midnight on Monday it becomes the current price.
A notification sensor would have passed every message to Home Assistant. MacroDroid only fires on the fuel text. The webhook address is kept in Home Assistant's secrets file, and Home Assistant showed it to Kev in its own notifications, so it never went through a chat.
The first real test never arrived. Home Assistant's log showed MacroDroid sends GET by default, and the webhook only accepted POST. It accepts both now, with the text in the address's query string.
The text lands at five o'clock on a Friday, often on the road. The webhook is reachable through the house's secure public address, and was tested from outside before it was trusted.
No paid price feed, no fuel-card API, nothing new in the van. The government's open data gives every pump price, the tracker that was already there gives the fuel level, and the supplier's own Friday text keeps the card price current. What's next: the 30-minute API once it's registered, a fuel log with real mpg, and asking Luna "where's the cheapest diesel?"