{"id":16396,"name":"huawei_solar","description":"This integration exposes the information and functions made available by Huawei Solar inverters directly via one of its Modbus interfaces in Home Assistant.","url":"https://github.com/wlcrs/huawei_solar","last_synced_at":"2026-05-02T15:04:16.379Z","repository":{"id":37104270,"uuid":"419381725","full_name":"wlcrs/huawei_solar","owner":"wlcrs","description":"Home Assistant integration for Huawei Solar inverters via Modbus","archived":false,"fork":false,"pushed_at":"2026-05-01T06:25:49.000Z","size":1343,"stargazers_count":873,"open_issues_count":4,"forks_count":122,"subscribers_count":35,"default_branch":"main","last_synced_at":"2026-05-01T08:31:03.537Z","etag":null,"topics":["home-assistant","home-assistant-integration","huawei","huawei-solar","modbus","modbus-rtu","modbus-tcp","solar-energy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wlcrs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"wlcrs"}},"created_at":"2021-10-20T15:12:45.000Z","updated_at":"2026-05-01T06:23:58.000Z","dependencies_parsed_at":"2023-02-05T16:01:12.259Z","dependency_job_id":"537bd48c-1cda-44de-a433-28b88718ffb9","html_url":"https://github.com/wlcrs/huawei_solar","commit_stats":{"total_commits":303,"total_committers":25,"mean_commits":12.12,"dds":"0.13201320132013206","last_synced_commit":"76ed7e879f47d8829713ef64f7ec573772c6bcda"},"previous_names":[],"tags_count":97,"template":false,"template_full_name":null,"purl":"pkg:github/wlcrs/huawei_solar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlcrs%2Fhuawei_solar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlcrs%2Fhuawei_solar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlcrs%2Fhuawei_solar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlcrs%2Fhuawei_solar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wlcrs","download_url":"https://codeload.github.com/wlcrs/huawei_solar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlcrs%2Fhuawei_solar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32538268,"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"}},"owner":{"login":"wlcrs","name":"Thijs W.","uuid":"2150060","kind":"user","description":"","email":"","website":null,"location":"Ghent, Belgium","twitter":null,"company":"imec / Ghent University ","icon_url":"https://avatars.githubusercontent.com/u/2150060?v=4","repositories_count":9,"last_synced_at":"2024-05-01T10:58:21.327Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/wlcrs","funding_links":["https://github.com/sponsors/wlcrs"],"total_stars":470,"followers":40,"following":0,"created_at":"2022-11-14T11:02:18.281Z","updated_at":"2024-05-01T10:58:22.610Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wlcrs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wlcrs/repositories"},"packages":[],"commits":{"id":1331670,"full_name":"wlcrs/huawei_solar","default_branch":"main","total_commits":427,"total_committers":31,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":13.774193548387096,"dds":0.1241217798594848,"past_year_total_commits":99,"past_year_total_committers":8,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":12.375,"past_year_dds":0.12121212121212122,"last_synced_at":"2026-04-30T14:05:18.667Z","last_synced_commit":"9a4e37ba2262da777899285132d6faaf5aa67f58","created_at":"2023-09-11T17:06:31.328Z","updated_at":"2026-04-30T14:03:41.849Z","committers":[{"name":"wlcrs","email":"wlcrs","login":"wlcrs","count":374},{"name":"alexdelli","email":"alexdelli@gmail.com","login":"alexdelli","count":5},{"name":"Kevin","email":"kevinbayer8@gmail.com","login":"smoki3","count":4},{"name":"Sebastian Englbrecht","email":"32066572+herostrat","login":"herostrat","count":4},{"name":"Borty97","email":"60492018+Borty97","login":"Borty97","count":3},{"name":"Roving Ronin","email":"108674933+Roving-Ronin","login":"Roving-Ronin","count":3},{"name":"Víctor Pont","email":"victor.pont@neobookings.com","login":"vpont","count":3},{"name":"peetersch","email":"100499153+peetersch","login":"peetersch","count":3},{"name":"Marcin Kornat","email":"marcin.kornat@gmail.com","login":"mkornat","count":2},{"name":"TomHarm","email":"140442190+TomHarm","login":"TomHarm","count":2},{"name":"Tomasz","email":"t.jagusz@gmail.com","login":"Misiu","count":2},{"name":"yousaf465","email":"83491212+yousaf465","login":"yousaf465","count":2},{"name":"Evert Amssoms","email":"evert@xtala.be","login":"xtala","count":2},{"name":"Adrià Cereto Massagué","email":"ssorgatem@gmail.com","login":"ssorgatem","count":1},{"name":"Andurill","email":"116340711+Andurilll","login":"Andurilll","count":1},{"name":"Breina","email":"brecht.derwael@gmail.com","login":"Breina","count":1},{"name":"Frederic Mariën","email":"FredericMa","login":"FredericMa","count":1},{"name":"Iñigo Martinez Lasala","email":"inigoml@gmail.com","login":"inigoml","count":1},{"name":"John McLear","email":"john@mclear.co.uk","login":"JohnMcLear","count":1},{"name":"Kev","email":"kev@nurzen.de","login":"nurzen","count":1},{"name":"Leandro Issa","email":"67451572+LeandroIssa","login":"LeandroIssa","count":1},{"name":"Malte Gerken","email":"malte.gerken@gmail.com","login":"malteger","count":1},{"name":"Marc-Philip","email":"marc-philip.werner@sap.com","login":"mpw96","count":1},{"name":"Ole Ernst","email":"olebowle@gmx.com","login":"olebowle","count":1},{"name":"Rob Long","email":"rob@long.id.au","login":"robbo600","count":1},{"name":"Răzvan Corneliu C.R. VILT","email":"16434603+d3vi1.","login":"d3vi1.","count":1},{"name":"Stefan","email":"stefanv@gmx.net","login":"stefanvogel","count":1},{"name":"Sven Serlier","email":"85389871+wrt54g","login":"wrt54g","count":1},{"name":"Tomas Chladek","email":"chladektomas@gmail.com","login":"ThomasCZ","count":1},{"name":"Velizar Danev","email":"153720580+veliodanev","login":"veliodanev","count":1},{"name":"bstenborg","email":"97537859+bstenborg","login":"bstenborg","count":1}],"past_year_committers":[{"name":"wlcrs","email":"wlcrs","login":"wlcrs","count":87},{"name":"Kevin","email":"kevinbayer8@gmail.com","login":"smoki3","count":4},{"name":"Sebastian Englbrecht","email":"32066572+herostrat","login":"herostrat","count":3},{"name":"alexdelli","email":"alexdelli@gmail.com","login":"alexdelli","count":1},{"name":"Velizar Danev","email":"153720580+veliodanev","login":"veliodanev","count":1},{"name":"Tomas Chladek","email":"chladektomas@gmail.com","login":"ThomasCZ","count":1},{"name":"Răzvan Corneliu C.R. VILT","email":"16434603+d3vi1.","login":"d3vi1.","count":1},{"name":"Adrià Cereto Massagué","email":"ssorgatem@gmail.com","login":"ssorgatem","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlcrs%2Fhuawei_solar/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-02T00:00:10.230Z","repositories_count":6224850,"commits_count":900571481,"contributors_count":34906885,"owners_count":1147781,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"wlcrs/huawei_solar","html_url":"https://github.com/wlcrs/huawei_solar","last_synced_at":"2026-04-30T14:02:56.253Z","status":"active","issues_count":440,"pull_requests_count":112,"avg_time_to_close_issue":1504382.0408719345,"avg_time_to_close_pull_request":717397.3434343435,"issues_closed_count":367,"pull_requests_closed_count":99,"pull_request_authors_count":30,"issue_authors_count":321,"avg_comments_per_issue":4.877272727272727,"avg_comments_per_pull_request":1.1964285714285714,"merged_pull_requests_count":74,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":85,"past_year_pull_requests_count":25,"past_year_avg_time_to_close_issue":482048.47540983604,"past_year_avg_time_to_close_pull_request":419558.5882352941,"past_year_issues_closed_count":61,"past_year_pull_requests_closed_count":17,"past_year_pull_request_authors_count":8,"past_year_issue_authors_count":75,"past_year_avg_comments_per_issue":3.6705882352941175,"past_year_avg_comments_per_pull_request":0.84,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":12,"created_at":"2023-09-11T17:07:12.837Z","updated_at":"2026-04-30T14:02:56.253Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlcrs%2Fhuawei_solar","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlcrs%2Fhuawei_solar/issues","issue_labels_count":{"bug":310,"enhancement":32,"stale":18,"incomplete":5,"help wanted":4,"on-hold":4,"wontfix":4},"pull_request_labels_count":{"stale":9,"on-hold":1},"issue_author_associations_count":{"NONE":407,"CONTRIBUTOR":25,"OWNER":8},"pull_request_author_associations_count":{"CONTRIBUTOR":48,"OWNER":40,"NONE":24},"issue_authors":{"heinemannj":13,"Roving-Ronin":10,"wlcrs":8,"XalaTheShepard":5,"smoki3":5,"Ivano62":5,"JensenNick":4,"elilei123":4,"MayBankCH":3,"kurtdefeyter":3,"markusgaller1978":3,"JohnMcLear":3,"nicx":3,"perk737":3,"SvenAbels":3,"home409ca":3,"luzik":3,"AnKloss":3,"luotinen":3,"johanvh83":2,"petr5250":2,"julianbl":2,"wpformation":2,"yousaf465":2,"jodewee":2,"skaccox":2,"ragesoft":2,"artcrime":2,"Krasto82":2,"NiFu90":2,"lomtaslipptas":2,"etamtlosz":2,"mbuchber":2,"spelzl":2,"t-solak":2,"Lk1975":2,"RikBast":2,"themaninspain":2,"spac3h":2,"MariuszWoszczynski":2,"LotharWoman":2,"santanar00":2,"ogghi":2,"ThomDietrich":2,"pschraml":2,"barto64":2,"szczukot":2,"tde01065":2,"screamer3003":2,"woopstar":2,"scorpio2k2":2,"scruysberghs":2,"TopoDiFogna":2,"stefanvogel":2,"nedievas":2,"cristianmitea":2,"boku78":2,"ruteclrp":2,"Kugelfang666":2,"MHKnowles":2,"valimaties":2,"driesvandamme":2,"Misiu":2,"joaopedrocg27":2,"tackin":2,"GiulioBen":2,"cvanlith":2,"nurzen":2,"malakudi":2,"danise76":2,"Infernoken76":1,"adis1987":1,"offtopic":1,"ChristophCaina":1,"jenssvedlund":1,"AtomArne":1,"techwolfpl":1,"martin346456":1,"ripcam21":1,"peterdedecker83":1,"radudorurus":1,"core66":1,"Marlov11":1,"Flost42600":1,"nicelback":1,"daxxxit":1,"rclarsfull":1,"RabAusten":1,"patriknoomi":1,"berta24":1,"bbday":1,"ablyes":1,"MattiaFontanaErrepinet":1,"chriguschneider":1,"Carlett86":1,"Isengo1989":1,"marithpl":1,"Ulli-et-Tom":1,"BradleyFord":1,"DDPF02":1,"stumpf84":1,"0k00l":1,"chrisBVB92":1,"raforo":1,"robinmalmberg":1,"chlr":1,"nalla":1,"Jeffkip74":1,"TRON4R":1,"Psicrow925":1,"Almetu":1,"bsergei":1,"TomHarm":1,"voyagerft":1,"raebbaer":1,"larrybml":1,"ssorgatem":1,"binichnich":1,"sphings79":1,"Niels-Stoffer":1,"torwag":1,"kaciker":1,"kekomovil2":1,"Bankaifan":1,"viper539":1,"eliaslecomte":1,"TMoersch":1,"westado":1,"SChellini":1,"lazzalf":1,"homerojleal":1,"lfloureiro":1,"Fossy777":1,"nanoq66":1,"JonasGhost":1,"ivoryrea":1,"acejoh":1,"drejc12":1,"Maximus0808":1,"CamHaug":1,"taert79":1,"Masadido":1,"florianrenner":1,"r13ssh":1,"iulianmitea":1,"xm4rcell0x":1,"Vato9394":1,"MichaelLachmann":1,"vipii":1,"meee2eee":1,"computerspezi":1,"Bjoern112":1,"BaDTaG":1,"thbiela":1,"amiga4everyone":1,"ismiregal17":1,"codex70":1,"fradzano":1,"ottosax":1,"hedkvist":1,"heidrifx":1,"GiorgioUghini":1,"colyro":1,"spacemanspiff2007":1,"fredrike":1,"hvorragend":1,"m-wo":1,"marc-gutschner":1,"Criaga":1,"sebluc74":1,"Trickboxx":1,"knothski2":1,"jmluzio":1,"einwaschdl":1,"carlhye":1,"wavelov3r":1,"c0delama":1,"MrErichsen":1,"niawag":1,"higur123":1,"redmars27":1,"avidflyer17":1,"Thomsen-79":1,"trisplay":1,"LudgerMi":1,"giuseppe072000":1,"SabatoArdolino":1,"vwtuner":1,"brambonsen":1,"tudor0410":1,"norbergmats":1,"jires":1,"soRailicious":1,"currentrutherfordium":1,"christianarth":1,"E-Raw":1,"zsgodor":1,"djunkee":1,"Fettkeewl":1,"mada199122":1,"lucio-modrono":1,"SpainBoys":1,"delefant":1,"dherzog90":1,"emsintegraiton":1,"tonimg87":1,"t0bse":1,"gugaspinto":1,"gimmel":1,"fredck":1,"Rvh91":1,"maxim-home":1,"NickWhitNTES":1,"Esquilo007":1,"Tuningmormota":1,"Erkessolar":1,"MWagnerOE5AOO":1,"frizzo22":1,"SimoneRullo":1,"JannikBirn":1,"madmat17":1,"broodro0ster":1,"schmersgahoven":1,"TrackerTheCode":1,"amTresen":1,"elmuffo":1,"bkuehnel795":1,"philkunz":1,"bdkacz":1,"MichaelKreitmann":1,"Joao-Sousa-71":1,"forgo111":1,"jvcsw":1,"marcoluciano81":1,"mckrabben":1,"ikxdf":1,"Raffifumi":1,"Dringard2":1,"brainupstudio":1,"MichaelPihlblad":1,"BelphegorPrime":1,"3sRykaert":1,"strongiukas":1,"pgrond":1,"abmerlin":1,"igorzavalyshyn-centrica":1,"Uli1900":1,"arva-zz":1,"AlfaCube":1,"Grovertje":1,"tranzitwww":1,"psi33":1,"Trefex":1,"jacky-coke":1,"haasje30":1,"th3-w1ll":1,"Hammerhand17":1,"thomasdelaet":1,"krvest":1,"bengtner":1,"flinterm":1,"bogyxp":1,"TopoAS":1,"dannyboodmann":1,"powerscooter":1,"Andurilll":1,"bartmarchand1":1,"mpopik":1,"mpw96":1,"assineu":1,"valeriob":1,"berndan77":1,"matt7py":1,"jfberry":1,"danielgantzer":1,"jgate":1,"9-ck":1,"robgalea":1,"eicosan":1,"peterb-ART-h":1,"renatod47":1,"macrojames":1,"raulliive":1,"dannyhicko":1,"StijnCleners":1,"pmiola73":1,"benwht":1,"stefaanv":1,"DanieleCar":1,"attaxia":1,"feserdel":1,"harnyd":1,"juhaagit":1,"RedVision81":1,"max19751":1,"ashmoremk":1,"briberolles":1,"rapahl":1,"timconinx":1,"RenanAz":1,"kalika303":1,"avick71":1,"firebowl":1,"oglok":1,"reboot1983":1,"gverbist":1,"nakedq":1,"Cis4Cookies":1,"johnp":1,"CMGeorge":1,"P-Stenbumling":1,"tor0nline":1,"fth1963":1,"nevesigor":1,"Toomoch":1,"eesweet":1,"Aljosha89":1,"MaBeniu":1,"shaidenschuster":1,"stevevg":1,"virtualzone":1},"pull_request_authors":{"wlcrs":40,"smoki3":8,"alexdelli":7,"Roving-Ronin":6,"peetersch":5,"stefanvogel":4,"Borty97":4,"vpont":3,"yousaf465":2,"FredericMa":2,"TomHarm":2,"mkornat":2,"jmallorquing":2,"Andurilll":2,"olebowle":2,"perk737":2,"xtala":2,"tmenguy":2,"der-berni":2,"mpw96":2,"gverbist":2,"robbo600":1,"ThomasCZ":1,"StefanWokusch":1,"d3vi1":1,"nurzen":1,"ssorgatem":1,"Zwer2k":1,"fredck":1,"Misiu":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-01T00:00:07.984Z","repositories_count":14455392,"issues_count":34136271,"pull_requests_count":112031403,"authors_count":11250216,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"bug":67,"enhancement":15,"incomplete":5,"stale":4,"help wanted":1,"on-hold":1},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":77,"CONTRIBUTOR":6,"OWNER":2},"past_year_pull_request_author_associations_count":{"OWNER":10,"CONTRIBUTOR":8,"NONE":7},"past_year_issue_authors":{"perk737":3,"smoki3":3,"wlcrs":2,"valimaties":2,"t-solak":2,"malakudi":2,"JensenNick":2,"skaccox":2,"voyagerft":1,"pgrond":1,"peterb-ART-h":1,"ogghi":1,"Niels-Stoffer":1,"nicelback":1,"MHKnowles":1,"meee2eee":1,"MayBankCH":1,"Maximus0808":1,"martin346456":1,"MariuszWoszczynski":1,"marc-gutschner":1,"madmat17":1,"TRON4R":1,"Trefex":1,"TrackerTheCode":1,"tonimg87":1,"th3-w1ll":1,"ssorgatem":1,"sphings79":1,"spacemanspiff2007":1,"santanar00":1,"RikBast":1,"RenanAz":1,"RedVision81":1,"reboot1983":1,"rclarsfull":1,"rapahl":1,"raforo":1,"MaBeniu":1,"cvanlith":1,"currentrutherfordium":1,"computerspezi":1,"chrisBVB92":1,"chriguschneider":1,"chlr":1,"c0delama":1,"bkuehnel795":1,"Bjoern112":1,"BelphegorPrime":1,"bartmarchand1":1,"Bankaifan":1,"attaxia":1,"artcrime":1,"amTresen":1,"Aljosha89":1,"ablyes":1,"3sRykaert":1,"lfloureiro":1,"larrybml":1,"knothski2":1,"JonasGhost":1,"JohnMcLear":1,"joaopedrocg27":1,"Ivano62":1,"heidrifx":1,"GiulioBen":1,"GiorgioUghini":1,"frizzo22":1,"Fettkeewl":1,"emsintegraiton":1,"elmuffo":1,"eliaslecomte":1,"dherzog90":1,"dannyboodmann":1,"danielgantzer":1},"past_year_pull_request_authors":{"wlcrs":10,"smoki3":8,"perk737":2,"alexdelli":1,"d3vi1":1,"ssorgatem":1,"StefanWokusch":1,"ThomasCZ":1},"maintainers":[{"login":"wlcrs","count":48,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/wlcrs"}],"active_maintainers":[{"login":"wlcrs","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/wlcrs"}]},"events":{"total":{"CreateEvent":32,"CommitCommentEvent":1,"ReleaseEvent":15,"DeleteEvent":26,"PullRequestEvent":53,"ForkEvent":26,"DiscussionEvent":21,"IssuesEvent":302,"WatchEvent":215,"IssueCommentEvent":911,"PushEvent":196,"GollumEvent":67},"last_year":{"CreateEvent":13,"CommitCommentEvent":1,"ReleaseEvent":12,"DeleteEvent":14,"PullRequestEvent":20,"ForkEvent":11,"DiscussionEvent":21,"IssuesEvent":128,"WatchEvent":97,"IssueCommentEvent":402,"PushEvent":89,"GollumEvent":25}},"keywords":["home-assistant","home-assistant-integration","huawei","huawei-solar","modbus","modbus-rtu","modbus-tcp","solar-energy"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/hacs.yml","sha":null,"kind":"manifest","created_at":"2023-02-05T16:01:12.224Z","updated_at":"2023-02-05T16:01:12.224Z","repository_link":"https://github.com/wlcrs/huawei_solar/blob/main/.github/workflows/hacs.yml","dependencies":[{"id":7372525213,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7372525214,"package_name":"hacs/integration/action","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false}]}],"score":10.21049419685733,"created_at":"2023-09-11T14:42:27.069Z","updated_at":"2026-05-02T15:04:16.388Z","avatar_url":"https://github.com/wlcrs.png","language":"Python","category":"Renewable Energy","sub_category":"Photovoltaics and Solar Energy","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Huawei Solar Integration\n\n[![hacs_badge](https://img.shields.io/badge/HACS-Default-orange.svg)](https://github.com/hacs/integration)\n[![GitHub release](https://img.shields.io/github/release/wlcrs/huawei_solar.svg)](https://GitHub.com/wlcrs/huawei_solar/releases/)\n[![Documentation](https://img.shields.io/badge/Documentation-2D963D?logo=read-the-docs\u0026logoColor=white)](https://github.com/wlcrs/huawei_solar/wiki)\n![](https://img.shields.io/badge/dynamic/json?color=41BDF5\u0026logo=home-assistant\u0026label=integration%20usage\u0026suffix=%20installs\u0026cacheSeconds=15600\u0026url=https://analytics.home-assistant.io/custom_integrations.json\u0026query=$.huawei_solar.total)\n\nThis integration exposes the information and functions made available by Huawei Solar installations over Modbus to Home Assistant.\n\n## Table of Contents\n\n- [Screenshots](#screenshots)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Inverter polling frequency](#inverter-polling-frequency)\n- [FAQ - Troubleshooting](#faq---troubleshooting)\n\nLooking for more information? The [Wiki](https://github.com/wlcrs/huawei_solar/wiki) contains in-depth documentation and support materials.\n\n## Screenshots\n\n| **Inverter**                                                           | **Battery**                                                  |\n|:----------------------------------------------------------------------:|:------------------------------------------------------------:|\n|![Inverter Sensors](images/inverter_sensors.png)                        | ![Battery Sensors](images/battery_sensors.png)               |\n|![Inverter Diagnostics](images/inverter_configuration_diagnostics.png)  | ![Battery Configuration](images/battery_configuration.png)   |\n\n\n|**Power Meter**                                          | **Optimizer**                                       |\n|:-------------------------------------------------------:|:---------------------------------------------------:|\n|![Power Meter Sensors](images/power_meter_sensors.png)   | ![Optimizer Sensors](images/optimizer_sensors.png)  |\n\n\n\n**HA Energy Dashboard**\n\n![energy-config](images/energy-config.png)\n\n**Services**\n\nThis integration exposes multiple services, allowing you to [actively control the amount of electricity exported to the grid](https://github.com/wlcrs/huawei_solar/wiki/Changing-Active-Power-Control) and [forcibly charge/discharge your battery](https://github.com/wlcrs/huawei_solar/wiki/Force-charge-discharge-battery).\n\n![services](images/services.png)\n\nTo enable these advanced features, you need to select 'Elevate permissions' during the setup of this integration.\n\n## Prerequisites\n\n**Connection**\n\nThis integration supports two connection modes to Huawei solar devices:\n- direct serial connection to the RS485A1 and RS485B1 pins of the COM port of SUN2000 inverters\n- network connection\n\nDetailed information can be found on the ['Connecting to the inverter' Wiki-page](https://github.com/wlcrs/huawei_solar/wiki/Connecting-to-the-inverter)\n\n\u003e [!NOTE]\n\u003e Modbus devices only support **one connection at a time**.\n\u003e \n\u003e Make sure that nothing else is trying to connect to your Huawei solar installation.\n\u003e Otherwise the connection from this integration to your installation will constantly be interrupted.\n\n**Firmware**\n\nThis integration supports inverters running firmware versions released in 2023 and later. Older firmware versions don't have support for all registers, which can result in the integration failing to work properly.\n\n## Installation\n\n1. Install this integration with HACS, or copy the contents of this\nrepository into the `custom_components/huawei_solar` directory\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=wlcrs\u0026repository=huawei_solar\u0026category=integration)\n\n3. Restart HA\n4. Start the configuration flow:\n   - [![Start Config Flow](https://my.home-assistant.io/badges/config_flow_start.svg)](https://my.home-assistant.io/redirect/config_flow_start?domain=huawei_solar)\n   - Or: Go to `Configuration` -\u003e `Integrations` and click the `+ Add Integration`. Select `Huawei Solar` from the list\n\n5. Choose whether you want to connect via serial or network connection\n\n\n![](images/select-connection-type.png)\n\n\n### Serial configuration\n\n5. Select the \"USB to RS485 converter\" that you connected to the RS485A1 and RS485B1 pins of your inverter. The Slave ID should be identical to the *Com address* set in the *RS485_1* settings.\n\n![](images/usb-device.png)\n\n### Network configuration\n\n5. Enter the IP address and port on which the Modbus-TCP interface is available. Some pointers:\n   - The port is either `502` or `6607`.\n   - When connecting to the inverter AP the host IP is typically `192.168.200.1` and the slave id is typically `0`.\n   - When connecting to an SDongle, the slave id is typically `1`. Make sure to give this device a fixed IP!\n\n   Checking the `Advanced: elevate permissions` checkbox will:\n   - give you access to optimizer data\n   - enable you to dynamically change your inverter and battery settings\n\n![](images/network-configuration.png)\n\n6. When using the `elevate permissions` feature in combination with certain connection methods (most TCP-connections, not for serial connections),\n   you will be asked to enter the credentials to the `installer` account in a next step. These are the\ncredentials used to connect to the inverter in the \"Device Commissioning\" section of\nthe FusionSolar App. The default password is either `00000a` or `0000000a`. If necessary, you can [perform a password reset](https://support.huawei.com/enterprise/en/doc/EDOC1100136173/8aa1f88a/resetting-password). This will not reset other parameters like the FusionSolar cloud connection or other changes made by the firm which did your solar installation.\n\n\n## Inverter polling frequency\n\nThe integration will poll the inverter for new values every 30 seconds. If you wish to receive fresh inverter data less (or more) frequently, you can disable the automatic refresh in the integration's system options (Enable polling for updates) and create your own automations with your desired polling frequency. If your installation contains a power meter and/or battery, then you need to create a separate data polling automation for these devices. This allows for fine grained control of which entities must be updated more quickly.\n\n```yaml\n- alias: \"Huawei Solar inverter data polling\"\n  trigger:\n    - platform: time_pattern\n      hours: \"*\"\n      minutes: \"*\"\n      seconds: \"/20\"\n  action:\n    - service: homeassistant.update_entity\n      target:\n        entity_id: sensor.inverter_daily_yield\n- alias: \"Huawei Solar power meter data polling\"\n  trigger:\n    - platform: time_pattern\n      hours: \"*\"\n      minutes: \"*\"\n      seconds: \"/5\"\n  action:\n    - service: homeassistant.update_entity\n      target:\n        entity_id: sensor.power_meter_active_power\n- alias: \"Huawei Solar battery data polling\"\n  trigger:\n    - platform: time_pattern\n      hours: \"*\"\n      minutes: \"*\"\n      seconds: \"/20\"\n  action:\n    - service: homeassistant.update_entity\n      target:\n        entity_id: sensor.battery_state_of_capacity\n```\n\n**Note:** optimizer data is refreshed only every 5 minutes, which matches how frequently the inverter refreshes this data. Increasing the update frequency of those entities will thus not result in a higher resolution.\n\n## FAQ - Troubleshooting\n\n**Q**: The Daily Yield/Total Yield is incorrect: it also goes up when the battery is discharging.\n\n**A**: Huawei does not provide a Modbus register that represents the *output* of the inverter produced by energy coming only from the solar panels. It does provide a register that represents the *input* of the solar panels, but that does not take into account the conversion losses of the inverter. cfr. the Wiki page '[Daily Solar Yield](https://github.com/wlcrs/huawei_solar/wiki/Daily-Solar-Yield)' for some possible workarounds. cfr. [#1](https://github.com/wlcrs/huawei_solar/issues/1) for more context.\n\n---\n\n**Q**: Why do I get the error \"Connection succeeded, but failed to read from inverter.\" while setting up this integration?\n\n**A**: While the integration was able to setup the initial connection to the Huawei Inverter, it did not respond to any queries in time. This is either caused by using an invalid slave ID (typically 0 or 1, try both or ask your installer if unsure), or because an other device established a connection with the inverter, causing the integration to lose it's connection\n\n---\n\n**Q**: Will the FusionSolar App still work when using this integration?\n\n**A**: The inverter will still send it's data to the Huawei cloud, and you will still be able to see live statistics from your installation in the FusionSolar App. However, if you are using this integration via the network, and you (or your installer) need to use the 'Device commissioning' feature of the app, you will need to disable this integration.\n\n---\n\n**Q**: I want to connect multiple systems simultaniously to the Huawei Solar inverter. For example: 2 HA installations, EVCC, ...  Is this possible?\n\n**A**: This integration connects to the inverter over Modbus. This protocol only supports one \"server\" (confusingly named, but this is the party sending queries to the inverter). It is therefore not possible to connect multiple systems directly to the inverter. However, you can use a [Modbus Proxy](https://github.com/Akulatraxas/ha-modbusproxy) to multiplex the connection to the inverter.\n\n---\n\n**Q**: How do I change the connection parameters (IP, port, USB device, installer password) of this integration?\n\n**A**: 'Reconfigure' the integration. This action is available from the dropdown menu on the [integration settings page](https://my.home-assistant.io/redirect/integration/?domain=huawei_solar).\n\n---\n\u003ca name=\"daily-yield\"\u003e\u003c/a\u003e\n\n**Q**: The \"Daily Yield\" value reported does not match with the value from FusionSolar?\n\n**A**: The \"Daily Yield\" reported by the inverter is the *output* yield of the inverter, and not the *input* from your solar panels. It therefore includes the yield from discharging the battery, but misses the yield used to charge the battery. FusionSolar computes the \"Yield\" by combining the values from \"Daily Yield\", \"Battery Day Charge\" and \"Battery Day Discharge\". [More information on the Wiki ...](https://github.com/wlcrs/huawei_solar/wiki/Daily-Solar-Yield)\n\n---\n\n\u003ca name=\"debugging\"\u003e\u003c/a\u003e\n\n**Q**: I can't get this integration to work. What am I doing wrong?\n\n**A**: First make sure that ['Modbus TCP' access is enabled in the settings of your inverter](https://forum.huawei.com/enterprise/en/modbus-tcp-guide/thread/789585-100027). Next, check if the port is correct. Some inverters use port 6607 instead of 502 (this can change for you after a firmware update!). If that doesn't work for you, and you intend to write an issue, make sure you have the relevant logs included. For this integration, you can enable all relevant logs by including the following lines in your `configuration.yaml`:\n\n```yaml\nlogger:\n  logs:\n    tmodbus: debug # only include this if you're having connectivity issues\n    huawei_solar: debug\n    homeassistant.components.huawei_solar: debug\n```\n\nBy providing logs directly when creating the issue, you will likely get help much faster.\n\n---\n\n\u003ca name=\"enable-elevated-permissions\"\u003e\u003c/a\u003e\n\n**Q**: I didn't check 'Advanced: Elevate permissions' during the initial setup of this integration and changed my mind. How do I change this?\n\n**A**: 'Reconfigure' the integration. This action is available from the dropdown menu on the [integration settings page](https://my.home-assistant.io/redirect/integration/?domain=huawei_solar).\n\n\n## Translations\n\nDo you want to help out by translating this integration? This project uses Crowdin to make it easy to contribute translations. Use [this invite link to get started](https://crowdin.com/project/huawei-solar/invite?h=4cc071611aab39bd38409ea013f224d12239065).\n","funding_links":["https://github.com/sponsors/wlcrs"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["climate","dehumidifiers","fans","varta-storage","varta","hacs-integration","sensors","switches","solar","hacs"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/16396","html_url":"https://ost.ecosyste.ms/projects/16396"}