{"id":40679317,"url":"https://github.com/pho3nix90/solis_modbus","last_synced_at":"2026-04-16T20:03:32.861Z","repository":{"id":210395085,"uuid":"726281564","full_name":"Pho3niX90/solis_modbus","owner":"Pho3niX90","description":"Home Assistant HACS integration for Solis inverters","archived":false,"fork":false,"pushed_at":"2026-04-16T17:18:22.000Z","size":3808,"stargazers_count":109,"open_issues_count":7,"forks_count":34,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-04-16T18:30:02.372Z","etag":null,"topics":["hacs","hacs-custom","hacs-integration","home-assistant","modbus","solis","solis-pv-inverters"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pho3niX90.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"pho3nix90","thanks_dev":null,"custom":null}},"created_at":"2023-12-01T23:51:38.000Z","updated_at":"2026-04-16T17:04:22.000Z","dependencies_parsed_at":"2023-12-02T14:24:49.813Z","dependency_job_id":"9bb28ce1-1b22-43f5-9243-f584ed266968","html_url":"https://github.com/Pho3niX90/solis_modbus","commit_stats":{"total_commits":57,"total_committers":1,"mean_commits":57.0,"dds":0.0,"last_synced_commit":"13684eba53ce0a6dfdd7d3e706f9737d804522c1"},"previous_names":["pho3nix90/solis_modbus"],"tags_count":180,"template":false,"template_full_name":null,"purl":"pkg:github/Pho3niX90/solis_modbus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pho3niX90%2Fsolis_modbus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pho3niX90%2Fsolis_modbus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pho3niX90%2Fsolis_modbus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pho3niX90%2Fsolis_modbus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pho3niX90","download_url":"https://codeload.github.com/Pho3niX90/solis_modbus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pho3niX90%2Fsolis_modbus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31902124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacs","hacs-custom","hacs-integration","home-assistant","modbus","solis","solis-pv-inverters"],"created_at":"2026-01-21T10:09:37.677Z","updated_at":"2026-04-16T20:03:32.806Z","avatar_url":"https://github.com/Pho3niX90.png","language":"Python","funding_links":["https://buymeacoffee.com/pho3nix90"],"categories":[],"sub_categories":[],"readme":"# Solis Modbus Integration for Home Assistant\n\n## Description\n\nThe Solis Modbus Integration for Home Assistant is a streamlined solution to connect your Solis inverter with Home Assistant. This integration was inspired by [fboundy's ha_solis_modbus](https://github.com/fboundy/ha_solis_modbus/tree/main). However, it enhances the native Modbus integration in Home Assistant by consolidating multiple register queries into single calls, eliminating unnecessary overhead.\n## Documentation\nhttps://solis-modbus.readthedocs.io/\n\n## Solis cloud\nYou will lose access, unless you use a waveshare device. You will still have the option to disable the modbus, when updates are required.\nhttps://github.com/Pho3niX90/solis_modbus/discussions/154\n\n## Installation\n[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=Pho3niX90\u0026repository=solis_modbus\u0026category=integration)\n\nTo install the Solis Modbus Integration, follow these steps:\n\n1. Open your Home Assistant instance.\n2. Navigate to the \"HACS\".\n3. Click the 3 dots menu\n![img.png](https://raw.githubusercontent.com/Pho3niX90/solis_modbus/master/img.png)\n4. Click on \"Custom Repositories\"\n![img_1.png](https://raw.githubusercontent.com/Pho3niX90/solis_modbus/master/img_1.png)\n5. Fill in the repository \"https://github.com/Pho3niX90/solis_modbus\", and category \"Integration\"\n6. Now search for \"Solis Modbus\"\n![img_2.png](https://raw.githubusercontent.com/Pho3niX90/solis_modbus/master/img_2.png)\n7. Click on Download\n\n## Total Sensors\nWhilst the solis inverters do provide total sensors for today, yesterday, month and year. I highly suggest to create a utility meter in HA, as a time difference between HA and Solis might have the values reset before midnight, causing issues in charts.\n\n## Manual Installation\n1. Copy the \"solis_modbus\" folder into your \"custom_components\" folder\n\n## Setup\n1. Navigate to Settings -\u003e Devices \u0026 Services\n2. Click on \"+ Add Integration\"\n3. Search for \"Solis Modbus\"\n4. Follow the configuration steps:\n\n### Configuration\n**Connection Type**:\n- **TCP (WiFi Dongle)**: Use for Data Logging Sticks (DLS) or WiFi dongles. Requires IP and Port (Default 502).\n- **Serial (RS485)**: Use for direct USB-RS485 connection. Requires Serial Port path.\n\n**Inverter Serial**: (Required)\n- Enter your inverter's serial number. This is now **mandatory** for generating unique entity IDs and ensuring configuration stability.\n\n**Poll Interval**:\n- Customize how frequently sensors update. Faster polling provides more real-time data but increases Modbus load.\n\n### Version 4.0+ Migration (Important)\nAs of version 4.0+, the integration uses the **Inverter Serial Number** to generate unique IDs for all entities.\n- **New Installs**: Will use Serial Number automatically.\n- **Existing Installs**:\n    - The integration will attempt to migrate your existing entities (which might use Host ID or the deprecated \"Identification\" string) to the new Serial Number format automatically on startup.\n    - If your configuration is missing the Serial Number, migration will be **deferred**, and a persistent notification will ask you to Reconfigure the integration to add it.\n    - **No history is lost** during this migration.\n\n**Deprecated Settings**:\n- **Identification**: This field has been removed from the setup form. If you previously used it, the integration will still read it internally to migrate your old entities, but it is no longer user-configurable.\n\n`Connection Type`: S2 is the default option, only select waveshare if you are using a waveshare device, and some sensors are higher than normal, see here https://solis-modbus.readthedocs.io/en/latest/sensors.html#waveshare\n\n# [JK BMS](https://github.com/Pho3niX90/jk-bms-card)\nGet the card here : https://github.com/Pho3niX90/jk-bms-card\n![img_jk_bms.png](images/img_jk_bms.png)\n\n# [Solar card setup](https://github.com/slipx06/sunsynk-power-flow-card):\n![img_solar_card.png](images/img_solar_card.png)\n```yaml\ntype: custom:sunsynk-power-flow-card\nview_layout:\n  grid-area: flow\ncardstyle: lite\nlarge_font: true\nshow_solar: true\npanel_mode: true\ncard_height: 415px\ninverter:\n  model: solis\n  modern: false\n  colour: '#959595'\n  autarky: 'no'\nsolar:\n  mppts: 2\n  show_daily: false\n  colour: '#F4C430'\n  animation_speed: 9\n  max_power: 9600\n  pv1_name: West\n  pv2_name: North\nbattery:\n  energy: 14280\n  shutdown_soc: 20\n  show_daily: true\n  colour: pink\n  animation_speed: 6\n  max_power: 6000\nload:\n  show_aux: false\n  show_daily: true\n  animation_speed: 8\n  max_power: 6000\n  additional_loads: 2\n  load2_name: Geyser\n  load2_icon: mdi:heating-coil\n  load1_name: Pool\n  load1_icon: mdi:pool\ngrid:\n  show_daily_buy: true\n  no_grid_colour: red\n  animation_speed: 8\n  max_power: 6000\n  invert_grid: true\nentities:\n  dc_transformer_temp_90: sensor.solis_temperature\n  day_battery_charge_70: sensor.solis_today_battery_charge_energy\n  day_battery_discharge_71: sensor.solis_today_battery_discharge_energy\n  day_load_energy_84: sensor.solis_today_energy_consumption\n  day_grid_import_76: sensor.solis_today_energy_imported_from_grid\n  day_grid_export_77: sensor.solis_today_energy_fed_into_grid\n  day_pv_energy_108: sensor.solis_pv_today_energy_generation\n  inverter_voltage_154: sensor.solis_a_phase_voltage\n  load_frequency_192: sensor.solis_grid_frequency\n  inverter_current_164: sensor.solis_a_phase_current\n  inverter_power_175: sensor.solis_backup_load_power\n  grid_power_169: sensor.solis_ac_grid_port_power\n  battery_voltage_183: sensor.solis_battery_voltage\n  battery_soc_184: sensor.solis_battery_soc\n  battery_power_190: sensor.solis_battery_power\n  battery_current_191: sensor.solis_battery_current\n  essential_power: sensor.solis_backup_load_power\n  grid_ct_power_172: sensor.solis_meter_total_active_power\n  pv1_voltage_109: sensor.solis_dc_voltage_1\n  pv1_current_110: sensor.solis_dc_current_1\n  pv1_power_186: sensor.solis_dc_power_1\n  pv2_power_187: sensor.solis_dc_power_2\n  pv_total: sensor.solis_total_dc_output\n  pv2_voltage_111: sensor.solis_dc_voltage_2\n  pv2_current_112: sensor.solis_dc_voltage_2\n  grid_voltage: sensor.solis_a_phase_voltage\n  battery_current_direction: sensor.solis_battery_current_direction\n  inverter_status_59: sensor.solis_current_status\n  remaining_solar: sensor.solcast_pv_forecast_forecast_remaining_today\n```\n\n## Settings Card Example\n![img_4.png](images/img_4.png)\n```yaml\ntype: vertical-stack\ncards:\n  - type: horizontal-stack\n    cards:\n      - type: entities\n        entities:\n          - entity: number.solis_time_charging_charge_current\n            name: Charge Current\n        state_color: true\n  - type: horizontal-stack\n    cards:\n      - type: entities\n        entities:\n          - entity: number.solis_time_charging_discharge_current\n            name: Discharge Current\n        state_color: true\n  - type: entities\n    entities:\n      - entity: switch.solis_time_of_use_mode\n        type: custom:multiple-entity-row\n        name: Charge Slot 1\n        toggle: true\n        state_header: TOU\n        state_color: true\n        icon: mdi:timer\n        entities:\n          - entity: time.solis_time_charging_charge_start_slot_1\n            name: Charge From\n          - entity: time.solis_time_charging_charge_end_slot_1\n            name: Charge To\n      - entity: switch.solis_time_of_use_mode\n        type: custom:multiple-entity-row\n        name: Discharge Slot 1\n        toggle: true\n        state_header: TOU\n        state_color: true\n        icon: mdi:timer\n        entities:\n          - entity: time.solis_time_charging_discharge_start_slot_1\n            name: Charge From\n          - entity: time.solis_time_charging_discharge_end_slot_1\n            name: Charge To\n      - entity: switch.solis_time_of_use_mode\n        type: custom:multiple-entity-row\n        name: Charge Slot 2\n        toggle: true\n        state_header: TOU\n        state_color: true\n        icon: mdi:timer\n        entities:\n          - entity: time.solis_time_charging_charge_start_slot_2\n            name: Charge From\n          - entity: time.solis_time_charging_charge_end_slot_2\n            name: Charge To\n      - entity: switch.solis_time_of_use_mode\n        type: custom:multiple-entity-row\n        name: Discharge Slot 2\n        toggle: true\n        state_header: TOU\n        state_color: true\n        icon: mdi:timer\n        entities:\n          - entity: time.solis_time_charging_discharge_start_slot_2\n            name: Charge From\n          - entity: time.solis_time_charging_discharge_end_slot_2\n            name: Charge To\n      - entity: switch.solis_time_of_use_mode\n        type: custom:multiple-entity-row\n        name: Charge Slot 3\n        toggle: true\n        state_header: TOU\n        state_color: true\n        icon: mdi:timer\n        entities:\n          - entity: time.solis_time_charging_charge_start_slot_3\n            name: Charge From\n          - entity: time.solis_time_charging_charge_end_slot_3\n            name: Charge To\n      - entity: switch.solis_time_of_use_mode\n        type: custom:multiple-entity-row\n        name: Discharge Slot 3\n        toggle: true\n        state_header: TOU\n        state_color: true\n        icon: mdi:timer\n        entities:\n          - entity: time.solis_time_charging_discharge_start_slot_3\n            name: Charge From\n          - entity: time.solis_time_charging_discharge_end_slot_3\n            name: Charge To\n    state_color: true\nview_layout:\n  grid-area: a\n```\nCard inspiration from https://github.com/slipx06/Sunsynk-Home-Assistant-Dash\n\n## Tested\n**Inverters Tested**\nSolis and equivalent Axitec, Zonneplan inverters\n\n- **S6-EH3P**\n- - S6-EH3P20K-H (https://github.com/Pho3niX90/solis_modbus/issues/93)\n- - S6-EH3P15K-H\n- - S6-EH3P(12-20)K-H\n- - S6-EH1P6K-L-PRO\n- - S6-EH1P6K-L-PLUS\n- - S6-EH3P10K-H-ZP (https://github.com/Pho3niX90/solis_modbus/issues/191)\n- - S6-EH3P10K-H-EU (https://github.com/Pho3niX90/solis_modbus/issues/202)\n- **S6-GR1P**\n- - S6-GR1P4K (https://github.com/Pho3niX90/solis_modbus/issues/84)\n- **S5-EH1**\n- - S5-EH1(3-6)K-L (https://github.com/Pho3niX90/solis_modbus/issues/89)\n- - S5-EH1P5K-L (https://github.com/Pho3niX90/solis_modbus/issues/94)\n- - S5-EH1P6K-L (https://github.com/Pho3niX90/solis_modbus/issues/94#issuecomment-2656512651)\n- **S5-GC**\n- - S5-GC30K (https://github.com/Pho3niX90/solis_modbus/issues/173)\n- - S5-GC60K (https://github.com/Pho3niX90/solis_modbus/issues/180#issuecomment-2887414843)\n- **RAI-***\n- - RAI-3K-48ES-5G (https://github.com/Pho3niX90/solis_modbus/issues/174)\n- **RHI-***\n- - RHI-3K-48ES-5G (https://github.com/Pho3niX90/solis_modbus/issues/97#issuecomment-2639807764)\n- **3P(3-20)K-4G**\n- - 3P6K-4G (https://github.com/Pho3niX90/solis_modbus/issues/210)\n- **1P(2.5-6)K-4G**\n- - https://github.com/Pho3niX90/solis_modbus/issues/230\n\n**Wifi Dongles Tested**\n- S2_WL_ST\n- Waveshare\n\n## Troubleshooting\n### Restoring Sensor History\nIf a sensor's entity ID changes (e.g., during migration) and you lose its history, you can manually restore it using Home Assistant's statistics tool:\n\n1. Navigate to **Developer Tools** -\u003e **Statistics**.\n2. Search for the sensor name (e.g., \"Today Battery Charge Energy\").\n3. You will likely see two entries:\n    - The **current** sensor (new ID, working).\n    - The **historic** sensor (old ID, typically \"Status: Recalculate\", missing state, or similar issue). Note down it's ID\n4. Click on the **current** sensor, click the gear icon, and now rename the \"Entity ID\" to the old one\n\n#### ⚠️ Note on Reconfiguration\nIf the reconfiguration flow does not ask for your **Serial Number**, please delete the device and re-add it as a new device.\n* **Tip:** Rename the new device to match your old device's name and select **\"Recreate Entity IDs\"** during setup. This will ensure your history and dashboards remain functional. as mentioned here [Comment by 0rangutan](https://github.com/Pho3niX90/solis_modbus/pull/309#issuecomment-3638890631)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpho3nix90%2Fsolis_modbus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpho3nix90%2Fsolis_modbus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpho3nix90%2Fsolis_modbus/lists"}