Attempt 2

pull/3474/head
deirdreobyrne 2024-06-26 18:53:59 +01:00 committed by GitHub
parent e9c8a7f67f
commit e3b29d4f5f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 38 additions and 9 deletions

View File

@ -1,10 +1,39 @@
(() => {
var btHomeSequenceNo = 0;
function advertiseBTHomeBattery() {
require("ble_advert").set(0xFCD2, [0x40,0x00,btHomeSequenceNo,0x01,E.getBattery()]);
btHomeSequenceNo = (btHomeSequenceNo + 1) & 255;
}
var btHomeBatterySequence = 0;
setInterval(advertiseBTHomeBattery, 5 * 60 * 1000);
advertiseBattery();
})();
function advertiseBTHomeBattery() {
var advert = [ 0x40, /* BTHome Device Information
bit 0: "Encryption flag"
bit 1-4: "Reserved for future use"
bit 5-7: "BTHome Version" */
0x00, // Sequence number
btHomeBatterySequence,
0x01, // Battery, 8 bit
E.getBattery()
];
if(Array.isArray(Bangle.bleAdvert)){
var found = false;
for(var ad in Bangle.bleAdvert){
if(ad[0xFCD2]){
ad[0xFCD2] = advert;
found = true;
break;
}
}
if(!found)
Bangle.bleAdvert.push({ 0xFCD2: advert });
} else {
Bangle.bleAdvert[0xFCD2] = advert;
}
NRF.setAdvertising(Bangle.bleAdvert);
btHomeBatterySequence = (btHomeBatterySequence + 1) & 255;
}
if (!Bangle.bleAdvert) Bangle.bleAdvert = {};
setInterval(function() {
advertiseBTHomeBattery();
}, 300000); // update every 5 min
advertiseBTHomeBattery();