Avatar for cephos

cephos

Member since Jun 2022 • Last active Jan 2023
  • 0 conversations
  • 6 comments

Most recent activity

  • 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