{"id":34030608,"url":"https://github.com/sermatec-opensource/sermatec-inverter","last_synced_at":"2026-03-09T08:31:10.777Z","repository":{"id":58009741,"uuid":"528771851","full_name":"sermatec-opensource/sermatec-inverter","owner":"sermatec-opensource","description":"LAN communication docs and scripts for the Sermatec solar inverter.","archived":false,"fork":false,"pushed_at":"2024-07-18T09:24:11.000Z","size":787,"stargazers_count":4,"open_issues_count":15,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-14T12:23:07.357Z","etag":null,"topics":["protocol","sermatec","solar","solar-inverter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sermatec-opensource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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}},"created_at":"2022-08-25T09:02:50.000Z","updated_at":"2024-07-18T09:24:14.000Z","dependencies_parsed_at":"2024-04-25T07:36:57.572Z","dependency_job_id":null,"html_url":"https://github.com/sermatec-opensource/sermatec-inverter","commit_stats":{"total_commits":38,"total_committers":3,"mean_commits":"12.666666666666666","dds":0.1842105263157895,"last_synced_commit":"6b2f7d499053a739692482e88e91c261341e386c"},"previous_names":["andreondra/sermatec-inverter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sermatec-opensource/sermatec-inverter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermatec-opensource%2Fsermatec-inverter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermatec-opensource%2Fsermatec-inverter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermatec-opensource%2Fsermatec-inverter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermatec-opensource%2Fsermatec-inverter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sermatec-opensource","download_url":"https://codeload.github.com/sermatec-opensource/sermatec-inverter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermatec-opensource%2Fsermatec-inverter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30287804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"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":["protocol","sermatec","solar","solar-inverter"],"created_at":"2025-12-13T18:01:52.116Z","updated_at":"2026-03-09T08:31:10.767Z","avatar_url":"https://github.com/sermatec-opensource.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![License badge](https://img.shields.io/github/license/andreondra/sermatec-inverter?style=for-the-badge)\n\n# Sermatec Solar Inverter\n\nThis repository contains local API documentation for the Sermatec solar inverter and communication scripts.\n\nWhole communication with the inverter runs through the UART-TCP converter USR-WIFI232-B2, which supports 802.11 b/g/n. It works either in a station mode (for connection to the home AP) or in a access point mode (local connection mode in the official ap). See docs below for more technical information.\n\n## Index\n### Generic contribution guide\nIf you want to contribute, please check the guidelines first: [`CONTRIBUTING.md`](docs/CONTRIBUTING.md).\n\n### (Obsolete) Reverse-engineering (development) guides\n~~If you want to help with decoding the proprietary Sermatec protocol, choose if you want to use the physical Android device or a virtual one and continue with the appropriate guide.~~\nThis is no longer needed due to protocol description extracted from the official app. However, the guides may be still useful for another project, so I preserve them here.\n- [`RE_AVD.md`](docs/RE_AVD.md): Android virtual device configuration.\n- [`RE_PHYSICAL_DEVICE.md`](docs/RE_PHYSICAL_DEVICE.md): Physical device configuration.\n- [`RE_DATA_INSPECTION.md`](docs/RE_DATA_INSPECTION.md): Data inspection guide.\n\n### Inverter and protocol docs\nThis is available in [separate repository](https://github.com/sermatec-opensource/docs).\n\n## Console interface usage\n\nThe script takes very few args to run:\n1. the ip of your inverter.\n2. operation to do\n    - `get`: retrieve data from inverter, must be followed by type of data:\n        - systemInformation, batteryStatus, gridPVStatus, runningStatus, workingParameters, load, bmsStatus\n    - `customget`: sent custom query command, must be followed by command code (single byte, decimal or hex):\n        - e.g. `0x98`\n        - use with care, may cause unexpected/dangerous behaviour\n    - `set`: set configuration data\n        - *experimental support, may be dangerous and screw things up*,\n        - syntax: `set \u003ctag\u003e \u003cvalue\u003e`,\n        - see section [Configurable parameters](#configurable-parameters) for supported parameters and their allowed values,\n        - some parameters require to shut down the inverter before configuring,\n        - the script should refuse setting of invalid values, but either way, be very **VERY** careful.\n\nThe script also takes few optional args:\n1. the `-v` flag to have a verbose output.\n2. the `--port` arg to use a different port than default 8899 for inverter connection.\n3. the `-h` or `--help` flag to display the help about the command\n4. the `--raw` arg to not parse a response from the inverter (only raw data will be shown, useful for debugging, testing and development)\n5. the `--protocolFilePath` arg to supply a custom path to JSON describing the protocol. Usually not needed.\n\n### Examples\nHaving battery info on an inverter with 10.0.0.254 ip:\n```bash\npython3 -m src.sermatec_inverter 10.0.0.254 get batteryStatus\n```\nHaving grid info using the verbose mode with a 192.168.0.254 inverter with port 8900:\n```bash\npython3 -m src.sermatec_inverter -v --port=8900 192.168.0.254 get gridPVStatus\n```\n\n### Configurable parameters\n| Tag | Description | Supported values | Inverter has to be shut down |\n|-----|-------------|------------------| ---------------------------- |\n| `onOff` | Turn inverter on or off. | 1: on, 0: off | no |\n| `operatingMode` | Change inverter operating mode. | \"General Mode\", \"Energy Storage Mode\", \"Micro-grid\", \"Peak-Valley\", \"AC Coupling\" | no |\n| `antiBackflow` | Enable backflow protection. | 1: on, 0: off | yes |\n| `soc` | Change lower-limit of on-grid battery SOC | 10-100 | no |\n\n## Download\n### *Newest version:* Source\n```\ngit clone https://github.com/andreondra/sermatec-inverter.git\ncd sermatec-inverter\npython3 -m src.sermatec_inverter --help\n```\n\n### *Docker / Docker-compose:*\nThis method require to have both `docker` and `docker compose` setup on your computer (`docker compose` is now embedded officially when you install docker).\nRefer to this [official documentation](https://docs.docker.com/get-docker/) to have it installed.\n\nOnce done: you can use the docker-compose to run the app in a controlled environment:\n```bash\ngit clone https://github.com/andreondra/sermatec-inverter.git\ncd sermatec-inverter\ndocker compose run python-bash\n```\nOnce the container started, you'll be in a bash environment with all your need for working and running the script:\n```bash\npython3 -m sermatec_inverter --help\n```\n\n### *Old stable version:* PyPI package\n```\npip install sermatec-inverter\npython3 -m sermatec_inverter --help\n```\n\n## License\nThe project is licensed under the MIT License. (C) Ondrej Golasowski\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsermatec-opensource%2Fsermatec-inverter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsermatec-opensource%2Fsermatec-inverter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsermatec-opensource%2Fsermatec-inverter/lists"}