0.2.0 • Published 4 years ago

node-red-contrib-ikea-home-smart v0.2.0

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
4 years ago

node-red-contrib-ikea-home-smart

Node-RED node to interface with IKEA smart home products as tradfri lights or blinds without any external binaries thanks to node-tradfri.

  • All operations (brightness, color temperature, color, etc.) supported by the gateway are available.
  • Support for observation (i.e. reporting on changes to the light).

Usage

There is one node for each accessory type (besides the config node). After the configuration has been successful -- either by providing an existing identity and PSK or by generating new ones by providing the security code from the gateway -- simply select which accessory or group to target and check if the node should observe the device as well.

Controlling the node

Nodes can be programmatically controlled by sending a message with msg.payload set to one of the following strings:

  • "status" The node will output the current status of its target accessory.

Controlling the blinds

A blind's position can be controled by sending an object with the following property as msg.payload to the node.

  • "position": number - The position in percent 0..100%.

Controlling the lights

Lightbulbs can be controlled by sending an object with one or more of the following properties as msg.payload to the node.

All of them support the most basic properties, which are

  • "dimmer": number - The brightness in percent 0..100%.
  • "onOff": boolean - If the lightbulb is on (true) or off (false)
  • "transitionTime": number - The duration of state changes in seconds. Default 0.5s, not supported for on/off.

White spectrum lightbulbs also support

  • "colorTemperature": number - The color temperature in percent, where 0% equals cold white and 100% equals warm white.

RGB lightbulbs have the following properties:

  • "color": string - The 6 digit hex number representing the lightbulb's color. Don't use any prefixes like "#", only the hex number itself!
  • "hue": number - The color's hue 0..360°.
  • "saturation": number - The color's saturation 0..100%.

Controlling the plugs (Untested)

Control a plug by sending an object with the following property as msg.payload to the node.

  • "onOff": boolean - If the plug is on (true) or off (false).

Controlling the groups

A group contains several devices, usually a remote control and either lightbulbs, plugs or blinds. To control the group send the following properties as msg.payload to the node:

For a group of lights

  • "dimmer": number - The brightness in percent 0..100%.
  • "onOff": boolean - If the lightbulb is on (true) or off (false)
  • "transitionTime": number - The duration of state changes in seconds. Default 0.5s, not supported for on/off.

For a group of blinds

  • "position": number - The position in percent 0..100%.

For a group of plugs

  • "onOff": boolean - If the plug is on (true) or off (false)

Additionally, this property is also supported:

  • "sceneId": number - Set this to the instanceId of a scene (or "mood" as IKEA calls them), to activate it.

Status node output

If a status request is send or a device's state is updated, the node will respond with a msg.payload containing its current properties.

  • "name": string - The name of this accessory.
  • "createdAt": number - The unix timestamp of the creation of the device.
  • "instanceId": number - The ID under which the accessory is known to the gateway.
  • "type": number - The type of the accessory. - remote (0) - A "normal" remote - slaveRemote (1) - A remote which has been paired with another remote. You can find details here on how to achieve this configuration. - lightbulb (2) - A lightbulb - plug (3) - A smart plug - motionSensor (4) - A motion sensor - signalRepeater (6) - A signal repeater - blind (7) - A blind
  • "alive": boolean - Whether the gateway considers this device as alive.
  • "lastSeen": number - The unix timestamp of the last communication with the gateway.
  • "otaUpdateState": number - Unknown. Might be a boolean
  • "deviceInfo": object - Some additional information about the device. - "firmwareVersion": string - The firmware version of the device. - "manufacturer": string - The device manufacturer. - "modelNumber": string - The name/type of the device. - "power": number - How the device is powered. Unknown (0) InternalBattery (1) ExternalBattery (2) Battery (3) - Although not in the specs, this is apparently used by the remote PowerOverEthernet (4) USB (5) AC_Power (6) Solar (7) - "serialNumber": string - Not used currently. Always "" - "battery": number - The battery percentage of a device. Only present if the device is battery-powered.
  • "switchList": array - An array of all remotes belonging to this accessory. - "name": string - Currently not supported. - "createdAt": number - Currently not supported. - "instanceId": number - Currently not supported.
  • "sensorList": array - An array of all sensors belonging to this accessory. - "name": string - Currently not supported. - "createdAt": number - Currently not supported. - "instanceId": number - Currently not supported. - "appType": string - Currently not supported. - "sensorType": string - Currently not supported. - "minMeasuredValue": number - Currently not supported. - "maxMeasuredValue": number - Currently not supported. - "minRangeValue": number - Currently not supported. - "maxRangeValue": number - Currently not supported. - "resetMinMaxMeasureValue": boolean - Currently not supported. - "sensorValue": number - Currently not supported. - "unit": string - Currently not supported.
  • "plugList": array - An array of all plugs belonging to this accessory. - "onOff": boolean - If the plug is on (true) or off (false). - "isSwitchable": boolean - Whether the plug supports on/off (always true). - "isDimmable": boolean - Whether the plug supports setting the dimmer value (always false for now).
  • "lightList": array - An array of all lights belonging to this accessory. - "onOff": boolean - If the lightbulb is on (true) or off (false) - "dimmer": number - The brightness in percent 0..100%. - "transitionTime": number - The duration of state changes in seconds. Default 0.5s, not supported for on/off. - "colorTemperature": number - The color temperature in percent, where 0% equals cold white and 100% equals white. - "color": string - The 6 digit hex number representing the lightbulb's color. - "colorX": number - The x component of the xy-color - "colorY": number - The y component of the xy-color - "hue": number - The color's hue 0..360°. - "saturation": number - The color's saturation 0..100%.
  • "blindList": array - An array of all blinds belonging to this accessory. - "position": number - The position in percent 0..100%.

Changelog

0.2.0

  • Added group and scene control, blind, plug, remote and sensor support.

0.1.2

  • Moved output status object from msg.payload.light to msg.payload.
  • Updated security code, identity and PSK to be saved as credentials in config.
  • Updated info panels and tweaked node appearance.

0.1.1

  • Published to NPM
0.2.0

4 years ago