Company: Remote.It
Product Name: Bluetooth WiFi Onboarding
Bluetooth 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.
- Easy WiFi Configuration: Connect via Bluetooth LE to configure WiFi settings and get your device on the network effortlessly.
- Remote Access: Register your device with the Remote.It service to gain remote access to essential services like SSH, VNC, and web servers.
- Compatibility: Designed to work with Bookworm Debian packages, with a primary focus on Raspberry Pi devices.
- Python-Based: The software is written in Python and sets up a GATT server to communicate WiFi and registration information.
- Automatic WiFi Scanning: Automatically scans available WiFi networks on boot-up to streamline the connection process.
Bluetooth 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.
brew install pyenv
brew install python3
brew install poetry
poetry install
brew install ruby
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/ebowers/.bash_profile # On Mac
source ~/.bash_profile # On Mac
gem install fpm
poetry run r3onboard
poetry build
poetry run package_debian
poetry run package_pi
poetry run beta_release
poetry run rc_release
poetry run release <version>
poetry run version "Enter what was updated here"
poetry run test
- How start the service
sudo systemctl start r3onboard
- View logs
journalctl -u r3onboard -n 100
BASE_UUID = "-6802-4573-858e-5587180c32ea"
COMMISSION_SERVICE_UUID = f"0000a000-{BASE_UUID}"
- UUID:
WIFI_STATUS_CHARACTERISTIC_UUID = f"0000a001{BASE_UUID}"
- Returns JSON:
{ "wlan": "DISCONNECTED", "eth": "DISCONNECTED", "ssid": "", "desired_ssid": null, "error": null, "scan": "COMPLETE" }
wlan
- Enum<CONNECTED, CONNECTING, DISCONNECTED, FAILED_START, INVALID_PASSWORD, INVALID_SSID>eth
- Enum<CONNECTED, DISCONNECTED>ssid
- String (current ssid)desired_ssid
- String (null or desired ssid)error
- String (null or error code)scan
- Enum<SCANNING, COMPLETE>
- UUID:
REGISTRATION_STATUS_CHARACTERISTIC_UUID = f"0000a011{BASE_UUID}"
- Returns JSON:
{ "reg": "<status>", "id": "<id>" }
regStatus
- Enum<UNREGISTERED, REGISTERING, REGISTERED>
- UUID:
WIFI_LIST_CHARACTERISTIC_UUID = f"0000a004{BASE_UUID}"
- Returns JSON:
[ {"ssid": "ssid", "signal": "signal"} ]
- List of
ssid
andsignal
- UUID:
CONNECT_CHARACTERISTIC_UUID = f"0000a020{BASE_UUID}"
- Example JSON string:
{ "command": "<command>", "<additional args>" }
- Takes a registration code:
{ "command": "R3_REGISTER", "code": "<code>" }
- Takes ssid and password:
{ "command": "WIFI_CONNECT", "ssid": "<ssid>", "password": "<password>" }
- Command:
{ "command": "WIFI_SCAN" }
- Wifi Scan:
[START]{"command": "WIFI_SCAN"}[END]
- Wifi Connect:
[START]{"command": "WIFI_CONNECT", "ssid": "remoteit", "password": "password"}[END]
- Register:
[START]{"command": "R3_REGISTER", "code": "<CODE>"}[END]