20+ data sources — MQTT, Zigbee, local APIs and cloud services — flow into one Home Assistant. Automations decide within seconds; Claude explains, warns and double-checks the numbers. A private project that shows what becomes possible when devices, data and AI work together.

Home Assistant runs on a Home Assistant Green and is the hub for everything: devices report locally, cloud services add forecasts and tariffs. AI only reads — every switching decision is made by automations.
20+ sources over MQTT, Zigbee, local REST/cgminer APIs and cloud services — local first, so everything that switches works without the internet.
Claude writes a daily house diary, diagnoses miner faults and judges whether mining pays off — on computed values, read-only.
~90 automations switch within seconds: a peak guard every 20 s, loads that follow the solar surplus, self-healing. Rules in code, explanations by AI.
Jackery SolarVault over MQTT (Mosquitto); motion sensors, door contact, wireless button and lights over Zigbee (ZHA, USB dongle).
Fronius inverter and smart meter (read every second), Wattpilot, Bitaxe (AxeOS REST), Avalon (cgminer API) and Shelly plugs.
Forecast.Solar, Met.no, Fronius Solar.web, Tuya, Govee, energiedaten.at — plus Braiins, Ocean, CoinGecko and aWATTar for the mining calculation.
uni-meter pretends to be an EcoTracker meter, fed from the Fronius values. The Jackery regulates to zero export — without extra hardware.
The full list with every source and protocol is in the details below.
Claude never switches anything in my house. It reads computed values, explains them in plain language, finds anomalies and answers questions.
"I really embarrassed the forecast today: 10.8 kWh were predicted, I pulled 16.9 kWh off the roof … at 76 % self-sufficiency that was my best day of the week." Real diary entry from 23 Oct 2026 (written in German by Claude, translated here) — plus, unprompted: "The sensor in the holiday-home WC reads 23.1 °C although nothing is heating. Please check the sensor."

Every hour while solar power is exported, Home Assistant checks all four miners and the cellar. If the hashrate drops or something runs too hot, an HA AI task hands Claude all values with their normal ranges. Claude writes a diagnosis per device with concrete actions — open the ventilation, throttle the miner, switch it off — as a notification and a phone push "🚨 Mining Alarm".
An n8n workflow builds a dashboard on demand and answers one question: would selling the solar power earn more than mining? The cost is counted as opportunity cost — the lost feed-in tariff — not the grid price, because the miners only use surplus.
"Mining currently does not pay off: even in the bullish scenario (BTC €92k) the annual forecast shows a loss of about €13, in the base case €20 at −46 % ROI. The main driver is the BTC price, as the hashrate of the small miners is minimal anyway." Claude’s verdict in the dashboard (translated from German).
Home Assistant's built-in MCP server lets Claude Code read sensors and work with the house through the Model Context Protocol — privately, with an admin account.
Most automations, dashboards and custom cards were built together with Claude Code. The know-how is packed into a public Home Assistant skill.
Claude Haiku with one read-only tool over a fixed list of energy sensors and a dedicated non-admin user. It can answer, but never switch.
From 2027, Austrian grid fees for households include a demand charge: the highest quarter hour of the month counts, and above 10 kW each kilowatt costs about twice as much. My analysis showed the limit was exceeded every month since March, with peaks up to 14.6 kW — mostly car plus stove. The Spitzenwächter runs every 20 seconds and projects the current quarter hour forward. If it would exceed 10 kW (with a 0.5 kW margin) it steps in:
Before going live I simulated it against a re-created charging evening. Estimated saving: around 150 € demand charge per year.
The guard is now an open-source Home Assistant integration that you can install through HACS. To the project page →
"My Spitzenwächter had plenty to do from 10:15: it kept throttling the wallbox and switched to single-phase twice … it stayed under 10 kW." From the diary in the evening (Claude, translated from German). Under "Noticed": a duplicate log entry — a real bug the AI spotted before I did.
Every source, device and automation — open what interests you.
Local first: almost everything that switches runs without the internet. Cloud data is only used where nothing local exists.
A Fronius inverter with a three-phase Smart Meter at the grid connection. The meter is read every second — it is the basis for every surplus decision in the house.
The Jackery SolarVault 3 with an extra battery needs a grid meter for zero-export control. Instead of buying one, the uni-meter add-on emulates an EcoTracker meter from the Fronius values and announces it via mDNS. The battery charges from surplus and discharges exactly what the house draws. Lesson learned: a Shelly Pro 3EM emulation is not detected by the Jackery app — only EcoTracker works.
The Fronius Wattpilot charges on solar surplus and is throttled by the Spitzenwächter between 16 A and 6 A, single-phase if needed. While the car charges, the Jackery drops to 50 W so the battery does not push its energy into the car. If the car does not charge although the sun is shining, I get an alert.
The pool pump runs from 9 am when PV exceeds 1.5 kW, the kitchen water heater gets a solar pause in fixed time windows, and the miners scale with the surplus. Every switch has wait times and on/off thresholds as adjustable helpers.
Four small miners only use power that would otherwise be fed into the grid. Their speed follows the solar surplus, and they protect themselves from overheating.
Open-source miners with about 1.1 and 2.2 TH/s at 15–30 W. Three modes: pool mining during the day, solar mode on surplus and a "lottery" solo pool at night. HA switches pools and settings over the AxeOS API. Warning at 65 °C, shutdown at 75 °C.
Up to about 6 TH/s each. The work mode changes with the surplus: Low from 0 W, Mid from 200 W, High from 500 W export. They switch on at 250 or 500 W export and off below 50 W, each after a 10-minute wait, and always start in Low mode.
The miners sit in the cellar. A fan on a smart socket strip switches on when a Govee thermometer reads more than 26 °C, or when there is enough solar power anyway, and switches off after a wait time.
Braiins Pool with payout via Lightning, Ocean as an alternative, and a solo "lottery" pool at night where a single found block would pay the full reward.
Zigbee lights only react between sunset and sunrise: opening the front door turns on the entrance light for 5 minutes, a motion sensor turns on both hallway lamps for 3 minutes, and a wireless button switches them by hand.
A fan switches on when humidity rises above 60 % and off again on its own.
Six rooms with heating plugs and thermostats. Modes (off, winter setpoint, weekly schedule) and holiday programmes are written from Home Assistant into the plugs, with a warning if a plug does not confirm. Consumption comes from the grid operator's quarter-hour data.
The Netzwächter restarts the Home Assistant host if both the router and the inverter have been unreachable for 10 minutes and reports afterwards. The software smart meter warns on failure and re-registers itself after every restart.
My own energy dashboard with custom-built cards: an animated energy flow map between PV, grid, battery, house and car, and daily totals — in a dark theme.
Shows the emulated meter the Jackery sees, its status and the battery control in one place — so a failure of the software smart meter is visible at once.
Every quarter hour against the 10 kW limit — it shows the Spitzenwächter at work.
Scriptable widgets on the home screen: today's diary line, the energy flow, daily values and the holiday home — without opening an app.






