{"id":2101111,"name":"node-switchbot","ecosystem":"npm","description":"The node-switchbot is a Node.js module which allows you to control your Switchbot Devices through Bluetooth (BLE) with automatic OpenAPI fallback.","homepage":"https://github.com/OpenWonderLabs/node-switchbot","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/OpenWonderLabs/node-switchbot","keywords_array":["switchbot","bot","meter","temperature","humidity","curtain","blind","BLE","Bluetooth Low Energy","Bluetooth smart","Bluetooth","OpenAPI","OpenWonderLabs","Switchbot API"],"namespace":null,"versions_count":380,"first_release_published_at":"2019-11-20T07:28:37.694Z","latest_release_published_at":"2026-04-11T01:32:25.036Z","latest_release_number":"4.0.0","last_synced_at":"2026-04-15T15:05:08.336Z","created_at":"2022-04-09T21:01:49.536Z","updated_at":"2026-04-15T15:09:04.343Z","registry_url":"https://www.npmjs.com/package/node-switchbot","install_command":"npm install node-switchbot","documentation_url":null,"metadata":{"funding":null,"dist-tags":{"latest":"4.0.0","beta":"4.0.0-beta.19"}},"repo_metadata":{"id":37788329,"uuid":"222875757","full_name":"OpenWonderLabs/node-switchbot","owner":"OpenWonderLabs","description":"The node-switchbot is a Node.js module which allows you communicate with SwitchBot Devices over BLE or OpenAPI","archived":false,"fork":false,"pushed_at":"2026-04-11T02:42:25.000Z","size":3072,"stargazers_count":95,"open_issues_count":5,"forks_count":31,"subscribers_count":4,"default_branch":"latest","last_synced_at":"2026-04-11T03:10:49.942Z","etag":null,"topics":["ble","nodejs","switchbot"],"latest_commit_sha":null,"homepage":"https://openwonderlabs.github.io/node-switchbot/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenWonderLabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2019-11-20T07:22:21.000Z","updated_at":"2026-04-11T02:42:28.000Z","dependencies_parsed_at":"2023-12-11T21:28:39.245Z","dependency_job_id":"b88d190a-b3e4-45ba-b1dd-f6fe2318e10a","html_url":"https://github.com/OpenWonderLabs/node-switchbot","commit_stats":{"total_commits":101,"total_committers":10,"mean_commits":10.1,"dds":0.5445544554455446,"last_synced_commit":"d7683ea231de1b96ca9936f5638b1c66417dd4df"},"previous_names":["futomi/node-switchbot"],"tags_count":135,"template":false,"template_full_name":null,"purl":"pkg:github/OpenWonderLabs/node-switchbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenWonderLabs%2Fnode-switchbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenWonderLabs%2Fnode-switchbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenWonderLabs%2Fnode-switchbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenWonderLabs%2Fnode-switchbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenWonderLabs","download_url":"https://codeload.github.com/OpenWonderLabs/node-switchbot/tar.gz/refs/heads/latest","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenWonderLabs%2Fnode-switchbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31668049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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_record":{"login":"OpenWonderLabs","name":"SwitchBot","uuid":"25906480","kind":"organization","description":"","email":"support@wondertechlabs.com","website":"www.switch-bot.com","location":null,"twitter":"SwitchBot","company":null,"icon_url":"https://avatars.githubusercontent.com/u/25906480?v=4","repositories_count":8,"last_synced_at":"2024-02-29T08:00:23.199Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/OpenWonderLabs","funding_links":[],"total_stars":1471,"followers":null,"following":null,"created_at":"2022-11-08T16:02:21.630Z","updated_at":"2024-02-29T08:00:23.429Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenWonderLabs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenWonderLabs/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-04-15T15:09:04.342Z","dependent_packages_count":11,"downloads":4486,"downloads_period":"last-month","dependent_repos_count":6,"rankings":{"downloads":2.6185430017998015,"dependent_repos_count":4.624397518174313,"dependent_packages_count":1.908938728510354,"stargazers_count":5.6619102352050685,"forks_count":5.122211206774528,"docker_downloads_count":null,"average":3.9872001380928133},"purl":"pkg:npm/node-switchbot","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/npm/node-switchbot","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/npm/node-switchbot","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/npm/node-switchbot/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-11T04:02:05.130Z","issues_count":32,"pull_requests_count":199,"avg_time_to_close_issue":10101705.25,"avg_time_to_close_pull_request":443676.3089005236,"issues_closed_count":24,"pull_requests_closed_count":191,"pull_request_authors_count":16,"issue_authors_count":20,"avg_comments_per_issue":3.59375,"avg_comments_per_pull_request":0.7788944723618091,"merged_pull_requests_count":128,"bot_issues_count":0,"bot_pull_requests_count":61,"past_year_issues_count":5,"past_year_pull_requests_count":12,"past_year_avg_time_to_close_issue":1522840.0,"past_year_avg_time_to_close_pull_request":2156986.0,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":10,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.4,"past_year_avg_comments_per_pull_request":0.3333333333333333,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":6,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenWonderLabs%2Fnode-switchbot/issues","maintainers":[{"login":"donavanbecker","count":63,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/donavanbecker"}],"active_maintainers":[{"login":"donavanbecker","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/donavanbecker"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/node-switchbot/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/node-switchbot/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/node-switchbot/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/node-switchbot/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/node-switchbot/codemeta","maintainers":[{"uuid":"donavanbecker","login":"donavanbecker","name":null,"email":"donavan.becker@icloud.com","url":null,"packages_count":122,"html_url":"https://www.npmjs.com/~donavanbecker","role":null,"created_at":"2022-11-21T01:06:34.116Z","updated_at":"2022-11-21T01:06:34.116Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/donavanbecker/packages"},{"uuid":"switchbot-wonderlabs","login":"switchbot-wonderlabs","name":null,"email":"SwitchBot.Wonderlabs@outlook.com","url":null,"packages_count":9,"html_url":"https://www.npmjs.com/~switchbot-wonderlabs","role":null,"created_at":"2022-11-21T01:06:34.094Z","updated_at":"2022-11-21T01:06:34.094Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/switchbot-wonderlabs/packages"},{"uuid":"linchengyu","login":"linchengyu","name":null,"email":"linchengyu@onero.com","url":null,"packages_count":6,"html_url":"https://www.npmjs.com/~linchengyu","role":null,"created_at":"2026-04-01T23:31:24.763Z","updated_at":"2026-04-01T23:31:24.763Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/linchengyu/packages"},{"uuid":"cly-org","login":"cly-org","name":null,"email":"chenliuyun@onero.com","url":null,"packages_count":5,"html_url":"https://www.npmjs.com/~cly-org","role":null,"created_at":"2026-04-01T23:31:24.882Z","updated_at":"2026-04-01T23:31:24.882Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/cly-org/packages"}]}