{"id":31723524,"url":"https://github.com/remoteit/r3onboard","last_synced_at":"2025-10-09T04:56:47.733Z","repository":{"id":249197824,"uuid":"829593745","full_name":"remoteit/r3onboard","owner":"remoteit","description":"Remote.It Bluetooth Wifi Onboarding","archived":false,"fork":false,"pushed_at":"2024-07-16T19:15:29.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-07-19T07:22:08.479Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/remoteit.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-16T18:44:24.000Z","updated_at":"2024-07-19T07:22:29.712Z","dependencies_parsed_at":"2024-07-19T07:22:21.056Z","dependency_job_id":"029b6d0f-5db2-4f31-a751-2bf9c29bc342","html_url":"https://github.com/remoteit/r3onboard","commit_stats":null,"previous_names":["remoteit/r3onboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/remoteit/r3onboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remoteit%2Fr3onboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remoteit%2Fr3onboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remoteit%2Fr3onboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remoteit%2Fr3onboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/remoteit","download_url":"https://codeload.github.com/remoteit/r3onboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remoteit%2Fr3onboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000691,"owners_count":26082921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"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"}},"keywords":[],"created_at":"2025-10-09T04:56:46.477Z","updated_at":"2025-10-09T04:56:47.724Z","avatar_url":"https://github.com/remoteit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## About Bluetooth WiFi Onboarding\n\n**Company:** Remote.It  \n**Product Name:** Bluetooth WiFi Onboarding\n\nBluetooth WiFi Onboarding is a solution developed by Remote.It to simplify the process of setting up new devices. Our product leverages Bluetooth Low Energy (BLE) technology to allow users to easily connect and configure WiFi settings, ensuring seamless network integration. Additionally, it provides the capability to register devices with the Remote.It service, enabling remote access to various services on the device, such as SSH, VNC, and web servers.\n\n### Key Features\n- **Easy WiFi Configuration:** Connect via Bluetooth LE to configure WiFi settings and get your device on the network effortlessly.\n- **Remote Access:** Register your device with the Remote.It service to gain remote access to essential services like SSH, VNC, and web servers.\n- **Compatibility:** Designed to work with Bookworm Debian packages, with a primary focus on Raspberry Pi devices.\n- **Python-Based:** The software is written in Python and sets up a GATT server to communicate WiFi and registration information.\n- **Automatic WiFi Scanning:** Automatically scans available WiFi networks on boot-up to streamline the connection process.\n\nBluetooth WiFi Onboarding makes setting up and managing your devices simple and efficient. Experience the convenience of remote access and simplified network configuration with Remote.It.\n\n### Additional Resources\n- [How to use raspberry pi r3onboard image](https://link.remote.it/getting-started/rpi-ble-image)\n- [How to Install r3onboard](https://link.remote.it/docs/ble)\n- [Download latest Debian Package](https://link.remote.it/download/r3onboard_deb)\n\n## Setup for Development\n\n### Setup For building (on mac os)\n```sh\nbrew install pyenv\nbrew install python3\nbrew install poetry\n\npoetry install\n```\n\n### Setup for packaging (fpm)\n```sh\nbrew install ruby\necho 'export PATH=\"/usr/local/opt/ruby/bin:$PATH\"' \u003e\u003e /Users/ebowers/.bash_profile # On Mac\nsource ~/.bash_profile # On Mac\n\ngem install fpm\n```\n\n## Poetry script commands\n\n### To Run locally\n```sh\npoetry run r3onboard\n```\n\n### To build\n```sh\npoetry build\n```\n\n### To package \n```sh\npoetry run package_debian\npoetry run package_pi\n```\n\n### To beta release\n```sh\npoetry run beta_release\n```\n\n### To rc release\n```sh\npoetry run rc_release\n```\n\n### To release rc version\n```sh\npoetry run release \u003cversion\u003e\n```\n\n### To Version the build\n```sh\npoetry run version \"Enter what was updated here\"\n```\n\n### To Test\n```sh\npoetry run test\n```\n\n## Useful info\n\n### System commands\n- How start the service\n  ```sh\n  sudo systemctl start r3onboard\n  ```\n- View logs\n  ```sh\n  journalctl -u r3onboard -n 100\n  ```\n\n### Gatt Service\nBASE_UUID = \"-6802-4573-858e-5587180c32ea\"\n\nCOMMISSION_SERVICE_UUID = f\"0000a000-{BASE_UUID}\"\n\n### Gatt Characteristics\n\n#### Wifi Status (Read \u0026 Notify)\n- UUID: `WIFI_STATUS_CHARACTERISTIC_UUID = f\"0000a001{BASE_UUID}\"`\n- Returns JSON:\n    ```json\n    {\n      \"wlan\": \"DISCONNECTED\",\n      \"eth\": \"DISCONNECTED\",\n      \"ssid\": \"\",\n      \"desired_ssid\": null,\n      \"error\": null,\n      \"scan\": \"COMPLETE\"\n    }\n    ```\n\n##### Fields:\n- `wlan` - Enum\u003cCONNECTED, CONNECTING, DISCONNECTED, FAILED_START, INVALID_PASSWORD, INVALID_SSID\u003e\n- `eth` - Enum\u003cCONNECTED, DISCONNECTED\u003e\n- `ssid` - String (current ssid)\n- `desired_ssid` - String (null or desired ssid)\n- `error` - String (null or error code)\n- `scan` - Enum\u003cSCANNING, COMPLETE\u003e\n\n##### RemoteIt Status (Read \u0026 Notify)\n- UUID: `REGISTRATION_STATUS_CHARACTERISTIC_UUID = f\"0000a011{BASE_UUID}\"`\n- Returns JSON:\n    ```json\n    {\n      \"reg\": \"\u003cstatus\u003e\",\n      \"id\": \"\u003cid\u003e\"\n    }\n    ```\n\n##### Fields:\n- `regStatus` - Enum\u003cUNREGISTERED, REGISTERING, REGISTERED\u003e\n\n#### Wifi List (Read)\n- UUID: `WIFI_LIST_CHARACTERISTIC_UUID = f\"0000a004{BASE_UUID}\"`\n- Returns JSON:\n    ```json\n    [\n      {\"ssid\": \"ssid\", \"signal\": \"signal\"}\n    ]\n    ```\n\n##### Fields:\n- List of `ssid` and `signal`\n\n#### COMMAND (Write)\n- UUID: `CONNECT_CHARACTERISTIC_UUID = f\"0000a020{BASE_UUID}\"`\n- Example JSON string:\n    ```json\n    {\n      \"command\": \"\u003ccommand\u003e\",\n      \"\u003cadditional args\u003e\"\n    }\n    ```\n\n#### Register (Write)\n- Takes a registration code:\n    ```json\n    {\n      \"command\": \"R3_REGISTER\",\n      \"code\": \"\u003ccode\u003e\"\n    }\n    ```\n\n#### Connect Wifi (Write)\n- Takes ssid and password:\n    ```json\n    {\n      \"command\": \"WIFI_CONNECT\",\n      \"ssid\": \"\u003cssid\u003e\",\n      \"password\": \"\u003cpassword\u003e\"\n    }\n    ```\n\n#### Scan Wifi (Write)\n- Command:\n    ```json\n    {\n      \"command\": \"WIFI_SCAN\"\n    }\n    ```\n\n\n### BLE Commands\n- Wifi Scan: \n  ```sh\n  [START]{\"command\": \"WIFI_SCAN\"}[END]\n  ```\n- Wifi Connect:\n  ```sh\n  [START]{\"command\": \"WIFI_CONNECT\", \"ssid\": \"remoteit\", \"password\": \"password\"}[END]\n  ```\n- Register:\n  ```sh\n  [START]{\"command\": \"R3_REGISTER\", \"code\": \"\u003cCODE\u003e\"}[END]\n  ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremoteit%2Fr3onboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremoteit%2Fr3onboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremoteit%2Fr3onboard/lists"}