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

142 lines (117 loc) 7.32 kB
# Nanoleaf Node-Red client [![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/github/package-json/v/andreypopov/node-red-contrib-nanoleaf?logo=npm)](https://www.npmjs.com/package/node-red-contrib-nanoleaf) [![GitHub stars](https://img.shields.io/github/stars/andreypopov/node-red-contrib-nanoleaf)](https://github.com/andreypopov/node-red-contrib-nanoleaf/stargazers) [![Package Quality](https://packagequality.com/shield/node-red-contrib-nanoleaf.svg)](https://packagequality.com/#?package=node-red-contrib-nanoleaf) [![issues](https://img.shields.io/github/issues/andreypopov/node-red-contrib-nanoleaf?logo=github)](https://github.com/andreypopov/node-red-contrib-nanoleaf/issues) ![GitHub last commit](https://img.shields.io/github/last-commit/andreypopov/node-red-contrib-nanoleaf) ![NPM Total Downloads](https://img.shields.io/npm/dt/node-red-contrib-nanoleaf.svg) ![NPM Downloads per month](https://img.shields.io/npm/dm/node-red-contrib-nanoleaf) ![Repo size](https://img.shields.io/github/repo-size/andreypopov/node-red-contrib-nanoleaf) A node-red module, which provides nodes to manipulate a Nanoleaf Aurora installation. ## Installation ## To install the stable version use the `Menu - Manage palette` option and search for `node-red-contrib-nanoleaf`, or run the following command in your Node-RED user directory (typically `~/.node-red`): npm i node-red-contrib-nanoleaf Open your Node-RED instance and you should have Nanoleaf Aurora nodes available in the palette. ## Get your access token ## You can request an access token from the 'new access token' node. This is required for the other nodes to manipulate your installation. To do so, create a flow with a inject input, new access token and debug output (or import the flow below). [{"id":"e55b9d45.fd9998","type":"inject","z":"2d92504.e175db","name":"Create","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":100,"wires":[["cb1b93ab.818018"]]},{"id":"1aa2ee85.d5cca9","type":"debug","z":"2d92504.e175db","name":"Debug token","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":510,"y":100,"wires":[]},{"id":"cb1b93ab.818018","type":"new-access-token","z":"2d92504.e175db","host":"","query":"/api/v1/new","port":16021,"x":290,"y":100,"wires":[["1aa2ee85.d5cca9"]]},{"id":"f5b63322.d94098","type":"comment","z":"2d92504.e175db","name":"Create new access token","info":"","x":130,"y":20,"wires":[]},{"id":"cd2b5206.2cd0e8","type":"comment","z":"2d92504.e175db","name":"Change host IP address!","info":"","x":310,"y":60,"wires":[]}] Fill in the host ip of your Nanoleaf Aurora. Deploy then hold the on-off button down for 5-7 seconds until the LED starts flashing. Triggering the inject node should result in a new access token being created and displayed in the debug area. Use this token when creating an installation of Nanoleaf Aurora for the other nodes. ## Currently tested with NanoLeaf firmware ## 3.1.3 If you are encountering issues with a newer firmware, please open a [GitHub issue](https://github.com/andreypopov/node-red-contrib-nanoleaf/issues/new). ## Current nodes implemented ## ### Brightness ### Set the current brightness. * Integer payload; 0 -> 100. - Numbers less than 0 are clipped to 0 - Numbers greater than 100 clipped to 100 * Object payload { brightness (0, 100], duration (seconds) } ### Color ### For hex and css keyword where the payload was just a string you can specify duration by creating a structure (see below) instead. Duration is an integer in seconds which defaults to 0. #### HEX #### { "#RRGGBB" } or { "color": "#RRGGBB", "duration": [seconds] } #### CSS Keyword #### Available keywords can be found at [https://drafts.csswg.org/css-color/#named-colors](https://drafts.csswg.org/css-color/#named-colors). Keywords are case insensitive. { "css keyword" } { "color": "css keyword", "duration": [seconds] } #### RGB #### { r, g, b } { red, green, blue } { r, g, b, duration } { red, green, blue, duration } #### HSV #### { h, s, v } { h, s, b } { hue, saturation, value } { hue, saturation, brightness } { h, s, v, duration } { h, s, b, duration } { hue, saturation, value, duration } { hue, saturation, brightness, duration } #### HSL #### { h, s, l } { h, s, l, duration } #### CMYK #### { c, m, y, k } { c, m, y, k, duration } ### Effects ### List installed effects, current effect or both ### Effect ### Set the current effect and start the show ### Identify ### Flash the Nanoleaf Aurora installation on and off (colour cannot be changed) ### Installation ### Shared configuration node used by all but the new access token node ### Information ### Dump of all the information supplied by the Nanoleaf Aurora installation ### New access token ## Create a new access token (see above) ### Power ### Switch on/off ### Power status ### on/off ### Advanced ### Direct manipulation of the restful [API](https://forum.nanoleaf.me/docs/openapi) implemented by Nanoleaf. <em>DO NOT</em> use unless you know what you are doing! ## Changes ahead ## No more nodes planned! If you want something, please raise an issue or a pull request. Tests. All this was written 'blind' or by testing manually. If anyone could help with a PR which shows how to test at least a single node that would be <em>much</em> appreciated. ## Changelog ## ### 0.2.2 (2019.08.03) - [issue](https://github.com/andreypopov/node-red-contrib-nanoleaf/issues/4) Fix to power-status node. Thanks to narolinus ### 0.2.1 (2019.07.20) - Messed up the npm publish. Try again... ### 0.2.0 (2019.07.20) - Changes to the API forced changes to the color node. Thanks to arrichter for pointing out the break - Allow the setting of a duration in the color node. For the payload types that were just a string extend to be a structure of color and duration. - Bumped all dependencies to latest ### 0.1.1 (2019.03.19) - [issue](https://github.com/andreypopov/node-red-contrib-nanoleaf/issues/3) Fix to power node for Canvas. Thanks to TonKkkkk ### 0.1.0 (2019.02.24) - Migrated from original dependency [nanoleaf-client](https://github.com/darrent/nanoleaf-api/blob/master/README.md) which is no longer supported. Thanks guys, the code was appreciated! - Moved all requests to direct calls using the axios library - Brightness now supports, in addition to an 'immediate' brightness an object with a transition duration - Power-status node can set the output payload as - String (default), - Boolean or - Numeric - Effects can set the output payload as - Available; array of installed effects - Selected; currently selected effect - Combined; object with both selected and available effects - Advanced node ### 0.0.5 (2019.02.22) - Additional color options ### 0.0.4 (2019.02.02) - [enhancement](https://github.com/andreypopov/node-red-contrib-nanoleaf/issues/1) Added color node requested by arrichter ### 0.0.3 (2018.08.12) - Added brightness node ### 0.0.2 (2018.08.09) - Added README.md ### 0.0.1 (2018.08.08) - Initial release