Home Assistant custom integration for CATCH Power Monocle — the Australian solar export/diversion + battery + EV-charger control platform (catchpower.com.au).
⚠️ Unofficial integration. This project is not affiliated with, endorsed by, or connected to CATCH Power in any way. It is a community-built integration that talks to CATCH Power's servers using the same API the mobile app uses.
- In Home Assistant, go to HACS → Integrations → ⋮ → Custom repositories
- Paste
https://github.com/simonsays11/ha-smatch-solarand select Integration - Click Add, then search for Smatch Solar and click Download
- Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration → Smatch Solar
- Enter your CATCH Power username and password
Note: this integration talks to CATCH Power's servers. Your credentials are only sent to CATCH Power, never anywhere else.
| Entity | Unit | Notes |
|---|---|---|
| Mains Power | W | Positive = importing, negative = exporting |
| Solar Power | W | Total solar generation |
| House Power | W | Total house consumption |
| Battery Power | W | Positive = charging, negative = discharging |
| Import Limit | W | Grid import cap from Catch (DNSP) |
| Export Limit | W | Grid export cap from Catch (DNSP) |
| Entity | Unit | Notes |
|---|---|---|
| State of Charge | % | Integer, 1% steps from the live event |
Every controllable device on your site gets a State sensor on its own sub-device in HA's device registry — e.g. "EV Charger CarCharger → State: CHARGING".
The state is a free-form string from Catch (e.g. CHARGING,
DISCHARGING, IDLE, ON, OFF). Different hardware brands may report
different strings — see Help us improve below.
Each controllable device (battery, EV charger, hot water relay, etc.) gets a Power sensor on its own sub-device. Devices appear nested under the main "Smatch Solar" device in HA's device registry, with model name and serial number.
Five energy sensors are provided, compatible with HA's built-in Energy dashboard. They update every ~60 seconds from the Catch datakwh endpoint.
| Entity | HA Energy role |
|---|---|
| Solar Yield | Solar production |
| Grid Import Energy | Grid consumption |
| Grid Export Energy | Return to grid |
| House Consumption Energy | — (total house load) |
| Consumed Solar Energy | — (self-consumed solar) |
Grid Import and Grid Export are separate meters, so you can configure both the "Grid consumption" and "Return to grid" slots in HA's Energy dashboard without any template sensors or helpers.
The sensors use state_class=total_increasing and device_class=energy.
The raw values are in Wh from Catch; the integration converts to kWh for
HA's expected energy unit.
Static metadata about your site — hidden from default dashboards
(entity_category=diagnostic):
- Address — site address from Catch
- Latitude / Longitude — 4 decimal places
- Timezone — e.g.
Australia/Sydney - Device ratings — e.g. hot water element rating (W), solar inverter label, EVSE max current (A) — whatever your hardware reports to Catch
Settings → Devices & Services → Smatch Solar → ⋮ → Download diagnostics
produces a JSON snapshot of all cached API responses, connection state, and
recent Socket.IO events — useful for debugging without enabling debug
logging. No personal data is included (see .ai-docs/IDEA-PII.md in the
development repo for the anonymisation mapping).
After installing, configure HA's Energy dashboard:
- Settings → Dashboards → Energy → Configuration
- Solar production:
sensor.smatch_solar_solar_yield_energy - Grid consumption:
sensor.smatch_solar_grid_import_energy - Return to grid:
sensor.smatch_solar_grid_export_energy - Optionally add
sensor.smatch_solar_battery_socas a battery source
Import and export are separate sensors — no need for positive/negative splitting tricks.
- Add this repository as a custom repository in HACS
- Search for "Smatch Solar" and install
- Restart Home Assistant
- Settings → Devices & Services → Add Integration → Smatch Solar
| Field | Value |
|---|---|
| Username | Your CATCH Power login (email) |
| Password | Your CATCH Power password |
| Host | https://monocle0.edde.world (default) |
- Home Assistant ≥ 2024.1.0
python-socketio[asyncio_client]≥5.0,<6.0(auto-installed by HA)
This integration was reverse-engineered from a single site. Every additional site helps us fix bugs, add hardware support, and build controls.
No personal data is included — addresses are redacted, coordinates rounded. The diagnostics file contains only device types, power readings, and cached API responses from the Catch platform.
If your Catch system controls a hot water cylinder via the SR relay (with or without a battery or EVSE), your diagnostics are gold. Hot water setups vary more than any other device type — different element sizes, channel layouts, and relay configurations. Every one we see makes the integration smarter for everyone.
If you're a designer and can spare 30 minutes — our logo is a placeholder.
We need a 192×192 icon.png and a matching logo.png (any size, kept to
192px height on export). The brand is Smatch Solar / Smatch Power Solar.
Get in touch via the email or issue link below.
Option 1 — GitHub (preferred, others can learn from it):
- Go to Settings → Devices & Services → Smatch Solar → ⋮ → Download diagnostics
- Attach the JSON file to a GitHub issue with a one-line description of your hardware (e.g. "Fronius inverter + WattPilot + hot water")
Option 2 — Email (100% private):
Email the file to catchmebot@proton.me with a one-line hardware description. We only extract device types, power readings, and control schemas — your data is never shared, never published. Discretion guaranteed.
Every diagnostics file brings us closer to device controls — select/number/button entities for:
- EV charger: ON / OFF / Auto / Solar-follow / Fixed-power modes
- Hot water: ON / OFF / Auto boost
- Battery: charge/discharge limits and mode selection
The more sites we see, the more confident we can be that the control schemas work across hardware. Your file directly unlocks features for your own install.
| Data | Why it matters |
|---|---|
ha_entity_mappings |
Shows where every sensor and rating landed — catches placement bugs |
cached_responses.devices |
Device types, serials, and ratings (element size, inverter, EVSE max current) |
cached_responses.actors |
Which controllable devices exist on your site |
last_event |
Live power flow, device states, and override schemas |
| Device state strings | Free-form values like CHARGING / DISCHARGING / IDLE — we use these to build proper enum sensors |
Source code, issues, and contributions: github.com/simonsays11/solar-control
