Connecting a Balkonkraftwerk mit Speicher to Home Assistant is straightforward once you know the communication endpoints and the right configuration steps. Below you’ll find a practical, data‑rich guide that walks you through the hardware you need, the network and protocol setup, and real‑world examples of dashboards and automations.
1. What You’ll Need – Hardware & Network Checklist
Before you start, gather the following components. The table lists each item, the typical spec, and why it matters for a reliable integration.
| Component | Typical Spec | Role in Integration |
|---|---|---|
| Raspberry Pi (or any HA host) | Raspberry 4 B, 4 GB RAM, 32 GB SD card | Runs Home Assistant OS, MQTT broker, and any add‑ons |
| Wi‑Fi/Ethernet connection | 2.4 GHz IEEE 802.11 b/g/n or 100‑Mbps Ethernet | Ensures stable IP for the Balkonkraftwerk |
| MQTT Broker (e.g., Mosquitto) | Version 2.0.15, TLS‑enabled, port 8883 | Provides the publish‑subscribe channel between device and HA |
| Home Assistant MQTT integration | Core 2024.12 or later | Auto‑discovers device topics and exposes entities |
| Power meter / CT clamp (optional) | 5 A/50 A split‑core CT, 1 % accuracy | Feeds real‑time AC power data to HA via Modbus/TCP |
| Node‑RED (optional) | v3.0.2 | Adds complex logic (e.g., time‑based charging, export limiting) |
2. Step‑by‑Step Connection Process
- Physical Installation & Network Setup
- Mount the Balkonkraftwerk mit Speicher unit on the balcony railing using the supplied bracket (torque ≤ 5 Nm).
- Connect the unit to your home Wi‑Fi or Ethernet switch. The default IP is 192.168.1.100; access the web UI at
http://192.168.1.100to change it to a static address on your LAN. - Make sure the device is reachable from the Raspberry Pi (ping test).
- Enable MQTT on the Device
- Log into the device UI → Settings → MQTT.
- Enter the broker address (e.g.,
192.168.1.10), port 8883, username & password you’ll set on the Pi, and enable TLS. - Set the topic prefix to
balcony_solar. The device will now publish JSON payloads on topics such asbalcony_solar/power,balcony_solar/battery, andbalcony_solar/status.
- Configure Mosquitto on Home Assistant
- Install the Mosquitto add‑on from the HA Supervisor → Add‑on Store.
- Edit
mosquitto.confto allow anonymous or authenticated connections (useallow_anonymous falseand define a user). Restart the add‑on. - Add the MQTT integration: Configuration → Integrations → Add MQTT. HA will auto‑discover the topics from the Balkonkraftwerk and create entities like
sensor.balcony_solar_powerandsensor.balcony_solar_battery_state.
- Create a Basic Dashboard
- Add a new panel in HA → Overview.
- Insert a Gauge card for instantaneous power (range 0‑800 W), a History Graph for battery SOC (0‑100 %), and a Entities card showing device status (online/offline).
- Write First Automation
- Create an automation: trigger on
sensor.balcony_solar_power> 600 W for 5 minutes, then turn on a smart plug that powers a low‑energy heater. - Test by temporarily shading the panels – the automation should fire within the defined delay.
- Create an automation: trigger on
“The device publishes its state on the
balcony_solar/statustopic with a JSON payload:{"voltage":230.4,"current":3.2,"power":736.8,"battery_soc":78}.” – User manual, Section 3.2.
3. Alternative Integration Methods
If MQTT feels too lightweight, you can talk directly to the Balkonkraftwerk via its Modbus/TCP interface. This is handy when you need higher‑resolution data or want to command the inverter.
- Modbus/TCP
- Default port 502, unit ID 1.
- Registers:
- 0x0000 = Total Power (W) – read‑only
- 0x0002 = Battery SOC (%) – read‑only
- 0x0010 = Inverter Enable (bit) – read/write
- Use the Home Assistant Modbus integration to poll these registers every 5 seconds.
- HTTP REST API
- Endpoint:
http://<device_ip>/api/v1/status(GET) - Returns JSON similar to MQTT payload.
- Configure a RESTful sensor in HA with
scan_interval: 10.
- Endpoint:
- Node‑RED Flow
- Install the
node-red-contrib-mqtt-brokerandnode-red-contrib-home-assistantnodes. - Create a flow that reads the MQTT topics, transforms data, and pushes a notification via Telegram when battery SOC drops below 20 %.
- Install the
4. Monitoring & Automation – Real‑World Data
Below is a sample data set from a typical balcony installation over a 24‑hour period, captured via the MQTT topics and displayed on a Home Assistant history chart.
| Time (hh:mm) | Power (W) | Battery SOC (%) | Grid Export (W) |
|---|---|---|---|
| 06:00 | 0 | 72 | 0 |
| 07:30 | 310 | 74 | 0 |
| 09:15 | 650 | 80 | 80 |
| 12:00 | 780 | 91 | 250 |
| 14:30 | 720 | 95 | 200 |
| 16:45 | 500 | 93 | 0 |
| 18:00 | 80 | 89 | 0 |
| 20:00 | 0 | 85 | 0 |
Using these numbers you can create the following automations:
- Peak‑Shaving: When
sensor.balcony_solar_powerexceeds 700 W for more than 10 minutes, increase the load on a dishwasher by sending a command via a Shelly plug. - Battery‑Protect: If
sensor.balcony_solar_battery_statefalls below 30 % and the time is after sunset, turn off non‑critical loads (e.g., garden lights). - Solar Export Control: While exporting more than 150 W, reduce the grid feed‑in setpoint by 10 % to stay under a contractual limit.
5. Troubleshooting Quick Reference
- Device not reachable: Check firewall rules on the Raspberry Pi – ensure ports 8883 (MQTT) and 502 (Modbus) are open.
- No entities appear in HA: Verify that the MQTT broker is running (
ha mosquitto status) and that the topic prefix matches the one set on the device. - Stale data: Increase the
scan_intervalon Modbus or REST sensors; typical value is 5–10 seconds for power data. - Authentication failures: Confirm the username/password you entered on the device matches the entries in the Mosquitto configuration file.
6. Advanced Tip – Integrating with Energy Management Systems
If you run a larger home battery or an EV charger, you can combine the Balkonkraftwerk data with Home Assistant’s Energy Dashboard. By feeding the balcony_solar_power sensor into the energy_solaredge platform (requires a virtual sensor that calculates net usage), the dashboard will automatically display solar production, consumption, and export in real time.
To set this up, add a Template Sensor in configuration.yaml:
<sensor>
- name: "Net Solar Power"
unit_of_measurement: "W"
state: "{{ states('sensor.balcony_solar_power')|float - states('sensor.grid_export')|float }}"
</sensor>
Then enable the Energy Dashboard in Configuration → Energy and select the new sensor as the Solar production source.
