diff --git a/apps/openhaystack/ChangeLog b/apps/openhaystack/ChangeLog index 67d7bbabf96..599bac2686c 100644 --- a/apps/openhaystack/ChangeLog +++ b/apps/openhaystack/ChangeLog @@ -1,3 +1,4 @@ 0.01: New App! 0.02: Keep advertising when connected 0.03: Use ble_advert module to work with other BLE advert apps +0.04: Update battery status in advertising packet diff --git a/apps/openhaystack/custom.html b/apps/openhaystack/custom.html index 774b5e6cb67..8fc1f7c2128 100644 --- a/apps/openhaystack/custom.html +++ b/apps/openhaystack/custom.html @@ -38,7 +38,12 @@ { const key = E.toUint8Array(atob(${JSON.stringify(keyValue)})); // public key const mac = [ key[0] | 0b11000000, key[1], key[2], key[3], key[4], key[5] ].map(x => x.toString(16).padStart(2, '0')).join(':'); // mac address -const adv = [ 0x1e, 0xff, 0x4c, 0x00, 0x12, 0x19, 0x00, key[6], key[7], key[8], key[9], key[10], key[11], key[12], key[13], key[14], key[15], key[16], key[17], key[18], key[19], key[20], key[21], key[22], key[23], key[24], key[25], key[26], key[27], key[0] >> 6, 0x00 ]; // advertising packet +let batt = E.getBattery(); +if (batt > 80) batt = 0x0; // full +else if (batt > 50) batt = 0x50; // medium +else if (batt > 20) batt = 0xa0; // low +else batt = 0xf0; // critical +const adv = [ 0x1e, 0xff, 0x4c, 0x00, 0x12, 0x19, batt, key[6], key[7], key[8], key[9], key[10], key[11], key[12], key[13], key[14], key[15], key[16], key[17], key[18], key[19], key[20], key[21], key[22], key[23], key[24], key[25], key[26], key[27], key[0] >> 6, 0x00 ]; // advertising packet NRF.setAddress(mac); require("ble_advert").push(adv, {whenConnected: true, interval: 1000}); // advertise AirTag *and* normal device name (to remain connectable) } diff --git a/apps/openhaystack/metadata.json b/apps/openhaystack/metadata.json index 712e7ebafa3..eb83f6501d0 100644 --- a/apps/openhaystack/metadata.json +++ b/apps/openhaystack/metadata.json @@ -1,7 +1,7 @@ { "id": "openhaystack", "name": "OpenHaystack (AirTag)", "icon": "icon.png", - "version":"0.03", + "version":"0.04", "description": "Copy a base64 key from https://github.com/seemoo-lab/openhaystack and make your Bangle.js trackable as if it's an AirTag", "tags": "openhaystack,bluetooth,ble,tracking,airtag", "type": "bootloader",