Energy Solutions in the AI era
Tl;DR
How about doing energysolutions NOW?

+++ Solar assisted heat pump simulation (SAHP)
Intro
Coming from these next steps to improve the existing features.
Its just all about heat pumps.
The experiment
In retrospective, 12m2 of solar panels are enough to pay no electricity bill in south Spain.
Poprawne podsumowanie:
- Prąd: ~100 kWh/m (avg 95.9)
- Ciepło worst month: ~2.5 GJ (Feb 2025) ≈ 684 kWh thermal
- Ciepło avg: ~0.8 GJ/m ≈ 220 kWh thermal/m
But how can we now this in advance?
Ive also seen invoices with less than 100kwh in regular months, then spike to 360wkh in august
Guess why :)
git clone /poc
cd ./poc/go-solar-trajectory
#npm run build
#npx wrangler pages deploy dist --project-name=solar-trajectoryThere are now two concepts:
- Face sun now: sets the panel normal directly toward the current sun vector. This is the tracker-style instantaneous optimum.
- Use annual fixed: finds the best fixed tilt/azimuth for the selected latitude using a clear-sky geometry proxy: it samples the year and maximizes max(0, sun · panelNormal) * sin(solarAltitude).
Important: this is not yet a real PV yield optimum.
It ignores clouds, shading, roof constraints, DNI/ DHI split, temperature losses, and self-consumption.
It answers: “geometrically, what fixed panel orientation catches the most clear-sky sun at this latitude?”
Is this for you if your kwh is 0.26 eur?
go-solar.pages.dev/era5-cities/
DHT IoT Setup
sudo docker ps -q | xargs -r sudo docker stop
sudo docker start mqtt-dht11-dashboard emqx 0ce58d132af6
sudo docker container prune -f git clone https://github.com/JAlcocerT/RPi/
#npm start
docker compose up --build -d- Stop the local Node process.
- From mqtt-dht11-dashboard, run
docker compose up --build -d - The container should continue using the existing data/readings.sqlite

#sudo ufw status
#sudo ufw allow 1883/tcp
mosquitto_sub -h 192.168.1.106 -p 1883 -t "esp32/temperature/dht11" -v
mosquitto_sub -h 192.168.1.106 -p 1883 -t "esp32/humidity/dht11" -vthe esp32 got
192.168.1.109
see Tools -> Serial Monitor at arduinoIDE for the logs
// —- Configuration —- const char* WIFI_SSID = “your-wifi”; const char* WIFI_PASSWORD = “your-password”; // const char* handles special chars ($, @, etc.) const char* MQTT_BROKER = “192.168.1.106”; const int MQTT_PORT = 1883; const int DHT_PIN = 4; // GPIO4 (D4) — best category, no special boot functions const int PUBLISH_MS = 5000;
Open ArduinoIDE in W11 and select
ESP32 Dev Module+CTRL + Uto compile the sketchesp32-internal-temp-mqtt.cppinto the board with the right wifi pwd.
ssh casa@192.168.1.106
#cd ./Home-Lab/emqx
#docker compose up -d
# Check if the container is running
docker ps | grep emqx
# Watch EMQX logs live
docker logs emqx -fConnect to the UI via:
http://192.168.1.106:18083then addadmin/public
the new node app is at
http://192.168.1.106:3000/
https://www.youtube.com/shorts/ZcsaFZgWoEc
coming from https://jalcocert.github.io/JAlcocerT/thermodynamics/ and from https://jalcocert.github.io/JAlcocerT/heat-transfer-ice/
Where some magic happend: https://go-solar.pages.dev/era5-cities/
#git clone /poc
#cd ./poc/go-solar
#make eu-capitals-raw
make eu-capitals-status #-missing
#make era5-cities-bake # resumable, only fetches new 31
make era5-cities-bake-local
make ship
https://go-solar.pages.dev/era5-cities/

What to bring
What to bring from the experiment:
- The 5 IR readings + DHT22 (T_surface_in_u, T_surface_in_t, T_air_in, optional T_surface_out_u, T_surface_out_t)
- Date + hour of the measurement (to look up the matching ERA5 GHI / T_air_out for that timestamp)
- Material used + €/m² actually paid
- Any photos of the patch + sensor placement (just nice to have)
What to bring from the bills:
- 12 monthly kWh totals
- Their real €/kWh (bill total ÷ kWh)
- Contracted power (kW)
- AC unit age/model if known
The flow we’ll run:
- Plug measurements into
/era5-cities/Sevillameasured-seasonal section - Calibrate AC COP using bills vs model prediction (per zzzzz-post-experiment.md step B5)
- Run the three-scenario projection (best/likely/worst)
- Generate the parent-facing one-pager from the template
- Decide whether to scale to full roof
The docs to reference when you’re back:
- zzz-azotea-experiment-actionplan.md — execution checklist
- zzz-experiment-expectations.md — sanity-check bands for the readings
- zzzzz-post-experiment.md — workflow → parent presentation
Conclusions
cd ./poc/go-solar
make ship #https://go-solar.pages.dev/era5-cities/
#cd ./poc/aerothermics
make deploy #https://main.aerothermics-landing.pages.dev/Anti-barbell example (what I steered you away from):
- Free tier (limited)
- €9/mo (more bins, more years)
- €29/mo (API, batch)
- €99 consult
- Result: 4-way choice, weak free tier, no clear premium positioning
Barbell example (what you have):
- Free, unlimited tool
- € paid call
- Done
CheckList
- The aerotermia PoC:
git clone /poc
cd ./poc/aero- The IoT setup: sensor pushing data via mqtt
git clone /RPi
cd ./RPi/- The historical invoice records: use kreuzberg or your eyes for once
If you dont go crazy, 100kwh/m avg seems reasonable, invoices in spain inform about neighbours, they do x2 (lol)
- Wrapping all together:
FAQ
How much Tilt matters for FV
Depending on: latitude, day of the year, hour