Changelog

What each version of WallConnectorLog for iOS brought, newest first.

A version gathers a body of work rather than going out one change at a time, so this page moves in steps. Between the steps the work is visible on GitHub, in branches and open issues.

Next

Work on the next version gathers on the dev branch, next to the open issues.

1.2 — 15 October 2026

One addition, on the App Store and tagged v1.2 on GitHub: what each charge cost at the spot price. The prices come from the server, so this needs WallConnectorLog server 1.3 or later with a Swedish price area set in WC_PRICE_AREA, and 1.3.1 for the server's version in Diagnostics. Against an older server, or one without a price area, the app works as it did.

Such a server fetches the day-ahead price for every quarter hour in its area, splits each session's energy by the quarter hour it was drawn in and prices it at that quarter's price, so the time of day a car charges shows in what it cost. It is the spot price alone, excluding VAT; network fees, energy tax and the supplier's margin come on top. Each session's details show that cost under the energy, with the area it was priced in, and Statistics adds it up under the period's energy for the week, the month, the year or all time. When the server could not price every session in the period, a line beneath the tiles says how many were left out of the sum. The cost is in kronor on every phone, since that is what the market quotes, and the CSV export gains two columns at the end, spot_sek and spot_area.

On a server that prices sessions, the spot cost takes the place of the price per kWh typed in Settings, even for a session it could not price, so the two never mix in one sum; the footer under the price says so and names the area. With a server that does not price sessions, the typed price works as before.

The overview gains a tile beneath the six, Spot price with the area, giving the price this quarter hour in kronor per kWh and, while a car is plugged in, what the running session has cost so far; the server updates that figure every five minutes. Diagnostics in Settings now shows the server's version, or Older than 1.3.1 for a server that does not report one. The demo prices its sessions and the running charge in SE3, so all of it can be tried without a server.

1.1 — 28 September 2026

Two additions, on the App Store and tagged v1.1 on GitHub: a technical page with everything the charger reports, and a first home-screen widget. Together they close the 1.1 milestone. Neither needs a server update; both read the live reading the server already relays.

The firmware line at the bottom of the overview now reads Technical information and opens a page that keeps every field the charger reports, as it reports it, where the overview picks the numbers that matter. Charger holds the part number, serial number, firmware version and branch, the backend the charger talks to, its config status, its uptime in days and hours and the three IEEE 1547 compliance checksums. Vehicle and pilot says whether a vehicle is connected and the contactor closed, gives the EVSE state as both code and text, the reasons the charger is not ready and its current alerts (None when the lists are empty, which is the good case), the vehicle current, the session's energy and time, and the pilot and proximity voltages. Grid lists the grid voltage and frequency, the voltage and current of each phase, the neutral current and the voltage on the two relay coils; Temperatures adds the PCBA and MCU to the handle, with the thermopile on the input terminals in microvolts; Network has the SSID, the signal in dBm, the signal-to-noise ratio and signal strength, whether the charger is connected and has internet, and its IP and MAC addresses; Lifetime counters repeats the nine counters from the overview's Lifetime card. A row with no value is left out, and whatever a firmware reports that the page does not know by name lands under Other fields, by its own key, so a new field shows up before the app has learned it. The page polls like the overview, every five seconds while charging and every fifteen otherwise, can be pulled to refresh, and ends with the age of the reading.

The widget comes in a small and a medium size, listed as Charger in the widget gallery. Both show what the charger is doing, with a green dot while charging, a yellow one while a car is plugged in and a grey one otherwise; the small one shortens the state to Charging, Plugged in or Idle, the medium one has room for the charger's own wording. Beneath it sits the power in green while charging, with the session's energy under it, or the latest session's energy when nothing charges, and last how long ago the server read the charger. The medium one adds a column with the session time while charging or the Wi-Fi signal otherwise, the handle temperature and the grid voltage. It refreshes on WidgetKit's schedule — the widget asks to be read again after ten minutes while charging, five when the server cannot be reached and half an hour otherwise — and whenever the app's own polling sees the state, the power or the session's energy move. With no server set the widget says so, when the server cannot be reached it says that instead, and it follows the address whenever it changes in Settings; in demo mode it shows the demo charge.

