UNPKG

node-red-contrib-nanoleaf

Version:

[![platform](https://img.shields.io/badge/platform-Node--RED-red?logo=nodered)](https://nodered.org) [![Min Node Version](https://img.shields.io/node/v/node-red-contrib-nanoleaf.svg)](https://nodejs.org/en/) [![GitHub version](https://img.shields.io/githu

31 lines (26 loc) 1.22 kB
module.exports = function (RED) { 'use strict' function Power(config) { RED.nodes.createNode(this, config) var node = this var installationObj = RED.nodes.getNode(config.installation) this.on('input', (msg) => { var payload = msg.payload var operation if ((typeof payload === 'boolean' && payload === true) || (typeof payload === 'number' && payload === 1) || (typeof payload === 'string' && payload.toLocaleUpperCase() === 'ON')) { operation = { 'value': true } } else if ((typeof payload === 'boolean' && payload === false) || (typeof payload === 'number' && payload === 0) || (typeof payload === 'string' && payload.toLocaleUpperCase() === 'OFF')) { operation = { 'value': false } } else { node.error(`Unrecognised payload type: ${typeof payload}. ${JSON.stringify(payload)}`) return } installationObj.setState('on', operation).catch((err) => node.error(err.message, err)) }) } RED.nodes.registerType('power', Power) }