eddystone-web-bluetooth icon indicating copy to clipboard operation
eddystone-web-bluetooth copied to clipboard

Web Bluetooth Eddystone made easier.

Eddystone Web Bluetooth

Web Bluetooth Eddystone made easier

Build Status David David Code Climate


Getting started source-code using Physical Web beacons

Features

  • [x] Scan Eddystone beacons
  • [x] Connect / Disconnect
  • [x] Monitor connection status
  • [ ] Read Capabilities
  • [ ] Read / Write Active Slot
  • [x] Read / Write Advertising Interval
  • [x] Read / Write Radio Tx Power
  • [x] Read / Write Advertised Tx Power
  • [x] Read Lock State
  • [ ] Write Lock State
  • [ ] Read / Write Unlock
  • [ ] Read Public ECDH Key
  • [ ] Read EID Identity Key
  • [x] Read / Write ADV Slot Data
  • [x] Write Factory reset
  • [ ] Read / Write Remain Connectable

Getting started

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.

Development

Eddystone Web Bluetooth implementation is based on the official specifications:

https://github.com/google/eddystone/tree/master/configuration-service

Contributions

Contributions are very welcome.

License

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.