1.0.1 — 7 September 2026

A small fix on top of 1.0, on the App Store and tagged v1.0.1 on GitHub. The Wi-Fi tile on the overview has opened the charger's signal history since 1.0, but nothing about it said so. It now carries a chevron in its corner, like the Lifetime row, so the tap is there to be found. That closes the 1.0.1 milestone, and nothing else changes.

1.0 — 6 September 2026

The first proper release, on the App Store and tagged v1.0 on GitHub. 0.1 was a trial run to see how the app fared on the App Store; this is the version it was meant to be, and it closes every issue in the 1.0 milestone. Three of the additions — the curve for every session, the Wi-Fi history and the counter comparison — need WallConnectorLog server 1.2 or later.

The server address now takes a public name. Type the name your server sits behind on a reverse proxy and the app talks HTTPS to it on its own, no port and no scheme to remember; a scheme you type is kept, and a private address, a .local name or a hostname without a dot still gets plain HTTP on your own network. Grafana is one tap away: Graphs in Grafana sits on the overview and in About and opens the Grafana your server points to, or the address you set yourself in Settings. Settings has also gained a price per kWh, and a Diagnostics section with the age of the last reading, whether the server's clock agrees with the phone's, and the last poll error if there was one.

The overview's power chart can show 24 hours, 7 days or 30 days, and a Grid quality card beneath it gives the span of voltage and frequency over that range with a voltage chart of its own. Under the power figure the app now says how many phases carry current and how much, so a single-phase charge is visible at a glance, and the car is struck through while nothing is plugged in. The Wi-Fi tile opens a history of the charger's signal and signal-to-noise ratio, and the Lifetime card, which now counts charge starts, opens a comparison of the energy the charger's own counter has delivered with what the server has logged, month by month, with the gap between them.

Sessions shows a total for each month in its section headers, and the whole list can leave the phone as a CSV file through the share sheet. Every session now draws its power curve, not just the recent ones, with temperature and phase-current curves of its own, and each one states its idle time: how long the car sat plugged in without charging, and what share of the session that was. With a price set, the cost of a month and of a session appears next to its energy.

A new Statistics tab sums things up for this week, this month, this year or all time: energy, with its cost when a price is set, the number of sessions, charging time and average power, then energy per day over the last 30 days and per month over the last 12, and a Records and averages card with the largest session, the longest charge and the highest power, each dated, the average charging power, the time plugged in but idle, and the all-time total.

One fix: the demo's earlier sessions draw a real power curve instead of a flat line. As before, English only, iPhone only, iOS 18 or later, free and open source under the MIT licence.

0.1 — 4 September 2026

The first version, on the App Store and tagged v0.1 on GitHub.

It arrives with three tabs. Overview draws the grid, the charger and the car as one picture that lights up green where energy is moving, with the state the charger reports, the power flowing while a car is charging, and the session running right now. Below it sit tiles for phase currents and voltages, handle and electronics temperatures, the charger's Wi-Fi network and the grid readings; a chart of power over the last day; the lifetime counters the charger has kept since it was installed — energy delivered, charging time, connector and contactor cycles, cycles under load, thermal foldbacks, alerts and uptime — and the firmware version, part number and serial number in the footer. Sessions lists the real charge sessions the server has derived, grouped by month, with a session still running shown first under In progress. Each one opens on energy, time plugged in, time actually charging, peak power, peak handle temperature and average grid voltage, and recent sessions draw the power curve behind those figures. This is the part a phone cannot do on its own: the charger keeps no history, so an app that samples only while it is open can never show a truthful list. Settings holds the one thing the app needs, the address of your server, with a Test connection button that says whether it answers. About links the source code, the licence and a donate page for anyone who feels like giving back, and opens your own server's dashboard.

With no server configured the app starts on a hint: type demo in the server field and every screen runs on built-in example data, so all of it can be tried before anything is set up. Plain HTTP is allowed to your own network — private addresses, .local names and hostnames without a dot — which covers a LAN and a VPN alike. English only, iPhone only, iOS 18 or later, free and open source under the MIT licence.