diff --git a/apps/bthome/ChangeLog b/apps/bthome/ChangeLog index 82c93ee1f..1920ee3a8 100644 --- a/apps/bthome/ChangeLog +++ b/apps/bthome/ChangeLog @@ -4,3 +4,4 @@ Set 'n' for buttons in Bangle.btHomeData correctly (avoids adding extra buttons on end of advertising) 0.04: Fix duplicate button on edit->save 0.05: Use the bleAdvert module +0.06: button number can't be 0. Now generates number automatically diff --git a/apps/bthome/metadata.json b/apps/bthome/metadata.json index 0156a5d32..bbfcfcfe5 100644 --- a/apps/bthome/metadata.json +++ b/apps/bthome/metadata.json @@ -1,7 +1,7 @@ { "id": "bthome", "name": "BTHome", "shortName":"BTHome", - "version":"0.05", + "version":"0.06", "description": "Allow your Bangle to advertise with BTHome and send events to Home Assistant via Bluetooth", "icon": "icon.png", "type": "app", diff --git a/apps/bthome/settings.js b/apps/bthome/settings.js index 1bdcb270d..d4910c1f7 100644 --- a/apps/bthome/settings.js +++ b/apps/bthome/settings.js @@ -11,10 +11,24 @@ require("Storage").writeJSON("bthome.json",settings) } + function getNewIdNumber(){ + var id_start = 1; + var select = false; + while(!select){ + select = true; + settings.buttons.forEach((button, idx) => { + if (id_start == button.n){ + id_start++; + select = false; + } + }); + } + return id_start; + } + function showButtonMenu(button, isNew) { - var isNew = false; if (!button) { - button = {name:"home", icon:"home", n:0, v:"press"}; + button = {name:"home", icon:"home", n:getNewIdNumber(), v:"press"}; isNew = true; } var actions = ["press","double_press","triple_press","long_press","long_double_press","long_triple_press"]; @@ -51,10 +65,6 @@ format : v => actions[v], onchange : v => button.v=actions[v] }, - /*LANG*/"Button #" : { - value : button.n, min:0, max:3, - onchange : v => button.n=v - }, /*LANG*/"Save" : () => { if (isNew) settings.buttons.push(button); saveSettings();