mirror of https://github.com/espruino/BangleApps
43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
// split out into a separate file to keep bootcode short.
|
|
// placeholders are replaced by custom.html before upload
|
|
function post(sensor, data) {
|
|
const url = "{url}/api/states/sensor.{id}_" + sensor;
|
|
Bangle.http(url, {
|
|
method: "POST",
|
|
body: JSON.stringify(data),
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
Authorization: "Bearer {token}",
|
|
}
|
|
});
|
|
}
|
|
|
|
exports.sendBattery = function () {
|
|
if (!NRF.getSecurityStatus().connected) return;
|
|
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: "{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",
|
|
icon: i,
|
|
}
|
|
});
|
|
} |