How andreas-glaser/ha-dessmonitor works
DessMonitor is a Home Assistant integration for Eybond solar inverters, offering cloud monitoring and controls, read-only local telemetry, and a hybrid mode that prefers local readings while retaining cloud fallback and settings. The graph follows setup and data collection into Home Assistant entities, and preserves device-specific mapping, support diagnostics, and local-protocol stages. Some local modules and platform files were not excerpted; their placement or relationships are omitted where the available references do not establish them.
Main entry points: __init__.py Integration coordinator · coordinator.py Local coordinator · drivers.py Local protocol drivers · hybrid.py Hybrid telemetry merge
Components 25
Setup and orchestration
- Integration setup
custom_components/dessmonitor/config_flow.py - Integration coordinator
custom_components/dessmonitor/__init__.py
Cloud monitoring
- Cloud API client
custom_components/dessmonitor/api.py - Hybrid telemetry merge
custom_components/dessmonitor/local/hybrid.py - Data source labels
custom_components/dessmonitor/data_sources.py
Local monitoring
- Local coordinator
custom_components/dessmonitor/local/coordinator.py - Collector server
custom_components/dessmonitor/local/server.py - Inverter discovery
custom_components/dessmonitor/local/discovery.py - Local protocol drivers
custom_components/dessmonitor/local/drivers.py - Frame and protocol parsing
custom_components/dessmonitor/local/protocol.py - Device profiles
custom_components/dessmonitor/local/profile.py - Modbus framing
custom_components/dessmonitor/local/modbus.py - SMG protocol 4
custom_components/dessmonitor/local/smg_protocol4.py
Entities and device support
- Device registry
custom_components/dessmonitor/device_support/device_registry.py - Devcode profiles
custom_components/dessmonitor/device_support - Sensor title mapping
custom_components/dessmonitor/sensor_titles.py - Telemetry sensors
custom_components/dessmonitor/sensor.py - Inverter controls
custom_components/dessmonitor/number.py - Select and text controls
custom_components/dessmonitor/select.py
Support diagnostics
- Support report
custom_components/dessmonitor/support_report.py - Integration diagnostics
custom_components/dessmonitor/diagnostics.py - Local diagnostics
custom_components/dessmonitor/local/diagnostics.py
Other components
- Home Assistant user
- DessMonitor / ShineMonitor
- Eybond Wi-Fi collector
Connections 30
- Home Assistant user → Integration setup: configures integration
README.md - Integration setup → Integration coordinator: sets up entry
- Integration coordinator → Cloud API client: requests cloud data
custom_components/dessmonitor/__init__.py - Cloud API client → DessMonitor / ShineMonitor: reads account data
README.md - Integration coordinator → Local coordinator: starts local telemetry
custom_components/dessmonitor/__init__.py - Integration coordinator → Hybrid telemetry merge: selects hybrid mode
custom_components/dessmonitor/__init__.py - Hybrid telemetry merge → Cloud API client: falls back to cloud
custom_components/dessmonitor/local/hybrid.py - Hybrid telemetry merge → Local coordinator: prefers local readings
custom_components/dessmonitor/local/hybrid.py - Hybrid telemetry merge → Data source labels: labels reading sources
custom_components/dessmonitor/local/hybrid.py - Local coordinator → Collector server: manages connection
custom_components/dessmonitor/local/coordinator.py - Collector server → Eybond Wi-Fi collector: receives collector frames
README.md - Local coordinator → Inverter discovery: discovers inverters
custom_components/dessmonitor/local/coordinator.py - Local coordinator → Local protocol drivers: selects and polls
custom_components/dessmonitor/local/coordinator.py - Local protocol drivers → Inverter discovery: uses discovery
custom_components/dessmonitor/local/drivers.py - Local protocol drivers → Frame and protocol parsing: parses protocol frames
custom_components/dessmonitor/local/drivers.py - Local protocol drivers → Device profiles: uses device profiles
custom_components/dessmonitor/local/drivers.py - Local protocol drivers → SMG protocol 4: uses SMG framing
custom_components/dessmonitor/local/drivers.py - SMG protocol 4 → Modbus framing: uses Modbus framing
custom_components/dessmonitor/local/smg_protocol4.py - Device registry → Devcode profiles: registers profiles
custom_components/dessmonitor/device_support/device_registry.py - Integration coordinator → Device registry: maps device readings
custom_components/dessmonitor/__init__.py - Telemetry sensors → Sensor title mapping: resolves reading titles
custom_components/dessmonitor/sensor.py - Telemetry sensors → Integration coordinator: publishes telemetry
custom_components/dessmonitor/sensor.py - Inverter controls → Integration coordinator: updates settings
custom_components/dessmonitor/number.py - Select and text controls → Integration coordinator: exposes settings
- Inverter controls → Device registry: loads device mappings
custom_components/dessmonitor/number.py - Integration coordinator → Support report: builds support report
custom_components/dessmonitor/__init__.py - Integration diagnostics → Support report: includes support evidence
- Local coordinator → Local diagnostics: records local evidence
- Local diagnostics → Device profiles: uses profile details
custom_components/dessmonitor/local/diagnostics.py - Local diagnostics → Frame and protocol parsing: uses protocol details
custom_components/dessmonitor/local/diagnostics.py