diff --git a/apps/hasensors/ChangeLog b/apps/hasensors/ChangeLog index 759f68777..7b3a63039 100644 --- a/apps/hasensors/ChangeLog +++ b/apps/hasensors/ChangeLog @@ -1 +1,3 @@ -0.01: New app! \ No newline at end of file +0.01: New app! +0.02: Add sensor icons + Customize code directly, remove config file diff --git a/apps/hasensors/boot.js b/apps/hasensors/boot.js index a9122be5d..efafbc8a3 100644 --- a/apps/hasensors/boot.js +++ b/apps/hasensors/boot.js @@ -1,5 +1,5 @@ (function () { - const sb = () => require('hasensors').sendBattery(); + const sb = () => require("hasensors").sendBattery(); Bangle.on("charging", sb); NRF.on("connect", () => setTimeout(sb, 2000)); setInterval(sb, 10 * 60 * 1000); diff --git a/apps/hasensors/custom.html b/apps/hasensors/custom.html index 805001701..265f80f46 100644 --- a/apps/hasensors/custom.html +++ b/apps/hasensors/custom.html @@ -39,14 +39,27 @@ your user profile.
- +
diff --git a/apps/hasensors/lib.js b/apps/hasensors/lib.js index 60cfb6da4..83072262c 100644 --- a/apps/hasensors/lib.js +++ b/apps/hasensors/lib.js @@ -1,35 +1,43 @@ // split out into a separate file to keep bootcode short. -function s(key) { - return (require('Storage').readJSON('hasensors.settings.js', true) || {})[key]; -} - +// placeholders are replaced by custom.html before upload function post(sensor, data) { - const url = s('url') + '/api/states/sensor.' + s('id') + '_' + sensor; + const url = "{url}/api/states/sensor.{id}_" + sensor; Bangle.http(url, { - method: 'POST', + method: "POST", body: JSON.stringify(data), headers: { - 'Content-Type': 'application/json', - Authorization: 'Bearer ' + s('token'), + "Content-Type": "application/json", + Authorization: "Bearer {token}", } }); } exports.sendBattery = function () { if (!NRF.getSecurityStatus().connected) return; - post('battery_level', { - state: E.getBattery(), + const b = E.getBattery(), + c = Bangle.isCharging(); + let i = "mdi:battery"; + if (c) i += "-charging"; + + post("battery_state", { + state: c ? "charging" : "discharging", attributes: { - friendly_name: s('name') + " Battery Level", + friendly_name: "{name} Battery State", + icon: i + (c ? "" : "-minus"), + } + }); + + if (b<10) i += "-outline"; // there is no battery-0 + else if (b<100 || c) i += "-" + Math.floor(b/10)*10; // no battery-100 either + + post("battery_level", { + state: b, + attributes: { + friendly_name: "{name} Battery Level", unit_of_measurement: "%", device_class: "battery", state_class: "measurement", - } - }); - post('battery_state', { - state: Bangle.isCharging() ? 'charging' : 'discharging', - attributes: { - friendly_name: s('name') + " Battery State", + icon: i, } }); } \ No newline at end of file diff --git a/apps/hasensors/metadata.json b/apps/hasensors/metadata.json index 7713fadc7..106f11407 100644 --- a/apps/hasensors/metadata.json +++ b/apps/hasensors/metadata.json @@ -2,7 +2,7 @@ "id": "hasensors", "name": "Home Assistant Sensors", "shortName": "HA sensors", - "version": "0.01", + "version": "0.02", "description": "Send sensor values to Home Assistant using the Android Integration.", "icon": "ha.png", "type": "bootloader", @@ -14,8 +14,5 @@ "storage": [ {"name":"hasensors","url":"lib.js"}, {"name":"hasensors.boot.js","url":"boot.js"} - ], - "data": [ - {"name":"hasensors.settings.json"} ] }