{"id":48518173,"url":"https://github.com/qcda1/ha_midnite_classic","last_synced_at":"2026-04-13T20:01:31.081Z","repository":{"id":347837866,"uuid":"1194790937","full_name":"qcda1/ha_midnite_classic","owner":"qcda1","description":"Home Assistant integration to get Midnite Solar Classic solar charge controller data into HA","archived":false,"fork":false,"pushed_at":"2026-04-07T18:51:11.000Z","size":689,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-07T20:36:15.766Z","etag":null,"topics":["classic","hacs-integration","homeassistant","homeassistant-integration","midnite","solar"],"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/qcda1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2026-03-28T20:20:57.000Z","updated_at":"2026-04-07T18:49:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/qcda1/ha_midnite_classic","commit_stats":null,"previous_names":["qcda1/ha_midnite_classic"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/qcda1/ha_midnite_classic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qcda1%2Fha_midnite_classic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qcda1%2Fha_midnite_classic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qcda1%2Fha_midnite_classic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qcda1%2Fha_midnite_classic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qcda1","download_url":"https://codeload.github.com/qcda1/ha_midnite_classic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qcda1%2Fha_midnite_classic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31768649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: 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":["classic","hacs-integration","homeassistant","homeassistant-integration","midnite","solar"],"created_at":"2026-04-07T20:02:20.811Z","updated_at":"2026-04-13T20:01:31.050Z","avatar_url":"https://github.com/qcda1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Midnite Solar Classic — Home Assistant Integration\n\n---\n\n### Custom integration for **Midnite Solar Classic 150** solar charge controllers (and compatible models). Communicates with the device over **Modbus TCP**.\n\n## Features\n\n- Periodic polling of all Classic registers via Modbus TCP\n- Configurable polling interval from **10 to 3,600 seconds**\n- Select which parameters to expose as HA entities via the UI\n- Connection validation and automatic device name retrieval during setup\n- Multi-device support (multiple Classic controllers with different IP addresses)\n- Options flow (⚙️ icon) to change interval and parameters without reconfiguring (To be fixed)\n\n## Requirements\n\n\n| Component         | Description                                                                                                                                                                        |\n| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Home Assistant OS | Built on version 2026.3+                                                                                                                                                           |\n| pymodbus          | Built with version ≥ 3.6.0 (installed automatically in HAOS)                                                                                                                       |\n| network           | The Classic must be connected to the local network and reachable from Home Assistant.\u001fNeed the address and the Classic's name must be set in the unit. See Network in user manual. |\n\n\n## Installation\n\n### 1 - Install HACS (if not allready done)\n\n- Goto Settings → Devices \u0026 Services → Add integration\n- Find HACS and follow the installation\n- Login with GitHub\n\n### 2 - Add the repository as a Custom repository\n\nIn the HACS interface:\n\n- Click on the 3 dots on top right corner\n- Select Custom repositories\n- Add the repo's URL [https://github.com/qcda1/ha_midnite_classic](https://github.com/qcda1/ha_midnite_classic)\n- Use Type Integration\n- Click Add\n\n### 3- Add the integration through HACS\n\nOnce the addition of the repository:\n\n- Search for Midnite Solar Classic in HACS\n- Click on \"Download\"\n- Restart Home Assistant: Settings → System → Restart (Restart icon top right).\n\n### 4 — Add the integration\n\nSettings → Devices \u0026 services → **+ Add integration** → search for **Midnite Solar Classic**.\n\n## Configuration\n\n### Step 1 — Connection\n\n\n| Field           | Description                            | Default |\n| --------------- | -------------------------------------- | ------- |\n| IP Address      | Classic's IP on the local network      | —       |\n| Modbus TCP Port | Classic's Modbus server port           | **502** |\n| Interval (s)    | Polling frequency in seconds (30–3600) | **60**  |\n\n\nThe integration connects immediately to validate the connection and read the device name (`Name` register).\n\n### Step 2 — Monitored parameters\n\nA checklist displays all parameters returned by your Classic.  \nChecked by default:\n\n`BatVoltage`, `PVVoltage`, `BatCurrent`, `EnergyToday`, `Power`, `ChargeStage`, `State`, `PVCurrent`, `TotalEnergy`, `Name`, `ChargeStateText`\n\n## Created entities\n\nEach selected parameter becomes a `sensor` entity with unit, device class and state class assigned automatically.\n\nFor example:\n\n\n| Parameter       | Unit | Class                     |\n| --------------- | ---- | ------------------------- |\n| BatVoltage      | V    | voltage / measurement     |\n| PVVoltage       | V    | voltage / measurement     |\n| BatCurrent      | A    | current / measurement     |\n| Power           | W    | power / measurement       |\n| EnergyToday     | kWh  | energy / total_increasing |\n| TotalEnergy     | kWh  | energy / total_increasing |\n| ChargeStateText | —    | —                         |\n\n\n## Options\n\nClick ⚙️ to change the polling interval or the monitored parameter list.  \nChanges take effect immediately.\n\n## Multiple Classic controllers\n\nRepeat \"Add integration\" with a different IP address for each device.\n\n## Troubleshooting\n\n\n| Symptom              | Solution                                                                 |\n| -------------------- | ------------------------------------------------------------------------ |\n| \"Cannot connect\"     | Check IP, port, and that the Classic is powered on and reachable from HA |\n| Unavailable entities | Check HA logs: Settings → System → Logs                                  |\n| pymodbus error       | Restart HA — pymodbus ≥ 3.6.0 is installed automatically                 |\n\n\n## License\n\nMIT.  \nBased on the work of [ClassicDIY/ClassicMQTT](https://github.com/ClassicDIY/ClassicMQTT) and [qcda1/MidniteClassic](https://github.com/qcda1/MidniteClassic).\n\n### Exemple config / Config example\n\n![Midnite Solar Classic](ha_midnite_classic.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqcda1%2Fha_midnite_classic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqcda1%2Fha_midnite_classic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqcda1%2Fha_midnite_classic/lists"}