{"id":33427544,"url":"https://github.com/krivatri/evcm","last_synced_at":"2026-02-10T08:01:00.159Z","repository":{"id":323453535,"uuid":"1093294989","full_name":"KriVaTri/EVCM","owner":"KriVaTri","description":"smart EV Charge Manager","archived":false,"fork":false,"pushed_at":"2026-02-07T14:45:09.000Z","size":932,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-07T16:12:49.265Z","etag":null,"topics":["consumption","energy-efficiency","home-assistant","vehicle-charging-control","wallbox"],"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/KriVaTri.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":"CODEOWNERS","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-11-10T07:15:42.000Z","updated_at":"2026-02-07T14:43:29.000Z","dependencies_parsed_at":"2026-02-07T08:03:25.397Z","dependency_job_id":null,"html_url":"https://github.com/KriVaTri/EVCM","commit_stats":null,"previous_names":["krivatri/evcm"],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/KriVaTri/EVCM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KriVaTri%2FEVCM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KriVaTri%2FEVCM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KriVaTri%2FEVCM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KriVaTri%2FEVCM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KriVaTri","download_url":"https://codeload.github.com/KriVaTri/EVCM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KriVaTri%2FEVCM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29294402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T03:42:42.660Z","status":"ssl_error","status_checked_at":"2026-02-10T03:42:41.897Z","response_time":65,"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":["consumption","energy-efficiency","home-assistant","vehicle-charging-control","wallbox"],"created_at":"2025-11-24T06:04:23.965Z","updated_at":"2026-02-10T08:01:00.123Z","avatar_url":"https://github.com/KriVaTri.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EVCM – EV Charging Manager for Home Assistant\n\n[![Latest Release](https://img.shields.io/github/v/release/KriVaTri/evcm?include_prereleases\u0026label=release)](https://github.com/KriVaTri/EVCM/releases)\n\n### This custom integration is about plugging your EV into your wallbox and forgetting about it.\n### You don’t have to worry about consuming excessive grid energy or pausing charging when conditions aren’t good.  \n### EVCM helps Home Assistant charge one or more electric vehicles only when it makes sense and is flexible in how you set it up.\n\n---\n\n## What does it actually do?\n\n- Allows users to automatically start and stop EV charging based on their preferences (with or without solar export)\n- Starts charging when there is enough available power\n- Pauses charging when you start importing too much from the grid\n- Turns the charging amps up or down to match what you have available\n- Can stop at a chosen EV battery percentage (EV SoC limit)\n- Can restrict charging to a time window (planner)\n- Can handle more than one wallbox with or without a priority order (who gets to charge first)\n- Lets you force charging manually if you just want to plug in and go\n- Supports phase switching for even better load balancing\n\nYou set a few numbers and switches; EVCM does the rest (aka the boring part).\n\n---\n\n## Example of a typical EVCM entry\n\n\u003cimg width=\"300\" height=\"519\" alt=\"EVCM image small\" src=\"https://github.com/user-attachments/assets/5cf1fc8a-e94b-4bdd-bb79-52a3cebaacba\" /\u003e \u003cimg width=\"300\" height=\"519\" alt=\"EVCM image small\" src=\"https://github.com/user-attachments/assets/efa7f342-2b50-400b-97ed-5dbfedc07a1b\" /\u003e\n\n---\n\n## Minimum required entities\n\nFrom your charger integration (e.g. Wallbox) you need:\n- Charge power sensor (sensor)\n- Charging status / state sensor (sensor)\n- Cable connected (binary_sensor)\n- Charging enable (switch)\n- Lock (lock entity)\n- Current setting (number entity to set amps)\n- A phase feedback sensor (only required when using the phase switching feature)\n\nFrom your energy setup:\n- Either a single “net power” sensor (positive = export, negative = import)  \n  OR separate export and import sensors\n\nOptional:\n- EV battery SoC (%) for use with the SoC limit function\n\nIf your setup does not expose these required entities directly (for example when using Modbus),\nyou can create **Template Helpers** in Home Assistant to bridge the gap.\n\n---\n\n## Communication method / latency note\n\nEVCM is a feedback loop (measure → decide → command → observe).  \nIt was primarily developed and tested with **local, low‑latency control** (e.g. MQTT on the LAN, typically sub‑second end‑to‑end).\n\nIf your charger is controlled through a **high‑latency and/or rate‑limited path** (e.g. a cloud API), you may experience:\n- slower response to changing conditions (export/import),\n- less accurate regulation,\n- repeated commands because state updates arrive late,\n\n**Recommendation:** prefer local control when possible. If you must use a cloud integration and are experiencing latency issues,\ninstructions are available in: [docs/README.md](docs/README.md#5-compatibility-and-required-entities) chapter 5.\n    \n---\n\n## Installation \n\n1. Via HACS: search for \"EVCM\", download and restart Home Assistant\n2. Or manual: copy `custom_components/evcm/` into your Home Assistant `config` directory and restart\n3. Add integration: Home Assistant → Settings → Devices \u0026 Services → Add Integration → search “EVCM”\n\n---\n\n## First setup\n\nDuring the config flow:\n1. Pick a name and how you provide net power (single net sensor vs export + import)\n2. Choose 1‑phase or 3‑phase (affects minimum power math)\n3. Select your wallbox (optional) and phase switching support (optional)\n4. Map the charger and grid sensors\n5. Enter the threshold bands:  \n   - ECO ON (used when the ECO switch is ON)  \n   - ECO OFF (used when the ECO switch is OFF)\n6. Set the sustain, debounce and scan interval timings\n7. Submit\n\n---\n\n## Everyday use\n\n- Plug in the EV\n- Make sure `Start/Stop` is ON\n- ECO ON uses the ECO ON thresholds; ECO OFF uses the other band (handy for different seasons like summer vs winter)\n- Watch it adjust amps up/down as sun/clouds change\n- Need to force charging? Turn `Manual` ON (ignores threshold gating and automatic current regulation)\n- Want it to stop at 80%? Set the SoC limit number to 80\n- Optionally: use the Max peak avg setting to override ECO thresholds if an easy adjustable or automated threshold is needed (e.g. prevent exceeding monthly max peak average)\n\n---\n\n## Multiple chargers\n\n- Each charger (“entry”) has its own switches\n- Turn `Priority Charging` ON (any entry’s proxy switch) to let only one charge at a time\n- Set order numbers (1, 2, 3…). Order 1 is “first in line.”\n- When the first finishes or reaches its SoC limit, the next starts if conditions allow\n\n---\n\n## Where to go next\n\n- Full deep-dive (all concepts, events, edge cases): [docs/README.md](docs/README.md)\n- Releases / changelog: [Releases](https://github.com/KriVaTri/EVCM/releases)\n- Issues / feedback: [GitHub Issues](https://github.com/KriVaTri/EVCM/issues)\n\n---\n\n## License\n\nMIT\n\n---\n\nHappy smart charging!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrivatri%2Fevcm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrivatri%2Fevcm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrivatri%2Fevcm/lists"}