The Sunsynk-Home-Assistant-Dash repository delivers a complete, opinionated solution for monitoring Sunsynk and Deye solar inverters through Home Assistant. It bridges the gap between raw hardware data acquisition and a polished, real-time dashboard experience tailored specifically for these inverter models.
Hardware-to-dashboard pipeline for Sunsynk inverter monitoring
At its core, this project combines an ESP32 running ESPHome firmware to collect data from the inverter’s RS485 Modbus interface with a custom Lovelace dashboard in Home Assistant for visualization and control. The hardware setup is detailed with wiring diagrams and safety notes to connect the ESP32 board safely to the inverter’s RS485 port.
On the software side, the dashboard uses a set of custom Lovelace cards — including Flexible Horseshoe, Power Flow, Plotly Graph, and Layout Card — to present a comprehensive view of solar generation, grid interaction, battery status, and household load. The ESPHome YAML configuration collects inverter telemetry over Modbus, feeding Home Assistant sensor entities.
Beyond basic monitoring, the repo includes template sensors designed to implement a time-of-use battery schedule with six programmable slots. This adds a layer of logic that computes remaining battery time and charging duration dynamically, based on real-time power flow and state-of-charge data.
The stack is therefore a mix of embedded firmware on ESP32, Home Assistant’s Lovelace UI, and YAML-based sensor templating. This tight integration enables a full hardware-to-dashboard pipeline tailored to Sunsynk/Deye inverters.
Practical design and tradeoffs in the implementation
What distinguishes this project is how it handles the end-to-end flow from raw Modbus data acquisition to a user-friendly Home Assistant dashboard with advanced battery management logic.
The hardware wiring guide is thorough, which is crucial given the risks involved in connecting to inverter RS485 ports. The project assumes some hardware familiarity and comfort with ESPHome and Home Assistant customization.
On the software side, the code quality is practical and opinionated. The dashboard uses several custom Lovelace cards, which means users need to install these components in their Home Assistant setup. This adds some setup overhead but delivers a flexible and visually rich interface.
The time-of-use battery scheduling template sensors stand out as a useful feature for solar users looking to optimize battery usage based on variable tariffs or solar production windows. However, this logic requires users to adapt sensor names and potentially tweak the YAML templates to fit their exact ESPHome sensor entities.
The tradeoff here is clear: the project offers a powerful, integrated solution but requires users to adapt configurations to their own setups. The ESPHome YAML and Lovelace dashboard JSON are not plug-and-play; they serve as a solid foundation rather than turnkey products.
The choice to build on ESPHome and Home Assistant leverages widely used, open-source platforms with strong community support. This avoids reinventing the wheel but relies on the user’s ability to navigate these systems.
Installation and setup steps
Data can be collected from the inverter using the RS485 port. There are a number of different ways to do this but I’m using an ESP32 chip running ESPHome. See Hardware and Wiring Guide below and ESPHome-1P-Sunsynk-Deye.yaml
Create a new view on your current Dashboard and set the view type to Panel (1 card) as shown below:
You can then edit the Dashboard (using the code editor) and paste the contents of the Dashboard. You’ll need to adjust all the sensor names to match yours and install the necessary custom components.
The README provides detailed wiring diagrams and safety warnings for connecting the ESP32 to the RS485 port, which is critical for protecting both your hardware and yourself.
You’ll want to start by flashing the ESPHome firmware to your ESP32, configured with the Modbus sensor definitions tailored for the Sunsynk/Deye inverter. Once the ESPHome node is reporting data to Home Assistant, you can import or paste the Lovelace dashboard JSON.
Adjusting sensor entity names is necessary because the ESPHome YAML configuration and your Home Assistant instance may have different entity naming conventions. This is a common step in Home Assistant custom dashboards.
Verdict
Sunsynk-Home-Assistant-Dash is a well-crafted, practical project for anyone looking to integrate Sunsynk or Deye solar inverter data into Home Assistant with a custom dashboard. Its strength lies in combining low-level hardware interfacing with a rich visualization layer and battery management logic.
That said, it requires a fair amount of hands-on customization and familiarity with ESPHome, Home Assistant, and inverter wiring. It’s not a plug-and-play system but rather a solid foundation capable of being adapted to diverse setups.
If you are comfortable with ESP32 firmware flashing, Modbus communication, and Home Assistant customization, this repo can save you a lot of the groundwork in building a solar monitoring and time-of-use battery management dashboard.
Its reliance on custom Lovelace cards and template sensors means you need to invest time in setup and maintenance, but the payoff is a tailored, real-time view of your solar energy system that goes beyond generic dashboards.
In production, this means balancing configuration overhead with the flexibility and insight this solution delivers. For DIY solar pros and Home Assistant enthusiasts, it’s worth exploring.
Related Articles
- Dashy: A YAML-driven self-hosted dashboard for homelab organization — Dashy uses a single YAML config to unify homelab service access with real-time monitoring, multi-page layouts, and SSO.
- Sun-Panel: a self-hosted Vue dashboard for NAS and server navigation with zero-code config — Sun-Panel is a Vue-based self-hosted dashboard for NAS and servers, featuring drag-and-drop config, multi-account suppor
- Waveshare Watch Rust firmware: efficient no_std embedded Rust for ESP32-S3 AMOLED smartwatch — A no_std Rust firmware replacing C/C++ for the Waveshare ESP32-S3 AMOLED smartwatch, achieving >99% CPU sleep with async
- Real-time flight control on ESP32: how drone_meishi runs a 500 Hz IMU fusion and PID loop alongside WebSocket I/O — drone_meishi runs a 500 Hz IMU fusion and PID control loop with 20 kHz motor PWM on ESP32, while handling WebSocket joys
- NeoHtop: a lightweight cross-platform system monitor built with Tauri, Rust, and SvelteKit — NeoHtop is a cross-platform system monitor combining a Rust backend with a SvelteKit UI via Tauri, offering efficient de
→ GitHub Repo: slipx06/Sunsynk-Home-Assistant-Dash ⭐ 216