Web Bluetooth Eddystone made easier
Getting started source-code using Physical Web beacons
- Scan Eddystone beacons
- Connect / Disconnect
- Monitor connection status
- Read Capabilities
- Read / Write Active Slot
- Read / Write Advertising Interval
- Read / Write Radio Tx Power
- Read / Write Advertised Tx Power
- Read Lock State
- Write Lock State
- Read / Write Unlock
- Read Public ECDH Key
- Read EID Identity Key
- Read / Write ADV Slot Data
- Write Factory reset
- Read / Write Remain Connectable
npm install --save eddystone-web-bluetooth
var eddystone = new Eddystone();
var beacon, service;
eddystone.request() // Scan for Eddystone beacons.
.then((newBeacon) => {
beacon = newBeacon;
return beacon.connect(); // Connect to the Beacon's GATT service.
})
.then((newService) => {
service = newService;
return service.isLocked(); // Check if the beacon is locked.
})
.then((isLocked) => {
if (isLocked) {
return Promise.reject('The beacon is locked. Can\'t write new URL');
}
// Beacon's not locked. We can proceed with the recording of the new URL.
// Keep in mind that the encoded URL must NOT be longer than 18 characters.
return service.writeUrl('https://www.google.com');
})
.then(() => {
beacon.disconnect();
alert('OK!');
});
See the rest of the services here.
Eddystone Web Bluetooth implementation is based on the official specifications:
https://github.com/google/eddystone/tree/master/configuration-service
Contributions are very welcome.
MIT © Gerard Rovira Sánchez
Special thanks to @beaufortfrancois for providing https://github.com/beaufortfrancois/sandbox/blob/gh-pages/web-bluetooth/eddystone-url-config/app.js magnificent example source code.