Avatar for cephos

cephos

Member since Jun 2022 • Last active Feb 2024
  • 1 conversations
  • 9 comments

Most recent activity

    • 6 comments
    • 364 views
  • in Bangle.js
    Avatar for cephos

    I used a black one, as some edges and corners are visible from certain angles and two different rose materials look worse than rather standard-black in my oppinion. I used uhu patafix. it holds enough, fills the mm-gap and is removable if you decide you want another color.

  • in Bangle.js
    Avatar for cephos

    Thanks for the suggestions. I ended up glueing a apple-watch-cover over it (with removable glue). It has approx 2 mm space which can be filled with glue thats hidden by the curved front.
    Used these two products:

    Turned out well enough for my wife to wear it daily :-).

  • in Bangle.js
    Avatar for cephos

    My wife would like to have a smartwatch with a strap in rosé (pink) gold steel mesh (something like https://www.apfelkiste.ch/smart-watch-fi­tness-tracker-display-ecg-herzfrequenzme­ssung-frauen-milanaise-armband-rosegold.­html)
    of course with all the features and extensiblity of the bangle2 :-). A strap compatible with the bangle2 can be found but doesn't blend in well with the silicone/plastic look of the watch-case (even the pink version).

    Thought about how to blend in the watch to the metallic look and thought about the following possiblities:

    1. Spray-painting the watch with a metallic color (how well does it stick?)
    2. ordering a custom milled casing with the right colored metal (has anyone a 3d-model of the current case?)

    Does anyone has some experience with such a plan? Other ideas are welcome (except buy her an apple-watch).

  • in Bangle.js
    Avatar for cephos

    For those who asked for example code, I pulled it out of the gadgetbridge Java-Code:

    // to create an intent for other android-apps to react to:
    Bluetooth.println(JSON.stringify({t:"int­ent",action:"com.sonyericsson.alarm.ALAR­M_ALERT",extra:{key1:"asdfas"}}));

    // to make a http-call:
    Bluetooth.println(JSON.stringify({t:"htt­p", url:"https://192.168.1.14/bangletest",xpath:"­/html/body/p/div[3]/a"}));

  • in Bangle.js
    Avatar for cephos

    If someone's interested: just written a draft for direct mqtt-support in gadgetbridge. This way no other app would be required and no detour via intents would be necessary. This is not tested, runnable and even eventually not compileable. First have to setup a project in an Java-IDE to compile and test it.

    https://github.com/gfwilliams/Gadgetbrid­ge/compare/master...cephos:master

    For the devs among you, what do you think of the concept?

  • in Bangle.js
    Avatar for cephos

    just edited my reply. Thanks for the clarification.

  • in Bangle.js
    Avatar for cephos

    thanks for the solution, it works now. had to set the rate limit in Broadcast to MQTT to 0

  • in Bangle.js
    Avatar for cephos

    Have done some more tests and it seems I always recieve the first intent after a pause of around 60 seconds. Is there a limitation in BLE/Gadgetbridge or the Android intent system? Also activated Big MTU in Gadgetbridge, but no change in behaviour.

  • in Bangle.js
    Avatar for cephos

    This is great news, thanks Gordon for the work in Gadgetbridge!
    I already played with the ble-gateway on a esp32 for a smarthome-control-app but always had problems with coverage in my house. Over the phone should be much more reliable.

    So I tried via Intents and an Android-App called "Broadcast to MQTT" but I only get one out of 10 messages arriving in this app. My watch is in 10-20 cm distance to my phone.

    Can anyone guess what could be the problem?

    Or is BLE in general as unreliable as I'm experiencing, so I would have to build a repeat-function on the bangle and then merge duplicates together on nodered? Or is there a possibility for a Callback (seems like global.GB = (event) => .. is currently not called with intents) to verify that gadgetbridge has recieved the message.

    Below my test-code for my bangle2 :

    var Layout = require("Layout");
    var layout = new Layout( {
      type:"v", c: [
        {type:"txt", font:"6x8:2", label:"A Test", id:"label" }
      ]
    }, {btns:[
      {label:"One", cb: l=>httpCall("One"),  cbl: l=>httpCall("One long press")}
    ], lazy:true});
    
    g.clear();
    layout.render();
    
    var counter=0;
    
    
    function httpCall(){     Bluetooth.println(JSON.stringify({t:"int­ent",action:"com.sonyericsson.alarm.ALAR­M_ALERT",extra:{key1:"asdfas",}}));
    counter++;
    setLabel(counter);
    }
    
    function setLabel(x) {
      layout.label.label = x;
      layout.render();
    }
    
    global.GB = (event) => {
       if(event.t == "intent"){
          if(event.err)
            E.showAlert(event.err);
          else
            E.showMessage(event.resp +"from MQTT");
       }else{
         E.showAlert("Event was: "+event.t);
       }
    };
    
Actions