Why local matters
Home Assistant’s Growatt integration reads the Growatt servers, so its values are several minutes old and stop when the internet does. Surplus automations need better: when a cloud passes, the water heater should stop within a minute, not five. Growatt Monitor publishes to your MQTT broker every few seconds, on your own network.
Entities
sensor.growatt_monitor_pv_power,…_pv1_power,…_pv2_powersensor.growatt_monitor_battery_soc,…_battery_power,…_battery_temperaturesensor.growatt_monitor_grid_power(positive import, negative export)sensor.growatt_monitor_load_powersensor.growatt_monitor_priority_modesensor.growatt_monitor_pv_energy_today,…_grid_import_today,…_grid_export_today,…_battery_charge_today,…_battery_discharge_todaysensor.growatt_monitor_fault
The energy sensors go straight into the Energy dashboard: solar, grid in and out, battery in and out.
Automations worth setting up
- Start the water heater when export stays above 1.5 kW for two minutes.
- Charge the car from surplus only, and pause when the house battery falls below 60%.
- Get a notification when the priority mode changes or a fault code appears.
- Compare self-consumption month by month.
JSON API
GET http://moniwatt.local/api.json?key=YOUR_KEY
{"pv_w": 3870, "pv1_w": 2010, "pv2_w": 1860,
"batt_soc": 81, "batt_w": 1450, "batt_temp": 23.0,
"grid_w": -960, "load_w": 1460, "priority": "battery_first",
"today": {"pv_kwh": 16.4, "import_kwh": 1.8, "export_kwh": 4.9}}