{"id":179880,"name":"OpenSmartMeter","description":"Low-cost \u0026 OEM agnostic GSM prepaid smart energy meter with a customizable API.","url":"https://github.com/enaccess/opensmartmeter","last_synced_at":"2026-04-08T23:00:42.376Z","repository":{"id":44664773,"uuid":"456566308","full_name":"EnAccess/OpenSmartMeter","owner":"EnAccess","description":"Low-cost \u0026 OEM agnostic GSM prepaid smart energy meter with a customizable API.","archived":false,"fork":false,"pushed_at":"2025-04-28T09:03:08.000Z","size":134893,"stargazers_count":27,"open_issues_count":16,"forks_count":20,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-02-13T01:30:53.548Z","etag":null,"topics":["opensource","smartmeter"],"latest_commit_sha":null,"homepage":"https://enaccess.github.io/OpenSmartMeter/","language":"HTML","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/EnAccess.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"EnAccess","custom":["https://www.paypal.me/EnAccess"]}},"created_at":"2022-02-07T15:35:18.000Z","updated_at":"2026-01-28T19:17:44.000Z","dependencies_parsed_at":"2023-02-14T09:00:41.876Z","dependency_job_id":"cf3ce96c-e212-4c03-a199-6572ad1d6bac","html_url":"https://github.com/EnAccess/OpenSmartMeter","commit_stats":{"total_commits":495,"total_committers":15,"mean_commits":33.0,"dds":0.3797979797979798,"last_synced_commit":"bdbac158a996ce9b455f0a73a0fd4ac2c7a0abd0"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/EnAccess/OpenSmartMeter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnAccess%2FOpenSmartMeter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnAccess%2FOpenSmartMeter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnAccess%2FOpenSmartMeter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnAccess%2FOpenSmartMeter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EnAccess","download_url":"https://codeload.github.com/EnAccess/OpenSmartMeter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnAccess%2FOpenSmartMeter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29597852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T22:25:43.180Z","status":"ssl_error","status_checked_at":"2026-02-18T22:25:42.766Z","response_time":162,"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"}},"owner":{"login":"EnAccess","name":"EnAccess Foundation","uuid":"44804394","kind":"organization","description":"","email":"info@enaccess.org","website":"https://enaccess.org","location":"Netherlands","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/44804394?v=4","repositories_count":6,"last_synced_at":"2023-03-07T21:37:54.081Z","metadata":{"has_sponsors_listing":false,"funding":{"github":"EnAccess","custom":["https://www.paypal.me/EnAccess"]}},"html_url":"https://github.com/EnAccess","funding_links":["https://github.com/sponsors/EnAccess","https://www.paypal.me/EnAccess"],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T17:48:48.524Z","updated_at":"2023-03-07T21:37:54.133Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EnAccess","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EnAccess/repositories"},"packages":[],"commits":{"id":1468892,"full_name":"enaccess/opensmartmeter","default_branch":"main","total_commits":498,"total_committers":14,"total_bot_commits":24,"total_bot_committers":1,"mean_commits":35.57142857142857,"dds":0.38353413654618473,"past_year_total_commits":3,"past_year_total_committers":1,"past_year_total_bot_commits":3,"past_year_total_bot_committers":1,"past_year_mean_commits":3.0,"past_year_dds":0.0,"last_synced_at":"2026-04-06T22:04:22.710Z","last_synced_commit":"162ced7fa1b043632851823bde487a9ca9f038f2","created_at":"2024-01-29T00:09:21.812Z","updated_at":"2026-04-06T22:01:52.354Z","committers":[{"name":"Samajadi","email":"99180312+Samajadi","login":"Samajadi","count":307},{"name":"Daniel Mohns","email":"daniel.mohns@posteo.de","login":"dmohns","count":140},{"name":"enaccess-terraform-authentication[bot]","email":"122439720+enaccess-terraform-authentication[bot]","login":"enaccess-terraform-authentication[bot]","count":24},{"name":"rtchuendem","email":"128624004+rtchuendem","login":"rtchuendem","count":9},{"name":"Rolande Tchuendem","email":"tchuendem.r@solarly.org","login":null,"count":6},{"name":"Peguy-WANDA","email":"49397659+Peguy-WANDA","login":"Peguy-WANDA","count":4},{"name":"frimic-solarly","email":"128612961+frimic-solarly","login":"frimic-solarly","count":1},{"name":"clarasdo","email":"138669739+clarasdo","login":"clarasdo","count":1},{"name":"Vivien","email":"105656515+BarnierVi","login":"BarnierVi","count":1},{"name":"TamaraEnAccess","email":"138671336+TamaraEnAccess","login":"TamaraEnAccess","count":1},{"name":"Fabio","email":"kilyerd","login":"kilyerd","count":1},{"name":"Fabio","email":"7980265+fabiodepascale","login":"fabiodepascale","count":1},{"name":"EnAccessAnna","email":"138879586+EnAccessAnna","login":"EnAccessAnna","count":1},{"name":"Delyce Twizeyimana","email":"d.twizeyima@alustudent.com","login":"Delyc","count":1}],"past_year_committers":[{"name":"enaccess-terraform-authentication[bot]","email":"122439720+enaccess-terraform-authentication[bot]","login":"enaccess-terraform-authentication[bot]","count":3}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/enaccess%2Fopensmartmeter/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-08T00:00:24.542Z","repositories_count":6212507,"commits_count":914691192,"contributors_count":35335977,"owners_count":1143250,"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":"enaccess/opensmartmeter","html_url":"https://github.com/enaccess/opensmartmeter","last_synced_at":"2026-01-19T08:00:33.439Z","status":"error","issues_count":24,"pull_requests_count":77,"avg_time_to_close_issue":5248457.375,"avg_time_to_close_pull_request":411134.8961038961,"issues_closed_count":8,"pull_requests_closed_count":77,"pull_request_authors_count":8,"issue_authors_count":3,"avg_comments_per_issue":0.25,"avg_comments_per_pull_request":0.14285714285714285,"merged_pull_requests_count":63,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2024-01-29T00:09:38.579Z","updated_at":"2026-01-19T08:00:33.440Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/enaccess%2Fopensmartmeter","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/enaccess%2Fopensmartmeter/issues","issue_labels_count":{"hardware":10,"enhancement":6,"firmware":6,"question":4,"documentation":3,"good first issue":2,"OSEAS24":1,"bug":1},"pull_request_labels_count":{},"issue_author_associations_count":{"MEMBER":15,"NONE":4,"CONTRIBUTOR":3},"pull_request_author_associations_count":{"MEMBER":62,"CONTRIBUTOR":12},"issue_authors":{"dmohns":15,"knakwaboah":4,"frimic-solarly":3},"pull_request_authors":{"dmohns":62,"Peguy-WANDA":6,"EnAccessAnna":1,"frimic-solarly":1,"TamaraEnAccess":1,"Delyc":1,"clarasdo":1,"BarnierVi":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-08T00:00:09.900Z","repositories_count":14151939,"issues_count":34542162,"pull_requests_count":112876556,"authors_count":11230735,"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":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"dmohns","count":77,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dmohns"}],"active_maintainers":[]},"events":{"total":{"ForkEvent":3,"WatchEvent":9,"PushEvent":3},"last_year":{"ForkEvent":3,"WatchEvent":5,"PushEvent":3}},"keywords":["opensource","smartmeter"],"dependencies":[{"ecosystem":"npm","filepath":"Firmware code/Library/ArduinoHttpClient-master/examples/node_test_server/package.json","sha":null,"kind":"manifest","created_at":"2023-02-14T09:00:41.828Z","updated_at":"2023-02-14T09:00:41.828Z","repository_link":"https://github.com/EnAccess/OpenSmartMeter/blob/main/Firmware code/Library/ArduinoHttpClient-master/examples/node_test_server/package.json","dependencies":[{"id":7651804913,"package_name":"body-parser","ecosystem":"npm","requirements":"\u003e=1.11.0","direct":true,"kind":"runtime","optional":false},{"id":7651804914,"package_name":"express","ecosystem":"npm","requirements":"\u003e=4.0.0","direct":true,"kind":"runtime","optional":false},{"id":7651804915,"package_name":"multer","ecosystem":"npm","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7651804916,"package_name":"ws","ecosystem":"npm","requirements":"^1.1.1","direct":true,"kind":"runtime","optional":false}]}],"score":6.400257445308821,"created_at":"2024-01-29T00:02:51.162Z","updated_at":"2026-04-08T23:00:42.377Z","avatar_url":"https://github.com/EnAccess.png","language":"HTML","category":"Energy Systems","sub_category":"Building Energy Monitoring","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/EnAccess/OpenSmartMeter\"\u003e\n    \u003cimg\n      src=\"https://enaccess.org/wp-content/uploads/2023/04/Open-Smart-Meter-GitHub-2240-%C3%97-800-transparent.svg\"\n      alt=\"OpenSmartMeter\"\n      width=\"640\"\n    \u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cem\u003eThe Open Smart Meter solves a problem that affects most solar developers in the industry. This inexpensive and open source Smart Meter meets IEC and key elements of the local regulations in Nigeria.\u003c/em\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg\n    alt=\"Project Status\"\n    src=\"https://img.shields.io/badge/Project%20Status-Functional%20prototype-yellow\"\n  \u003e\n  \u003cimg\n    alt=\"GitHub Workflow Status\"\n    src=\"https://img.shields.io/github/actions/workflow/status/EnAccess/OpenSmartMeter/check.yaml\"\n  \u003e\n  \u003ca href=\"https://github.com/EnAccess/OpenSmartMeter/blob/main/LICENSE\" target=\"_blank\"\u003e\n    \u003cimg\n      alt=\"License\"\n      src=\"https://img.shields.io/github/license/EnAccess/OpenSmartMeter\"\n    \u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Description\n\nThis repository contains manufacturing details as related to smart energy meter, details such as hardware design, web software, firmware, exterior casing STL files, rationale behing design, how-to document to guide a skilled user to replicate every part of the smart meter is available in the repository.\n\n![OpenSmartMeter 3D Render](docs/assets/hardware/render_3d/opensmartmeter_render_3d_high_quality.png)\n\n## Technical developmental breakdown\n\nThe open-source smart meter development has four main parts to it as highlighted below:\n\n### Circuit and Enclosure Design\n\nThe circuit was designed on Kicad free and open-source PCB design software while the enclosure design was done using Fusion 360 software.\n\n### PCB and Enclosure fabrication\n\nPCB fabrication involves putting together the physical components that makes up the smart meter.\nThe PCB features a 2layer design incorporating CICADA GSM module for communication while the enclosure offers a minimalistic IP 51 design according to IEC metering enclosure design standard.\n\n### Firmware, Web interface Development \u0026 API integration\n\nThe firmware code was written in Arduino IDE using C++, while the web front end was written majorly in HTML and CSS while the back end was written majorly in PHP.\nLinks to all these codes are here.\nThingsBoard API was used to view meter parameters such as energy, credit.\n\n### Calibration \u0026 Testing\n\nAfter putting the hardware and software together, we needed to validate the performance of the smart meter and ascertain its accuracy.\nDue to varying tolerances of used components, it is vital to perform a calibration exercise.\nThis is used to correct any errors due to varying tolerances.\nFurther details including source code, schematics, and manufacturing files can be found in the EnAccess github repository\n\n### Infrastructure diagram\n\n\u003cimg\n  width=\"707\"\n  alt=\"Screenshot 2022-11-05 at 4 14 06 AM\"\n  src=\"https://user-images.githubusercontent.com/99180312/200098555-717123fc-a56d-44c0-b2da-77d279fcb1c4.png\"\u003e\n","funding_links":["https://github.com/sponsors/EnAccess","https://www.paypal.me/EnAccess"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/179880","html_url":"https://ost.ecosyste.ms/projects/179880"}