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 installbrew install ruby
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/ebowers/.bash_profile # On Mac
source ~/.bash_profile # On Mac
gem install fpmpoetry run r3onboardpoetry buildpoetry run package_debian
poetry run package_pipoetry run beta_releasepoetry run rc_releasepoetry 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
ssidandsignal
- 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]