Avatar for kab

kab

Member since Jan 2022 • Last active Dec 2022
  • 5 conversations
  • 25 comments

Most recent activity

  • in Bangle.js
    Avatar for kab

    I have to confess, all this hex stuff makes my eyes crossed (grin). If you ever get the above "trivial" bthome module done, that would be quite helpful. I'd love to do it myself but have run into alot of walls trying.

  • in Bangle.js
    Avatar for kab

    I agree. Yet another standard
    But if you could host a module - that would make future home assistant integrations easy I think.

    Is it just a matter of advertising the bthome code rather than the bluetooth std code.
    ie
    battery advertisement
    bluetooth std code = 0x180F
    bthome code = 0x01

  • in Bangle.js
    Avatar for kab

    Coming back to this out of interest due to the new bluetooth proxy that home assistant has. Has anyone looked into BTHome https://bthome.io/ for home Assistant. I think if this was used the whole hub and mqtt could be skipped?

  • in Bangle.js
    Avatar for kab

    ok. Cleared out all my files, went back to basics.
    added an image and an info file to storage. then added a ibeacon.boot.js file to storage with

    var myiBeacon = require("ble_ibeacon").get({
      uuid : [0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx, 0xxx], [#myuuid](http://forum.espruino.com/searĀ­ch/?q=%23myuuid)
      rssi : -74
    });
    var _setAdvertising = NRF.setAdvertising;
    NRF.setAdvertising = function(a,b) {
      if (Array.isArray(typeof a)) a = [a,myiBeacon];
      _setAdvertising(a,b);
    };
    function advertiseBeacon() {
      NRF.setAdvertising(Bangle.bleAdvert);
    }
    if (!Bangle.bleAdvert) Bangle.bleAdvert = {};
    setInterval(advertiseBeacon, 60 * 1000);
    advertiseBeacon();
    

    did a load() and it disconnected from bangle2 with prompt not detected, upload failed, trying to recover. And it reconnected. At that point I checked the file was saved - it was and I did load() and then disconnected - and all seems to work. It is picked up by Home Assistant Espresense as an ibeacon.

    I guess I should now try t add widget bootgattbat and see if they all work together. First... a backup

  • in Bangle.js
    Avatar for kab

    Nope. With code below I only get to the bangle logo with a line
    -> bluetooth

    then it sticks

    var myiBeacon = require("ble_ibeacon").get({
      uuid : [0xbd, 0x84, 0xb1, 0xb2, 0x1c, 0x2c, 0x00, 0xbe, 0x0c, 0xe9, 0x26, 0x70, 0x0f, 0xfe, 0x0c, 0xa0],
      rssi : -74
    });
    
    NRF.setAdvertising = function(a,b) {
      if (Array.isArray(typeof a)) a = [a,myiBeacon];
        _setAdvertising(a,b);
    };
    
    var _setAdvertising = NRF.setAdvertising;
    
    function advertiseBeacon() {
      NRF.setAdvertising(Bangle.bleAdvert);
    }
    
    if (!Bangle.bleAdvert) Bangle.bleAdvert = {};
    
    setInterval(advertiseBeacon, 60 * 1000);
    
    advertiseBeacon();
    
  • in Bangle.js
    Avatar for kab
    Uncaught error: Too much recursion stack is about to overflow
    in function "_setadvertising" called from line 9 col 21 in .boot0
    

    First "rotating" the advertising code seems to work. Stick to no more ble advertising and I should be fine?

  • in Bangle.js
    Avatar for kab

    Thanks for info on error.
    Also - thanks for overwrite of setAdvertising. Tried it and get an error on left side of ide at line 7: invalid typeof value "array"
    I g-searched but could not come up with a fix. I assume you are checking to see if incoming a is an array? Sorry - just a hair above my javascript knowledge.

  • in Bangle.js
    Avatar for kab

    How would I use this example as a way use my bangle2 to advertising it as a beacon?
    I have tried

    
    (() => {
      function advertiseBeacon() {
        NRF.setAdvertising([
          require("ble_ibeacon").get({
            uuid : [0xb1, 0xae, 0x51, 0x2b, 0x97, 0x03, 0x4a, 0xe2, 0xb9, 0xc3, 0x9e, 0x26, 0x0c, 0xa7, 0xb3, 0x99],
            rssi : -60
          })
        ]);
      }
      setInterval(advertiseBeacon, 60 * 1000);
      advertiseBeacon();
    })();
    
    

    but get a "Uncaught Storage Updated" when I try to save it to a file in storage on the watch.

    I want to figure out how to use it in this format

    Bangle.bleAdvert[0x180F] = [E.getBattery()];
    

    so they all play together
    Thanks
    Katherine

  • in Bangle.js
    Avatar for kab

    cool. will get experimenting with this lead. Thanks!

Actions