{"id":26199204,"url":"https://github.com/ckarrie/ha-netgear-plus","last_synced_at":"2026-02-01T14:01:28.671Z","repository":{"id":69223846,"uuid":"307499856","full_name":"ckarrie/ha-netgear-plus","owner":"ckarrie","description":"HomeAssistant Netgear Switch Integration","archived":false,"fork":false,"pushed_at":"2025-06-15T11:26:35.000Z","size":253,"stargazers_count":31,"open_issues_count":11,"forks_count":13,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-06-15T11:44:25.125Z","etag":null,"topics":["custom-component","home-assistant","homeassistant","integration","netgear","networking"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ckarrie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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":"2020-10-26T20:45:24.000Z","updated_at":"2025-06-15T11:23:36.000Z","dependencies_parsed_at":"2024-06-28T22:35:12.105Z","dependency_job_id":"a72d3fc2-59fe-4e6d-bef8-3cf59ad2254d","html_url":"https://github.com/ckarrie/ha-netgear-plus","commit_stats":null,"previous_names":["ckarrie/ha-netgear-plus"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/ckarrie/ha-netgear-plus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckarrie%2Fha-netgear-plus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckarrie%2Fha-netgear-plus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckarrie%2Fha-netgear-plus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckarrie%2Fha-netgear-plus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ckarrie","download_url":"https://codeload.github.com/ckarrie/ha-netgear-plus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckarrie%2Fha-netgear-plus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28980159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T13:38:33.235Z","status":"ssl_error","status_checked_at":"2026-02-01T13:38:32.912Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["custom-component","home-assistant","homeassistant","integration","netgear","networking"],"created_at":"2025-03-12T02:57:48.650Z","updated_at":"2026-02-01T14:01:28.664Z","avatar_url":"https://github.com/ckarrie.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Home Assistant NETGEAR Plus Switches Integration\n\n## Warning for users of version \u003c= v0.6.1 installed through HACS\n\nDue to the renaming of the integration and the repository, HACS gets confused and installs the new version next to the old one instead of replacing the old version. Please remove the old version first before installing the latest release.\n\n## What it does\n\nGrabs statistical network data from [supported NETGEAR Switches](#supported-and-tested-netgear-modelsproducts-and-firmwares) from the\n[Plus Managed Network Switch](https://www.netgear.com/business/wired/switches/plus/) line. These switches can only be managed using a\nWeb interface and not through SNMP or cli. This integration uses web scraping to collect the switch configuration, statistics and\nsome basic configuration updates.\n\n## How it works\n\n1. Detecting Switch Model/Product in login.cgi\n2. Connects to the Switch and asks for a cookie (`http://IP_OF_SWITCH/login.cgi`)\n3. HTTP-Request send to the Switch twice (`http://IP_OF_SWITCH/portStatistics.cgi`) and compared with previous data (\"in response time\")\n\n## Which entities\n\n- overall Switch statistics as attributes\n  - Diagnostic Sensor: `switch_ip` - IP of the Switch\n  - Diagnostic Sensor: `response_time_s` - Response time of two requests send to the Switch to calculate the traffic speed\n  - ...\n- statistics for each Port (8 Ports for GS108Ev3) as attributes\n  - `port_{port}_receiving` - receiving traffic on `{port}` in MB/s\n  - `port_{port}_total_received` - total received traffic on `{port}` in MB\n  - `port_{port}_total_transferred` - total transferred traffic on `{port}` in MB\n  - ...\n- status for each port\n  - Binary Sensor: `port_{port}_status` - port cable connected/disconnected\n  - Sensor: `port_{port}_connection_speed` - port transmission speed (100M/1000M)\n\n### List of port sensors\n\n| Sensor Name                     | Platform      | mapped key from `get_switch_infos()` | Unit                                |\n| ------------------------------- | ------------- | ------------------------------------ | ----------------------------------- |\n| Port {port} Traffic Received    | SENSOR        | `port_{port}_traffic_rx_mbytes`      | MB (in response time)               |\n| Port {port} Traffic Transferred | SENSOR        | `port_{port}_traffic_tx_mbytes`      | MB (in response time)               |\n| Port {port} Receiving           | SENSOR        | `port_{port}_speed_rx_mbytes`        | MB/s                                |\n| Port {port} Transferring        | SENSOR        | `port_{port}_speed_tx_mbytes`        | MB/s                                |\n| Port {port} IO                  | SENSOR        | `port_{port}_speed_io_mbytes`        | MB/s                                |\n| Port {port} Total Received      | SENSOR        | `port_{port}_sum_rx_mbytes`          | MB (since last switch reboot/reset) |\n| Port {port} Total Transferred   | SENSOR        | `port_{port}_sum_tx_mbytes`          | MB (since last switch reboot/reset) |\n| Port {port} Connection Speed    | SENSOR        | `port_{port}_connection_speed`       | MB/s                                |\n| Port {port} Status              | BINARY_SENSOR | `port_{port}_status`                 | \"on\"/\"off\"                          |\n| Port {poe_port} POE Power       | SWITCH        | `port_{poe_port}_poe_power_active`   | \"on\"/\"off\"                          |\n\n### List of aggregated sensors\n\n| Sensor Name                | Platform | mapped key from `get_switch_infos()` | Unit                  |\n| -------------------------- | -------- | ------------------------------------ | --------------------- |\n| Switch IO                  | SENSOR   | `sum_port_speed_bps_io`              | MB/s                  |\n| Switch Traffic Received    | SENSOR   | `sum_port_traffic_rx`                | MB (in response time) |\n| Switch Traffic Transferred | SENSOR   | `sum_port_traffic_tx`                | MB (in response time) |\n\n## Supported and tested NETGEAR Models/Products and firmware versions\n\n| Model     | Ports | Firmware versions                      | Bootloader versions |\n| --------- | ----- | -------------------------------------- | ------------------- |\n| GS105E    | 5     | ?                                      |                     |\n| GS105Ev2  | 5     | V1.6.0.15                              | V1.4.0.5-VB         |\n| GS105PE   | 5     | V1.6.0.17                              | V1.6.0.2-VB         |\n| GS108E    | 8     | V1.00.11                               | V1.00.03            |\n| GS105Ev3  | 5     | ?                                      |                     |\n| GS108Ev3  | 8     | V2.00.05, V2.06.10, V2.06.17, V2.06.24 | V2.06.01 - V2.06.03 |\n| GS108Ev4  | 8     | V1.0.1.3                               |                     |\n| GS108PEv3 | 8     | V2.06.24                               | V2.06.01            |\n| GS110EMX  | 10    | V1.0.2.8                               |                     |\n| GS116Ev2  | 16    | V2.6.0.48, V2.6.0.50                   | ?                   |\n| GS305E    | 5     | V1.0.0.16                              | V1.0.0.2            |\n| GS305EP   | 5     | V1.0.1.1                               |                     |\n| GS305EPP  | 5     | V1.0.1.4                               |                     |\n| GS308E    | 8     | V1.00.11                               | V1.00.03            |\n| GS308EP   | 8     | V1.0.0.10, V1.0.1.4                    |                     |\n| GS308EPP  | 8     | V1.0.1.4                               |                     |\n| GS316EP   | 16    | V1.0.4.4                               |                     |\n| GS316EPP  | 16    | V1.0.4.4                               |                     |\n| JGS516PE  | 16    | V2.6.0.48                              |                     |\n| JGS24Ev2  | 24    | V2.6.0.48                              |                     |\n| XS512EM   | 12    | V1.0.2.8                               |                     |\n\nSupported firmware languages: GR (German), EN (English)\n\n## Unsupported models\n\n| Model    | Support status                                                  |\n| -------- | --------------------------------------------------------------- |\n| JGS524PE | See [#93](https://github.com/ckarrie/ha-netgear-plus/issues/93) |\n| MS108EUP | See [#91](https://github.com/ckarrie/ha-netgear-plus/issues/91) |\n\nDo you have a NETGEAR Plus switch model that is currently not supported, open a [GitHub issue](https://github.com/ckarrie/ha-netgear-plus/issues/new?template=feature_request.yml). The actual API to the switch is implemented in the [py-netgear-plus](https://github.com/foxey/py-netgear-plus) library. Are you willing to contribute, please read the [instruction on adding your model](https://github.com/foxey/py-netgear-plus/blob/main/HOWTO_Add_New_Models.md) to this library and create a pull request for [py-netgear-plus](https://github.com/foxey/py-netgear-plus) first.\n\n## How to integrate in Home Assistant\n\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=ckarrie\u0026repository=ha-netgear-plus\u0026category=integration)\n\n1. In your Home Assistant instance, goto **HACS** (Search: \"\u003ehacs\")\n2. Click on the right corner on the vertical dots and select \"Custom Repositories\"\n3. Add \"https://github.com/ckarrie/ha-netgear-plus\" as Integration\n\nAfter adding the integration go to [Add Integration](https://my.home-assistant.io/redirect/integrations/) and select **NETGEAR Plus**.\n\n### Lovelace examples\n\nExample with [ha-sankey-chart](https://github.com/MindFreeze/ha-sankey-chart)\n\n![image](https://github.com/ckarrie/ckw-ha-gs108e/assets/4140156/9e8ca08f-bd64-4b49-8408-2135107c53f5)\n\nExample with [mini-graph-card](https://github.com/kalkih/mini-graph-card)\n\n![image](https://github.com/ckarrie/ckw-ha-gs108e/assets/4140156/9f390bab-6d3e-4e9c-83df-39bd230d7309)\n\n```yaml\ntype: custom:mini-graph-card\nentities:\n  - entity: sensor.gs108ev3_192_168_178_8_port_1_io\n    show_points: false\n    name: QNAP\n  - entity: sensor.gs108ev3_192_168_178_8_port_2_io\n    show_points: false\n    name: P2\n  - entity: sensor.gs108ev3_192_168_178_8_port_3_io\n    show_points: false\n    name: rpi4-001\n  - entity: sensor.gs108ev3_192_168_178_8_port_4_io\n    show_points: false\n    name: Telefon\n  - entity: sensor.gs108ev3_192_168_178_8_port_5_io\n    show_points: false\n    name: Unraid\n  - entity: sensor.gs108ev3_192_168_178_8_port_6_io\n    show_points: false\n    name: Drucker\n  - entity: sensor.gs108ev3_192_168_178_8_port_7_io\n    show_points: false\n    name: Beelink (HA)\n  - entity: sensor.gs108ev3_192_168_178_8_port_8_io\n    show_points: false\n    name: HomeOffice und WLAN\nhours_to_show: 0.1\npoints_per_hour: 1000\nname: 192.168.178.8 - GS108Ev3 Büro\nline_width: 1\nanimate: true\n```\n\n## API Level\n\n### Create a python virtual environment\n\n```shell\npython3 -m venv .venv\nsource .venv/bin/activate\npip install py-netgear-plus\n```\n\nUsing this VENV go to your local source folder\n\n### Example calls\n\n```shell\ncd src\npython3\n```\n\n```python\nip = '192.168.178.68' # replace with IP address of your switch\np = 'fyce4gKZemkqjDY' # replace with your password\nimport py_netgear_plus\nsw = py_netgear_plus.NetgearSwitchConnector(ip, p)\nsw.autodetect_model()\nsw.get_login_cookie()\n\ndata = sw.get_switch_infos()\nprint(sw.switch_model.MODEL_NAME)\nprint(data[\"port_1_sum_rx_mbytes\"])\nprint(data)\nsw.turn_off_poe_port(1) # Supported only on PoE capable models\nsw.turn_on_poe_port(1)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckarrie%2Fha-netgear-plus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fckarrie%2Fha-netgear-plus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckarrie%2Fha-netgear-plus/lists"}