The showreel and presentation are in German.

Starting point: five apps for one home

A PV system with battery, wall box, EV, smart-home devices and more vendors: each system has its own app, its own login and its own logic. The result:

  • No overall picture. Where is the solar power going right now: house, battery, car or grid?
  • Wasted solar power. Surplus is fed into the grid for a few cents instead of charging the car, because you forget to switch the wall box.
  • Constant app hopping. Five logins, no connection between the devices.
  • No shared, secure control for everyone in the household, including on the go.

The idea: see, decide, control

"I don't want to operate five apps. I want my house to live with the sun."

  1. See: live energy flow, forecast and statistics for solar, battery, grid, car and boiler.
  2. Decide: hints instead of rigid automation. The system suggests, the human decides with one tap.
  3. Control: wall box and smart home from one app, at home on Wi-Fi or securely on the go.

My role as Product Owner

I owned vision, use cases and prioritisation, wrote the acceptance criteria and accepted every feature in the real house. Implementation was done together with Claude Code: architecture proposals, code for backend, cloud, Android and web, automated tests and documentation, in a test-driven style. Approvals before any change to devices or the server stayed with me.

Product decisions and why

  • Automation out, hint in. A "plan for tomorrow" overrode users' decisions and confused them. Replaced by a one-tap solar hint: the human stays in control.
  • Battery before features. Feedback "my phone battery drains" led to removing the background timer and capping animation. In the background the app does nothing.
  • Opt-in instead of spam. Each person turns push notifications on themselves, at most once a day.
  • Security vs. convenience. Lights and sockets without fingerprint, wall box and car only signed.
  • Less is more. Empty cards hidden, charge target in percent instead of kWh. Every detail comes from real use.

Architecture: the house opens no ports

An agent runs at home and opens the connection outward itself. The firewall stays closed. The cloud provides a REST API, a live stream and sign-in with approved Google accounts. Wall box commands are cryptographically signed (fingerprint on Android, passkey in the browser). The house has the last word: an allow-list of actions, limits and a dry-run mode, so even a compromised cloud can do little.

Verified, not just claimed: SSL Labs grade A+, only ports 80 and 443 open from outside, automated security tests on every change.

What went wrong, and what I learned

  • Server locked out. A TLS hardening step disabled all cipher suites. Fixed in 30 minutes via the host's recovery mode. Learning: production changes only with a dry run, checks beforehand and a shared review.
  • Shutters silent. The vendor docs said "open/close", the device wanted "on/off". Learning: validate assumptions on the real device, not in the docs.
  • Battery drain. A timer kept running in the background. Learning: non-functional requirements belong in every acceptance.

Next step: AI-assisted energy planning

From reacting to planning: based on weather forecast, consumption history, tariffs and appointments, the system should plan days, seasons and a whole year ahead. Learned from version 1: the plan is a proposal that the human approves, never something done over their head.

Target group for the next stage: households, businesses and production sites.