Earth Notes: On Website Technicals (2026-06)
Updated 2026-07-03 11:52 GMT.By Damon Hart-Davis.
: RSS Table of Shame
# Greedy podcast feed pullers: keys are MD5 hashed User-Agent.
# A non-empty txt map lookup of the %{md5:%{HTTP:User-Agent}} means bad!
# Built: 2026-06-25T09:43+00:00 (UTC)
# MAXHITSPERUAPERDAY: 10
# MAXUAS: 25
#----------------
# request-count User-Agent
# MD5hash approx-hits-per-day
#----------------
# 202 Spotify/1.0
4582d9bdbcef42af27d89da91c6eb804 202
# 137 Google-Podcast
8dea568b39db0451edd6b30f29238eaf 137
# 95 atomstr/0.9.13
fed9820e6b1b919d848e718e0bf49e41 95
# 61 iTMS
97f76eb7e02c5ff923e1198ff1c288cd 61
# 53 Amazon Music Podc
d69be2563c9f1929edf2906d41809aea 53
# 31 MuckRackFeedParse
62b46fff1cf5f8af7b4b37a2f783b57a 31
# 28 axios/1.6.8
b534882134248c9a5957e0c011a37037 28
# 19 itms
2e7f714a929b3f52f3c094710819a99a 19
# 17 Mozilla/5.0 (Wind
6b9a00393fb1607b0ada13520f814ab5 17
# 16 Mozilla/5.0 Apple
fac378ac3b3d3886829021b3309d4fd1 16
# 11 TPA/1.0.0
86e71fcf5ba78d28f18270f7f83256bb 11
# 10 Mozilla/5.0 (Wind
14d58a1ba286f087d9736249ec785314 10
# 10 AntennaPod/3.11.4
0ca2c2777da1a7c8441ee13bec70fac8 10
: Off Gas
I modified the meter scripts for gas
to stop reporting any values after the end of . They were reporting zeros from then, indefinitely.
They should also be a little more efficiently run now, because I enabled the INPUTGLOB mechanism.
: Rolling Utility kgCO2e
This one had sat on my wish list for a long time!
% sh script/analytic/16WW-elect-CO2-Enphase-FUELINST-last12M.sh -37 -42 -43 -40 -8 11 27 42 52 28 -2 -22 -40
The first value is the total net kg of CO2 equivalent emitted for utility energy over the previous 12 full calendar months. That is the sum of the following 12 values, each of which is for the 12 months in order. These are computed hour by hour with GB grid intensity multiplied by 16WW grid imports/exports. A negative value is good and implies below-zero emissions, ie from exporting to the grid.
In this example, run today: -37kgCO2 12-month total for the months to inclusive, with the month of itself being -42kgCO2e, and the month of at -43kgCO2e ... at -40kg.
This now appears in the energy series data.
Also:
At 16WW over 14 days from 2026-06-08 to 2026-06-22: electricity import 0.4kWh/d (net -12.4kWh/d). At 16WW over 371 days from 2025-06-16 to 2026-06-22: electricity import 3.1kWh/d (net -1.8kWh/d).
: greener!
16WW is getting slightly greener, with ~10kgCO2e extra reduction over a year:
Net electricity utility energy kgCO2e over the last 12 full calendar months: -47
Net kgCO2e for each of the last 12 full calendar months: -43 -40 -8 11 27 42 52 28 -2 -22 -40 -52
: Solstice Uptime
% uptime 10:38:37 up 291 days, 22:09, 1 user, load average: 0.47, 0.46, 0.68
: No Sulphation
Thinking ahead to winter, while I want to more aggressively discharge the lead-acid battery in order to accept and use more of the available off-grid insolation, I do not want to hurt the battery by letting it get low (SoC) and stay low. That might result in sulphation and permanent damage.
So I tweaked the powermng to refuse to do 'e' dumping, ie anything other than 'excess' energy, unless VHIGH has been reached in the last few (~3) days. I re-enabled the 'N' status/guard to do most of that work.
This is not something that happens very often, though December is when it happens most:
% egrep -L " VH " 202512??.log 20251201.log 20251204.log 20251207.log 20251208.log 20251209.log 20251212.log 20251215.log 20251216.log 20251217.log 20251218.log 20251221.log 20251222.log 20251223.log 20251226.log 20251228.log 20251229.log % egrep -L " VH " 2026????.log 20260106.log 20260108.log 20260109.log 20260110.log 20260111.log 20260112.log 20260113.log 20260115.log 20260119.log 20260121.log 20260122.log 20260202.log 20260203.log 20260205.log 20260219.log 20260306.log 20260308.log 20260504.log 20260511.log 20260608.log 20260611.log 20260612.log
: off-grid consumption data series
I have added a new variable for off-grid consumption via the primary controller
cono.
Compare with off-line generation via the same primary controller:
geno.
Now cono is expected to be greater than geno
due to unseen generation from the PWM string, in particular the 100Wp panel, outweighing unseen consumption for charging NiMH (etc) in the kitchen!
The current month cono kWh so far live can be computed with:
% cat /var/log/powermng/202606??.log | \
awk '{mWh += $9/6} END {print(mWh/1000000)}'
6.87408
: Key Move
: Merit Order Working
The grid-sensitive merit order doing its thing. Today Octopus Agile was offering negative retail import prices; my heat battery and DHW cylinder both topped up to the hilt with a total of >10kWh out of ~29kWh generated, resulting in net exports of ~14kWh, minimal around solar noon.
: Poster Print
I have a poster presentation slot for the Doctoral College conference next week. I have sent off for printing the A0 poster [PDF].
House ads off
Since I do not believe that they have generated any revenue at all, I have disabled the house ads for EOU:
: Journal Paper Submitted
I submitted a journal article Grid Flex Rhymes With Derivatives Trading: an Observation
based on the Pint of Science
talk concept
Pint of Science talk [PDF].
End of POTS
We have received at 16WW Towers notices by email and paper letter that our Plain Old Telephone Service over copper wires will terminate in August, and that we just have to plug a box into the (Virgin) WiFi hub and plug our handset into that and all will be well.
Except we do not get Internet service from Virgin, and we have two handsets plugged into phone sockets in corners of the house about as far as possible from the WiFi as is possible. Virgin does not care of course. So I suspect that we will be moving to cheaper VoIP with a third party ahead of this.
: PNG and SVG
While working on my journal paper I (re)discovered that LaTeX includegraphics is unwilling to use SVG graphics, so I fixed script/storesim/load_profile.sh to generate both SVG and PNG. The former will continue to be the preferred target of my HTML as much smaller, but the PNG will allow other uses such as the paper.
(It turns out that PowerPoint is prepared to use SVG, so I have used an SVG chart in my A0 poster in the hope of maximising sharpness.)

