This page collects the dashboard features that are not obvious at first glance: chart gestures, view modes, analytics.
The top row of cards updates in real time over WebSocket — there is no need to reload the page. The readings are power, voltage, current, power factor, energy consumed and cost.
The live indicator shows that the data is fresh. The relay sends it roughly once every 60 seconds — this is a hardware limit of its firmware, not a delay in the program. Short pauses between updates are therefore normal.
There are six modes: Today, Yesterday, Month, Year, Custom and Scope.
In Month and Year arrows appear alongside — they page through periods backwards and forwards. Paging will not go past the available data or into the future: the button simply does nothing.
There are six tabs: power, voltage, current, power factor, energy and bill. The first four are line charts, the last two are bar charts where each bar is one day.
Hold the left mouse button and drag across a line chart — a range is selected, then press Apply. On a phone, press and hold first, then drag. A zoomed chart can be zoomed again, as many times as you like; to go back, pick a mode at the top.
This feature answers the question “how much of my bill goes to high-power appliances, and how much to background consumption”.
The threshold works on the power chart — now partly on its bar view too (Month or Custom, see below) — the energy and bill bar charts still do not have it. Press the ≡ marker above the chart and set a level in watts. On a computer there is a faster way: right-click where the line should go — the level fills itself in. A right-click below the axis clears the threshold. The level you set is remembered in the browser and survives a page reload.
A dashed line appears on the chart, and a summary row above it. Clicking the summary expands the table of individual episodes.
An episode starts at the point where power rises above the threshold and ends when it falls below an exit level set at 80% of the distance between the baseline and the threshold, rather than 80% of the threshold itself. When the baseline is low — the usual case — this gives almost the same result as before. But when the baseline sits close to the threshold, the exit level adapts to that baseline instead of being swallowed by it: the old fixed-80%-of-threshold rule could then never fall below the exit level, merging two independent short loads into one false long episode. When the baseline is at or above the threshold — leaving no gap to work with — the old formula serves as a fallback: 80% of the threshold. The gap between entry and exit remains deliberate: without it, power hovering around the line (a kettle at the end of its boil) would break into five separate episodes instead of one.
A single-point episode is still discarded by default, for the same reason: it is almost always the inrush current of a fridge or air-conditioner compressor rather than an appliance actually running. The exception is when that single point exceeds the threshold by more than 3×: it then counts as an episode after all. Short, powerful appliances — a kettle with little water, a microwave, a coffee machine — sometimes leave exactly one tick above the threshold given the relay's 60-second polling cycle, and without this exception such real, brief activations were being discarded along with genuine compressor noise. The 3× multiplier is a practical cutoff: chosen so a typical compressor's inrush current, which sits close to the threshold, still gets filtered out, while short household appliances — which usually clear the threshold by a much wider margin — no longer do.
A gap in the records longer than three minutes (the program was not running, power or Wi-Fi dropped) splits the episode: what happened during that time is unknown, and the area there must not be filled in. Those three minutes are fixed in the program and not configurable — it is the boundary past which reconstructing consumption between two points stops being an estimate and becomes an invention. The separate Chart Gap Threshold setting only governs when the line breaks visually; set it below three minutes and episodes will split on it instead.
The program totals the energy above the household baseline, not above the threshold itself.
The baseline is estimated separately for each episode: the median of up to five points on either side of it is taken — those that lie below the threshold. If there are no clean neighbours (episodes follow one another closely), a fallback is used — the median of every point in the period that sits below the threshold.
Integration captures half an interval before and after the episode: an appliance switches on instantly, but between ticks we cannot see it, and a trapezoid on the edge segment is the best available estimate of “switched on somewhere in the middle”. For the same reason duration is measured from the middle of the edge interval rather than from tick to tick, so it may differ from the time between the first and last point.
Finally the sum of the episodes is reconciled with the verified consumption for the period — the same figure the energy block shows. Because of that, the total of the kWh column in the table always matches the number in the collapsed row exactly.
It shows: the number of episodes · their combined duration · the baseline estimate · the total kWh and its share of overall consumption for the period.
On the Power tab in Month view, or Custom spanning roughly 2 to 60 days, when the chart draws daily bars and a threshold is set, another clickable row appears above the chart — in the same style as the regular summary. Before you click it, it only invites you to calculate. In Year view and longer Custom ranges, where the bars are monthly, this row is absent.
Clicking it sends a separate request to the server for the raw data across the whole visible period and counts episodes the same way as for a single day. The row's text changes to the number of episodes, their combined duration, the total kWh, and their share of overall consumption for the period — the same number formats as the regular summary, just for the whole period instead of a day. There is no table of individual episodes here, and no ΔU column — just these four numbers. The result stays until the period or the threshold changes; then the invitation to calculate reappears, and the calculation itself does not re-run automatically every time a month is opened.
If a two-zone (day/night) tariff is enabled in settings, two more coloured rows appear below the summary row — one for day, one for night — in the same format as the overall total:
Night: N episodes · duration · kWh
If an appliance ran, say, in the evening and into the night, its energy is split correctly at the actual point where it crosses the zone boundary, rather than being attributed entirely to one zone. The row colours match the day/night colours already used on the Energy/Bill charts.
The split works both for a single day (Today/Yesterday) and for the period total (after clicking “Calculate episodes for period”). If no two-zone tariff is configured, these rows simply don't appear.
| Column | What it means |
|---|---|
| Time | Start of the episode |
| Dur. | Duration |
| Peak/avg, W | Peak power and the average excess over the baseline |
| ΔU, V | Voltage drop: the level just before the episode started, minus the lowest voltage seen while it was running |
| kWh | Episode energy above the baseline |
The appliance itself is not identified: a boiler and a kettle of equal power are indistinguishable. The peak/avg column helps. Close numbers mean a single appliance running steadily (a boiler, an iron). A peak noticeably higher than the average points either to two appliances that partly overlapped, or to one appliance with a cyclic mode that kept rising to full power and falling back.
The ΔU, V column is the voltage sag this particular episode caused: the network voltage right before the load switched on, minus the lowest voltage seen while it was running. It is local to the episode and driven mostly by the resistance of the wiring and meter inside the house, not by the wider grid — the Grid section elsewhere on the dashboard covers that separately.
A row is coloured when the baseline estimate for that particular episode is twice as high or twice as low as the typical one. If a two-zone (day/night) tariff is enabled in settings, the typical value is calculated separately for each time-of-day zone — the episode's baseline is compared against the median baseline of episodes from the same zone only, day and night are never mixed. With a single-zone tariff, the comparison still runs across all episodes in the period, as before. If a zone (or, with a single-zone tariff, the period) has fewer than three episodes, no highlighting appears at all — there isn't enough data for a reliable comparison. Tap the row — the tooltip explains why: this episode's background differs sharply from the median background of other episodes in the same time-of-day zone, a neighbouring episode may have skewed it, or no clean background was found nearby — and shows both figures side by side, the episode's own baseline and the median (per zone, or per period with a single-zone tariff), so the deviation is visible without doing the arithmetic in your head.
This is a warning, not an error. There are usually two causes:
The baseline drifted upwards — another high-power appliance was running nearby, and the points the program took for the baseline actually contained it. Too much was subtracted, and the kWh in the row are understated.
The fallback kicked in — there were no clean neighbours at all, and the period-wide baseline was substituted for the local one. If the load in the house changes over the day (80 W at night, 300 W in the evening), such a figure can be wrong in either direction.
The summary row above the chart is not distorted by highlighted episodes: it is reconciled with the verified consumption for the period. But these individual figures deserve less trust than the rest.
The voltage “before” the episode is a median of up to five preceding points, the same way the baseline is. When fewer than three of those points are usable — a gap in the data, or another episode running right up against this one — the figure is still computed and shown, but from too few points to trust fully. Such cells are underlined; tap to see how many points went into the estimate.
The Peak/avg, W column can also be highlighted orange with a dashed underline — the same visual language as ΔU. It means the episode formally crossed the threshold mainly because the household baseline was already high, not because the appliance itself draws much power.
Tap the cell — the tooltip shows how much the appliance itself added above the baseline at the time, and what that baseline was.
This is a warning, not a filter: the row is neither hidden nor removed from the list — the decision stays with you.
The meter reports roughly once every 60 seconds — a hardware limit of its firmware, not a delay in the program. On long episodes (a boiler, a washing machine) this hardly shows. On short ones — a kettle switched on for three minutes — the error can reach ±20%: everything that happened between two ticks has to be reconstructed with a trapezoid.
The threshold affects neither the bill nor any other figure in the program — for the daily view it is a purely analytical layer, recalculated in the browser with no requests to the server; the exception is the period total, where clicking sends a separate request to the server for raw data.
If a two-zone tariff is configured, a zone switch appears on the energy and bill charts. You can view day, night, or both zones together.
If the program was not running on a given day while the relay kept consuming electricity, the bar for that day is marked as estimated. The difference over the downtime is taken from the relay's cumulative meter and spread evenly.
Such bars are drawn paler — the same colour, but semi-transparent. Estimated days are therefore visible on the chart immediately, without cross-checking anything. A text warning also appears above the chart so these values are not taken for exact measurements.