@gravypower/node-red-franklinwh
Version:
Node-RED node to control FranklinWH gateway
35 lines (31 loc) • 1.1 kB
JavaScript
const apiHandler = require('../../../api-handler');
module.exports = function(RED) {
function FranklinWHGetControlsNode(config) {
RED.nodes.createNode(this, config);
const node = this;
const server = RED.nodes.getNode(config.server);
if (!server) {
node.error("No credentials configured");
return;
}
node.on("input", async function (msg, send, done) {
try {
await apiHandler.executeWithRetry(
node,
server,
async (api) => {
return { controls: await api.getControls() };
},
msg,
send,
done
);
} catch (err) {
node.status({fill:"red",shape:"ring",text:"error"});
node.error("FranklinWH Error: " + err.message, msg);
if (done) done(err);
}
});
}
RED.nodes.registerType("franklinwh-get-controls", FranklinWHGetControlsNode);
}