{"id":33928827,"url":"https://github.com/lamarqe/ha_openems","last_synced_at":"2026-05-02T14:01:38.362Z","repository":{"id":278804530,"uuid":"936828133","full_name":"Lamarqe/ha_openems","owner":"Lamarqe","description":"Home Assistant Integration for Fenecon FEMS and OpenEMS","archived":false,"fork":false,"pushed_at":"2026-05-02T07:08:16.000Z","size":969,"stargazers_count":50,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-05-02T09:16:37.475Z","etag":null,"topics":["fems","fenecon","home-assistant","homeassistant","homeassistant-custom-component","homeassistant-integration","openems"],"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/Lamarqe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-21T18:58:42.000Z","updated_at":"2026-04-17T05:55:24.000Z","dependencies_parsed_at":"2026-01-01T21:05:02.424Z","dependency_job_id":null,"html_url":"https://github.com/Lamarqe/ha_openems","commit_stats":null,"previous_names":["lamarqe/ha_openems"],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/Lamarqe/ha_openems","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lamarqe%2Fha_openems","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lamarqe%2Fha_openems/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lamarqe%2Fha_openems/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lamarqe%2Fha_openems/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lamarqe","download_url":"https://codeload.github.com/Lamarqe/ha_openems/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lamarqe%2Fha_openems/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32536582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T12:25:33.646Z","status":"ssl_error","status_checked_at":"2026-05-02T12:24:51.733Z","response_time":132,"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":["fems","fenecon","home-assistant","homeassistant","homeassistant-custom-component","homeassistant-integration","openems"],"created_at":"2025-12-12T11:48:03.998Z","updated_at":"2026-05-02T14:01:38.351Z","avatar_url":"https://github.com/Lamarqe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# ha_openems\nHome Assistant integration that interfaces Fenecon FEMS and OpenEMS systems.\n\n[![releasebadge]][release]\n[![License][license-shield]](LICENSE)\n[![hainstall][hainstallbadge]][hainstall]\n[![hacs][hacsbadge]][hacs]\n\n## Overview\n\n* The integration provides full read and write access to Fenecon and OpenEMS systems. Every property which is accessible or configurable via the regular UI is made available equally in the Home Assistant UI.\n* Integration of every backend property, even if not accessible via the regular UI.\n* Backend system configuration is made fully visible and accessible to the Home Assistant UI:\n\t*\t[Components](https://openems.github.io/openems.io/openems/latest/coreconcepts.html#_openems_component) are made available as Home Assistant service devices. \n\t*\t[Channels](https://openems.github.io/openems.io/openems/latest/coreconcepts.html#_channel) are made available as entities.\\\n   \t\t\u003cimg src=\"screenshots/config_entry.jpg\" width=\"600\"/\u003e\n*\tPre-configured UI cards for Storage, Charging Station and Optimized Charges apps. These cards are equal in the offered functionality as the regular Fenecon/OpenEMS built-in UI components.\n* Works with Fenecon and OpenEMS single and multi-edge systems.\n* Advanced configuration options to support non-standard connection types.\n* FEMS update discovery and installation option\n* Access to REST write App (if installed)\n\n## Table of contents\n\n  * [Features / Common Use-cases](#features--common-use-cases)\n  * [Installation](#installation)\n  * [Configuration](#configuration)\n  * [Disclaimer](#disclaimer) \n\n## Features / Common Use-cases:\n\n### Energy Dashboard\nUse the following entities to configure the Energy Dashboard:\n\u003ctable\u003e\n  \u003ctr\u003e\u003cth\u003eArea\u003c/th\u003e\u003cth\u003eOption\u003c/th\u003e\u003cth\u003eComponent\u003c/th\u003e\u003cth\u003eChannel\u003c/th\u003e\u003cth\u003e\u003ci\u003ecomment\u003c/i\u003e\u003c/th\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd rowspan=\"2\"\u003eElectricity Grid\u003c/td\u003e\u003ctd\u003eGrid Consumption \u003c/td\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eGridBuyActiveEnergy\u003c/td\u003e\u003ctd\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eReturn to Grid \u003c/td\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eGridSellActiveEnergy\u003c/td\u003e\u003ctd\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd rowspan=\"3\"\u003eSolar Panels\u003c/td\u003e\u003ctd rowspan=\"3\"\u003eSolar production \u003c/td\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eProductionActiveEnergy\u003c/td\u003e\u003ctd\u003e\u003ci\u003ecombined view\u003c/i\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003epvInverter*\u003c/td\u003e\u003ctd\u003eActiveProductionEnergy\u003c/td\u003e\u003ctd rowspan=\"2\"\u003e\u003ci\u003eindividual view\u003c/i\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003echarger*\u003c/td\u003e\u003ctd\u003eActualEnergy\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd rowspan=\"4\"\u003eHome Battery Storage\u003c/td\u003e\u003ctd rowspan=\"4\"\u003eBattery systems\u003c/td\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eEssDcDischargeEnergy\u003c/td\u003e\u003ctd rowspan=\"2\"\u003e\u003ci\u003ecombined view\u003c/i\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eEssDcChargeEnergy\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eess*\u003c/td\u003e\u003ctd\u003eDcChargeEnergy\u003c/td\u003e\u003ctd rowspan=\"2\"\u003e\u003ci\u003eindividual view\u003c/i\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eess*\u003c/td\u003e\u003ctd\u003eDcDischargeEnergy\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n### [Power Flow card plus](https://github.com/flixlix/power-flow-card-plus)\nUse the following entities to configure the Power Flow card plus:\n\u003ctable\u003e\n  \u003ctr\u003e\u003cth\u003eArea\u003c/th\u003e\u003cth\u003eOption\u003c/th\u003e\u003cth\u003eComponent\u003c/th\u003e\u003cth\u003eChannel\u003c/th\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eGrid\u003c/td\u003e\u003ctd\u003eCombined\u003c/td\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eGridActivePower\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eSolar\u003c/td\u003e\u003ctd\u003e\u003c/td\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eProductionActivePower\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd rowspan=\"2\"\u003eBattery\u003c/td\u003e\u003ctd\u003eCombined\u003c/td\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eEssDischargePower\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eState of Charge\u003c/td\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eEssSoc\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eHome\u003c/td\u003e\u003ctd\u003e\u003c/td\u003e\u003ctd\u003e_sum\u003c/td\u003e\u003ctd\u003eConsumptionActivePower\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n### Apps (template UI cards)\n\nTo use the template cards, do the following:\n1. The template cards depend on the following prerequisites (Please install via HACS):\n     * [Decluttering card](https://github.com/custom-cards/decluttering-card)\n     * [Config template card](https://github.com/iantrich/config-template-card)\n     * [Button card](https://github.com/custom-cards/button-card)\n     * [Template entity row](https://github.com/thomasloven/lovelace-template-entity-row)\n3. Navigate to the dashboard in which you want to use the card\n4. Select edit mode (pencil on the top right corner)\n5. From the 3-dots menu in the top right corner, select \"raw editor\"\n6. Paste the full contents of [openems_templates.yaml](openems_templates.yaml) before the dashboard contents\n7. Go back to regular edit mode\n8. add a new user-defined card, using yaml. \n\n*All texts are automatically translated to your Home Assistant default language*\n\n#### EV Charging\n**Sample Card config**\n```\ntype: custom:decluttering-card\ntemplate: evcs_template\nvariables:\n  - system: fems12345\n  - evcs_id: 0\n  - ctrlevcs_id: 0\n```\n\n**Card variables**\n* `system`: Set to your FEMS/OpenEMS system name\n* `evcs_id`: Set to your EVCS AppID. Eg `0` if your EVCS component is called `evcs0`. Default value: 0\n* `ctrlevcs_id`: Set to your CtrlEVCS AppID. Eg `1` if your EVCS component is called `ctrlEvcs1`. Default value: 0\n\n**Card screenshot** (German version)\\\n![image](screenshots/evcs.jpg)\n\n#### Grid Optimized Charge\n**Sample Card config**\n```\ntype: custom:decluttering-card\ntemplate: optchrg_template\nvariables:\n  - system: fems12345\n  - ctrlgridoptimizedcharge_id: 0\n```\n\n**Card variables**\n* `system`: Set to your FEMS/OpenEMS system name\n* `ctrlgridoptimizedcharge_id`: Set to your grid optimized charge AppID. Eg `5` if your optchrg component is called `ctrlGridOptimizedCharge5`. Default value: 0\n\n**Card screenshot** (German version)\\\n_Note: unapplicable options are automatically hidden and thus not visible in the screenshot_\n![image](screenshots/gridoptimizedcharge.jpg)\n\n#### Emergency Capacity Reserve\n**Sample Card config**\n```\ntype: custom:decluttering-card\ntemplate: ess_template\nvariables:\n  - system: fems12345\n  - ctrlemergencycapacityreserve_id: 0\n```\n\n**Card variables**\n* `system`: Set to your FEMS/OpenEMS system name\n* `ctrlemergencycapacityreserve_id`: Set to your emergency capacity AppID. Eg `0` if the component is called `ctrlEmergencyCapacityReserve0`. Default value: 0\n\n**Card screenshot** (German version)\\\n![image](screenshots/ess.jpg)\n\n#### Heating Element\n**Sample Card config**\n```\ntype: custom:decluttering-card\ntemplate: heating_template\nvariables:\n  - system: fems12345\n  - ctrlioheatingelement_id: 0\n```\n\n**Card variables**\n* `system`: Set to your FEMS/OpenEMS system name\n* `ctrlioheatingelement_id`: Set to your heating element AppID. Eg `0` if the component is called `ctrlioheatingelement0`. Default value: 0\n\n**Card screenshot** (German version)\\\n![image](screenshots/heatingelement.png)\n\n### Detailed battery diagnosis dashboard (component: battery*)\nThe integration is supports calculation of additional information, derived from other sensors, which are not provided by FEMS by default.\nBy that, ΔU calculations for the entire battery system and indiviual battery modules are provided.\nA pre-configured dashboard [battery_diagnosis_dashboard_fems12345.yaml](battery_diagnosis_dashboard_fems12345.yaml) can be used as a starting point for a personal dashboard configuration:\n\u003cimg src=\"screenshots/battery_diagnosis_dashboard.jpg\" width=\"800\"/\u003e\n\nBefore using the default dashboard (by copying the files content and pasting it into the dashboard raw yaml editor), please replace all occurences of the string \"fems12345\" with the ID of your personal FEMS or openems system.\n\nFurthermore, the dashboard uses the following entities which are to the majority not enabled by default. Before using the dashboard, please enable the components and entities as described in the Configuration chapter further below in this manual. \n\nThe dashboard also makes use of the [Mushroom](https://github.com/piitaya/lovelace-mushroom) and [Button card](https://github.com/custom-cards/button-card) UI widgets. In order to use these, please install via HACS.\n\nEntities to be enabled, used within the default dashboard configuration:\n- **_sum**\n  - `ConsumptionActiveEnergy`, `ConsumptionActivePower`, `ConsumptionActivePowerL1`, `ConsumptionActivePowerL2`, `ConsumptionActivePowerL3`, `EssActiveChargeEnergy`, `EssActiveDischargeEnergy`, `EssActivePower`, `EssActivePowerL1`, `EssActivePowerL1`, `EssActivePowerL3`, `EssDcChargeEnergy`, `EssDcDischargeEnergy`, `GridActivePower`, `GridActivePowerL1`, `GridActivePowerL2`, `GridActivePowerL3`, `GridBuyActiveEnergy`, `GridSellActiveEnergy`, `ProductionActiveEnergy`, `ProductionDcActualPower` \n- **battery0**\n  - `Current`, `Level1CellUnderVoltage`, `Level2CellUnderVoltage`, `LowMinVoltageFault`, `LowMinVoltageFaultBatteryStopped`, `LowMinVoltageWarning`, `MaxCellTemperature`, `MaxCellVoltage`, `MinCellTemperature`, `MinCellVoltage`, `ModbusCommunicationFailed`, `RunFailed`, `Soc`, `Soh`, `StatusAlarm`, `StatusWarning`, `Tower0Level1CellUnderVoltage`, `Tower0Level2CellUnderVoltage`, `Tower0Module0CellVoltageDifference`, `Tower0Module1CellVoltageDifference`, `Tower0Module2CellVoltageDifference`, `Tower0Module3CellVoltageDifference`, `Tower0PackVoltage`, `Tower0StatusAlarm`, `Tower0StatusFault`, `Tower0StatusWarning`, `VoltageDifference`\n- **charger0**\n  - `ActualPower`\n- **charger1**\n  - `ActualPower`\n\n### Additional commonly used components\n\n#### BatteryInverter*\nContains entities for inverter properties like:\n- temperatures of inverter, air, ...\n  - `bmspacktemperature`\n  - `airtemperature`\n  - `radiatortemperature`\n- The state of health: `bmssoh`\n\u003cimg src=\"screenshots/batteryinverter.png\" width=\"250\"/\u003e\n\n#### CtrlIoHeatPump*\nHere you will find the current state of your SG ready connected heatpump.\\\n\u003cimg src=\"screenshots/heatpump.jpg\" width=\"250\"/\u003e\n\n#### meter*\nHere you find the grids frequency.\\\n\u003cimg src=\"screenshots/meter.jpg\" width=\"400\"/\u003e\n\n### REST Write App\nUse the service **update_value** to cyclically send REST commands to the backend:\n\u003ctable\u003e\n  \u003ctr\u003e\u003cth\u003eParameter\u003c/th\u003e\u003cth\u003eMeaning\u003c/th\u003e\u003cth\u003eDefault value\u003c/th\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eentity\u003c/td\u003e\u003ctd\u003eThe channel to update\u003c/td\u003e\u003ctd\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003evalue\u003c/td\u003e\u003ctd\u003eThe new target value\u003c/td\u003e\u003ctd\u003e\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003etimeout\u003c/td\u003e\u003ctd\u003eDuration until when cyclic updates will be sent.\u003cbr\u003e Use 0 for sending values until the next service call for the same entity.\u003c/td\u003e\u003ctd\u003e0\u003c/td\u003e\u003c/tr\u003e\n  \u003ctr\u003e\u003ctd\u003eupdate cycle\u003c/td\u003e\u003ctd\u003eCycle in which a new request will be sent.\u003cbr\u003e This is necessary because by default, FEMS will reset REST value requests after 60 seconds by default. Setting update cycle to 0 will trigger a single REST call only.\u003cbr\u003e \u003c/td\u003e\u003ctd\u003e30\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n_Note: Values sent via REST write are not reflected by the backend and thus not visible in Home Assistant._\n\n## Installation\n\n### HACS\n\n1. Install HACS (https://hacs.xyz/docs/setup/download)\n2. Select and enable \"Fenecon FEMS \u0026 OpenEMS\" Integration\n\n## Configuration\nNavigate to Settings -\u003e Devices \u0026 Services -\u003e Integrations. Click \"Add Integration\" and select \"Fenecon FEMS \u0026 OpenEMS\" from the list.\n### Main configuration dialog\nEnter your connection details: \nParameter | Description\n------ | ---------- \nHost | The hostname or IP address of your Fenecon or OpenEMS system. E.g. `fems12345` or `192.168.1.100`\nUsername | The username to access the system. Use `x` for local monitoring access. For FEMS online monitoring, your Email address is used as username\nPassword | For local monitoring of FEMS systems, common values are `user` (read-only access) or `owner` (write access)\nConnection Type\u003cbr\u003e | Choose 1 of the 5 supported connection types:\u003cbr\u003e\u003cli\u003eFEMS local monitoring (port 80)\u003c/li\u003e\u003cli\u003eOpenEMS local monitoring (port 8082)\u003c/li\u003e\u003cli\u003eDirect edge Websocket connection (port 8085). This is the standard connection type and pre-selected by default\u003c/li\u003e\u003cli\u003eFenecon online monitoring at portal.fenecon.de (hostname option will not be used)\u003c/li\u003e\u003cli\u003eCustom Websocket URL (hostname option will not be used)\u003c/li\u003e\nCustom URL* | Custom Websocket URL, eg: `ws://192.168.1.100:8888/websocket`\n\n*Options _Connection Type_ and _Custom URL_ are visible only to users who enabled **Advanced Mode**: In the bottom left, select your username to go to your [User profile](https://my.home-assistant.io/redirect/profile), and enable Advanced mode.\n\n#### Selection of components and channels to be integrated\nAfter setting up the config entry, there is a [default list](https://github.com/Lamarqe/ha_openems/blob/main/custom_components/openems/config/default_channels.json) of entities which is enabled. Entities for channels outside of these components are initially not created. Other entities within the created components are disabled by default.\n\nIn order to add or remove entities of additional or unwanted components, start the options flow by selecting the Configure option right next to the config entry name:\n\n\u003cimg src=\"screenshots/options_flow.jpg\" width=\"400\"/\u003e\nAfterwards, a dialog will appear which allows to enable or disable each component in the configured system (screenshot shortened. Depending on your system configuration, there can be 20 to 50 components available in the list):\n\n\u003cimg src=\"screenshots/options_dialog.jpg\" width=\"200\"/\u003e\n\n#### Select entities that will be active in Home Assistant \nAlso for enabled components, most of the entities created are disabled by default. In order to adjust the selection, click the entities number of the config entry (\"1038 entities\" in the screenshot above).\nThis will open the entities dialog. In this dialog, (1) activate multi-select, (2) select the entities you want to enable or disable, then (3) enable / disable the selected items via the 3 dot menu on the top right:\n\n\u003cimg src=\"screenshots/entity_selection.jpg\" width=\"500\"/\u003e\n**Only enabled entities will be subscribed in the backed!**\n\n#### Check the backend for configuration changes, change connection details\nIn case of changes in the backend, users can check the backend for changes and with that update the config entries list of components and channels.\nIn order to do so, select the 3 dots next to the config entry. From the resulting menu, select **Reload**\n\nFuthermore, in case the connection details shall be adjusted, you can use the same menu and select **Reconfigure**. This will bring up the main config dialog and allow you to make all necessary changes.\n\n\u003cimg src=\"screenshots/reload_reconfigure.jpg\" width=\"600\"/\u003e\n\n\n\n## Disclaimer\n\n### Tested Setups\n\n* Fenecon Home 10 systems with \n\t* EV Chargers\n\t\t* Keba \n\t\t* Hardy Barth\n\t* FEMS Relaisboard\n\t* Heatpumps (Fenecon App Power to Heat)\n\t\t*  Vaillant\n\n### Limitations\n\n- This integration is not affiliated with Fenecon.\n\t- Fenecon might change APIs with upcoming version.\n\t- The developers take no responsibility for anything that happens to your equipment due to this integration. I.e., \n\t\t- Please be careful with controlling entities which are not enabled by default.\n\t\t-  By default, only a few pre-configured channels are enabled per component. However, there is no limitation how many channels can be enabled in parallel. Please be careful about expanding to very large numbers (multiple hundreds).\n \n[license-shield]: https://img.shields.io/github/license/Lamarqe/ha_openems.svg?style=for-the-badge\n[release]: https://github.com/Lamarqe/ha_openems/releases\n[releasebadge]: https://img.shields.io/github/v/release/Lamarqe/ha_openems?style=for-the-badge\n[hainstall]: https://my.home-assistant.io/redirect/config_flow_start/?domain=openems\n[hainstallbadge]: https://img.shields.io/badge/dynamic/json?style=for-the-badge\u0026logo=home-assistant\u0026logoColor=ccc\u0026label=usage\u0026suffix=%20installs\u0026cacheSeconds=15600\u0026url=https://analytics.home-assistant.io/custom_integrations.json\u0026query=$.openems.total\n[hacs]: https://hacs.xyz\n[hacsbadge]: https://img.shields.io/badge/HACS-Default-green.svg?style=for-the-badge\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamarqe%2Fha_openems","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flamarqe%2Fha_openems","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamarqe%2Fha_openems/lists"}