{"id":15288260,"url":"https://github.com/orbital-systems/react-native-esp-idf-provisioning","last_synced_at":"2026-03-07T03:31:58.081Z","repository":{"id":204728493,"uuid":"693504726","full_name":"orbital-systems/react-native-esp-idf-provisioning","owner":"orbital-systems","description":"ESP IDF provisioning and custom data library for react-native","archived":false,"fork":false,"pushed_at":"2025-05-27T08:57:17.000Z","size":2951,"stargazers_count":48,"open_issues_count":6,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-09-15T03:55:40.860Z","etag":null,"topics":["ble","esp32","esp32-idf","provisioning","softap","wifi-configuration"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/orbital-systems.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-09-19T06:55:15.000Z","updated_at":"2025-09-05T02:20:44.000Z","dependencies_parsed_at":"2025-05-01T09:17:18.532Z","dependency_job_id":"94c530ef-4101-40ff-be9d-1e591e756b95","html_url":"https://github.com/orbital-systems/react-native-esp-idf-provisioning","commit_stats":null,"previous_names":["orbital-systems/react-native-esp-idf-provisioning"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/orbital-systems/react-native-esp-idf-provisioning","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbital-systems%2Freact-native-esp-idf-provisioning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbital-systems%2Freact-native-esp-idf-provisioning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbital-systems%2Freact-native-esp-idf-provisioning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbital-systems%2Freact-native-esp-idf-provisioning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orbital-systems","download_url":"https://codeload.github.com/orbital-systems/react-native-esp-idf-provisioning/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbital-systems%2Freact-native-esp-idf-provisioning/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30206570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T03:24:23.086Z","status":"ssl_error","status_checked_at":"2026-03-07T03:23:11.444Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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"}},"keywords":["ble","esp32","esp32-idf","provisioning","softap","wifi-configuration"],"created_at":"2024-09-30T15:44:56.883Z","updated_at":"2026-03-07T03:31:58.059Z","avatar_url":"https://github.com/orbital-systems.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# react-native-esp-idf-provisioning\n\nAndroid and iOS bridge for ESP IDF provisioning. Provides a unified interface for BLE and SoftAP provisioning using the libraries provided by Espressif:\n\n- https://github.com/espressif/esp-idf-provisioning-android\n- https://github.com/espressif/esp-idf-provisioning-ios\n\nSoftAP mode is not tested and probably does not work yet. Feel free to help with this. See [#6](https://github.com/orbital-systems/react-native-esp-idf-provisioning/issues/6).\n\nQR code scanning is deliberately not supported. This can be done using other react-native libraries.\n\n![Provisioning](provisioning.gif)\n\n## Installation\n\n```sh\nnpm install @orbital-systems/react-native-esp-idf-provisioning\n```\n\n## Usage\n\n```ts\nimport {\n  ESPProvisionManager,\n  ESPDevice,\n  ESPTransport,\n  ESPSecurity,\n} from '@orbital-systems/react-native-esp-idf-provisioning';\n\n// Method 1.\n// Get devices...\nlet prefix = 'PROV_';\nlet transport = ESPTransport.ble;\nlet security = ESPSecurity.secure2;\nconst devices = await ESPProvisionManager.searchESPDevices(\n  prefix,\n  transport,\n  security\n);\n\n// ... and select device (using picklist, dropdown, w/e)\nconst device: ESPDevice = devices[0];\n\n// Method 2.\n// If you know device name and transport/security settings, create a device class instance\nconst device = new ESPDevice({\n  name: 'name',\n  transport: ESPTransport.ble,\n  security: ESPSecurity.secure2,\n});\n\n// Connect to device with proofOfPossession\nconst proofOfPossession = 'pop';\nawait device.connect(proofOfPosession);\n\n// Connect to device with proofOfPossession + username\nconst proofOfPossession = 'pop';\nconst username = 'username';\nawait device.connect(proofOfPosession, null, username);\n\n// Connect to device with softAP password\nconst softAPPassword = 'password';\nawait device.connect(null, softAPPassword, null);\n\n// Get wifi list\nconst wifiList = await device.scanWifiList();\n\n// Provision device\nconst ssid = 'ssid';\nconst passphrase = 'passphrase';\nawait device.provision(ssid, passphrase);\n\n// Disconnect\ndevice.disconnect();\n```\n\n## Why use this library instead of alternatives?\n\nThere have been several attempts to create a react-native bridge of Espressif's native libraries.\n\nBelow are a few examples:\n\n- https://github.com/manbomb/esp-idf-ble-provisioning-rn - Last commit 3 years ago\n- https://github.com/amoghpalnitkar/react-native-esp-idf-provisioning - Last commit 4 years ago\n- https://github.com/kafudev/react-native-esp-idf - Last commit 2 years ago\n- https://github.com/futuristiclabs/react-native-esp32-idf - Last commit 3 years ago\n\nWe wanted something that is guaranteed to be compatible with the latest versions of Android and iOS.\nWe also needed it to work with the latest (or almost latest) version of react-native.\n\nThe examples above were great for inspiration, but they were all abandoned a while ago.\n\nSince this is something we as a company (Orbital Systems) rely on for our current and future\nIoT devices, we decided it was worth it to create and maintain a library with help from the community.\n\n## Enums\n\n```ts\nenum ESPTransport {\n  ble = 'ble',\n  softap = 'softap',\n}\n\nenum ESPSecurity {\n  unsecure = 0,\n  secure = 1,\n  secure2 = 2,\n}\n\nenum ESPWifiAuthMode {\n  open = 0,\n  wep = 1,\n  wpa2Enterprise = 2,\n  wpa2Psk = 3,\n  wpaPsk = 4,\n  wpaWpa2Psk = 5,\n}\n```\n\n## Permissions\n\n### Android\n\nSee AndroidManifest.xml in the example project.\n\n### iOS\n\n- Since iOS 13, apps that want to access SSID (Wi-Fi network name) are required to have the location permission. Add key `NSLocationWhenInUseUsageDescription` in Info.plist with proper description. This permission is required to verify iOS device is currently connected with the SoftAP.\n\n- Since iOS 14, apps that communicate over local network are required to have the local network permission. Add key `NSLocalNetworkUsageDescription` in Info.plist with proper description. This permission is required to send/receive provisioning data with the SoftAP devices.\n\n- To use BLE, you must add an entry for NSBluetoothAlwaysUsageDescription to your app.json.\n\n## Contributing\n\nSee the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.\n\n## License\n\nMIT\n\n---\n\nMade with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forbital-systems%2Freact-native-esp-idf-provisioning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forbital-systems%2Freact-native-esp-idf-provisioning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forbital-systems%2Freact-native-esp-idf-provisioning/lists"}