pimatic-milight-reloaded

A pimatic plugin to control Milight LED lights and its OEM equivalents such as Rocket LED, Limitless LED Applamp, Easybulb, s`luce, iLight, iBulb, and Kreuzer


Keywords
home-automation, limitlessled, milight, pimatic, pimatic-plugin
License
GPL-2.0
Install
npm install pimatic-milight-reloaded@0.9.18

Documentation

pimatic-milight-reloaded

Npm Version Build Status Dependency Status

A pimatic plugin to control Milight LED bulbs and OEM equivalents auch as Rocket LED, Limitless LED Applamp, Easybulb, s`luce, iLight, iBulb, and Kreuzer.

Status of Implementation

Since the first release the following features have been implemented:

  • Support for the Milight controller iBox1 and iBox2, including auto-discovery
  • Improved auto-discovery supporting multi-homed hosts
  • Support for bridge light of the iBox2 controller
  • Milight color action to control color of MilightRGBWZone, MilightBridgeLight, and MilightFullColorZone. Note, the action currently only changes the hue value of the lights. Brightness control can be added, but unfortunately it is not possible to control saturation which limits the color rendition, drastically
  • Implemented basic support for V6 full color bulbs (color temperature and saturation control missing to date)
  • Implemented actions to control color temperature and brightness for MilightWWCWZone
  • Implemented blink action to let the lights flash for given number of times
  • Implemented actions control effect modes for MilightRGBWZone, MilightBridgeLight, and MilightFullColorZone
  • Implemented saturation control for full color bulbs
  • Implemented support for new 8-zone controller

The next steps are as follows:

  • Improve the support for the new full color bulbs by adding the missing features, i.e. color temperature
  • Provide a custom UI control
  • Provide more actions for other stuff like advanced dimming with fading

Notable Changes

As of version 0.9.14 the color device types now implement the default behaviour of pimatic dimmer, i.e. turning the dimmer on will always set the dim level to 100%. If you wish to retain the old behavior, you set the device configuration option keepDimlevel to true.

Contributions

Contributions to the project are welcome. You can simply fork the project and create a pull request with your contribution to start with. If you like this plugin, please consider ★ starring the project on github.

Configuration

Plugin Configuration

{
      "plugin" : "milight-reloaded"
}

The plugin has the following configuration properties:

Property Default Type Description
debug false Boolean Debug mode. Writes debug messages to the pimatic log, if set to true

Device Configuration

It is suggested to use device discovery to choose the required device types from the list of discovered devices and to edit them with device editor.

MilightRGBWZone

MilightRGBWZone is used for the RGB-WW LED bulbs and strip controllers.

{
      "class": "MilightRGBWZone",
      "id": "milight-rgbw-zone-1",
      "name": "Milight RGBW Zone 1",
      "ip": "192.168.0.77",
      "bridgeVersion": "v6",
      "zoneId": 1
}

The device has the following configuration properties:

Property Default Type Description
ip String The IP address if the Wifi controller
port 0 Number The port of the Wifi controller. 0 will automatically select the appropriate port
bridgeVersion "legacy" String The protocol version supported by the Wifi bridge: Use 'v6' for iBox1 & iBox2, or 'legacy' for older controllers
zoneId 0 Number The Milight zone to control. 0 will control all zones if supported by the controller
delayBetweenCommands 75 (100) Number The delay time in ms to wait between transmissions, default 75ms. For 'v6' the minimum is 100ms
useTwoByteCommands true Boolean Use 2-byte commands if true (default), otherwise use 3-byte commands. Only applicable for 'legacy' protocol
broadcast false Boolean If true use IP broadcast mode, use unicast mode is used otherwise

The following predicates and actions are supported:

  • {device} is turned on|off
  • switch {device} on|off
  • toggle {device}
  • dim {device} to {value}, where {value} is the percentage of brightness (0-100)
  • milight set color {device} to {value}, where {value} is one of the following
    • a six digit hexadecimal RGB color code preceded by #, e.g., #FF0000,
    • a rgb function provided with the decimals for the three base color values, e.g., rgb(255, 0, 0)
    • a CSS color name, e.g., red
  • milight set blink {device} [ count {times} [ delay {milliseconds} ]]
  • milight set blink {device} [ count {times} [ delay {milliseconds} ]]
  • milight set effectMode {device} [ mode {mode [1-9]}] supported with v6, only!
  • milight set effectNext {device} [ count {times} [ delay {milliseconds} ]]
  • milight set effectSlower {device} [ count {times} [ delay {milliseconds} ]]
  • milight set effectFaster {device} [ count {times} [ delay {milliseconds} ]]
  • milight set nightMode {device}

The optional count parameter for for the blink action is used to specify how often the command shall be executed within a value range from 1 to 10. The optional delay parameter specifies the time in milliseconds between repetitions ranging within a value range from 0 to 10000. Invalid values will be silently transformed to the closest valid value.

MilightWWCWZone

MilightWWCWZone is used for the WW-CW LED bulbs and strip controllers.

{
      "class": "MilightWWCWZone",
      "id": "milight-wwcw-zone-2",
      "name": "Milight WWCW Zone 2",
      "ip": "192.168.0.77",
      "bridgeVersion": "v6",
      "zoneId": 2
}

The device has the following configuration properties:

Property Default Type Description
ip String The IP address if the Wifi controller
port 0 Number The port of the Wifi controller. 0 will automatically select the appropriate port
bridgeVersion "legacy" String The protocol version supported by the Wifi bridge: Use 'v6' for iBox1 & iBox2, or 'legacy' for older controllers
zoneId 0 Number The Milight zone to control. 0 will control all zones if supported by the controller
delayBetweenCommands 75 (100) Number The delay time in ms to wait between transmissions, default 75ms. For 'v6' the minimum is 100ms
useTwoByteCommands true Boolean Use 2-byte commands if true (default), otherwise use 3-byte commands. Only applicable for 'legacy' protocol
broadcast false Boolean If true use IP broadcast mode, use unicast mode is used otherwise

The following predicates and actions are supported:

  • {device} is turned on|off
  • switch {device} on|off
  • toggle {device}
  • milight set warmer {device} [ count {times} [ delay {milliseconds} ]], which increases color temperature
  • milight set cooler {device} [ count {times} [ delay {milliseconds} ]], which decreases color temperature
  • milight set brighter {device} [ count {times} [ delay {milliseconds} ]]
  • milight set darker {device} [ count {times} [ delay {milliseconds} ]]
  • milight set blink {device} [ count {times} [ delay {milliseconds} ]]
  • milight set maxBright {device}
  • milight set nightMode {device}

The optional count parameter for milight actions is used to specify how often the command shall be executed within a value range from 1 to 10. The optional delay parameter specifies the time in milliseconds between repetitions ranging within a value range from 0 to 10000. Invalid values will be silently transformed to the closest valid value. Note, the night mode can be turned off by either setting maximum brightness (maxBright) or by switching the device on. In both cases the maximum brightness will be set.

MilightBridgeLight

MilightBridgeLight is used for the bridge light of the iBox2 controller.

{
          "class": "MilightBridgeLight",
          "id": "milight-v6-bridge-light-1",
          "name": "Milight V6 Bridge Light",
          "ip": "192.168.0.77"
}

The device has the following configuration properties:

Property Default Type Description
ip String The IP address if the Wifi controller
port 0 Number The port of the Wifi controller. 0 will automatically select the appropriate port
delayBetweenCommands 75 (100) Number The delay time in ms to wait between transmissions, default 75ms. For 'v6' the minimum is 100ms

The following predicates and actions are supported:

  • {device} is turned on|off
  • switch {device} on|off
  • toggle {device}
  • dim {device} to {value}, where {Value} is the percentage of brightness (0-100)
  • milight set color {device} to {value}, where {value} is one of the following
    • a six digit hexadecimal RGB color code preceded by #, e.g., #FF0000,
    • a rgb function provided with the decimals for the three base color values, e.g., rgb(255, 0, 0)
    • a CSS color name, e.g., red
  • milight set blink {device} [ count {times} [ delay {milliseconds} ]]
  • milight set effectMode {device} [ mode {mode [1-9]}]
  • milight set effectNext {device} [ count {times} [ delay {milliseconds} ]]
  • milight set effectSlower {device} [ count {times} [ delay {milliseconds} ]]
  • milight set effectFaster {device} [ count {times} [ delay {milliseconds} ]]
  • milight set nightMode {device}

The optional count parameter for for the blink action is used to specify how often the command shall be executed within a value range from 1 to 10. The optional delay parameter specifies the time in milliseconds between repetitions ranging within a value range from 0 to 10000. Invalid values will be silently transformed to the closest valid value.

MilightFullColorZone and Milight8ChannelFullColorZone

MilightFullColorZone is used for the full color (RGB WW/CW) lights supported with the new iBox controllers. Milight8ChannelFullColorZone is used with the new 8-channel remote controller along with full color (RGB WW/CW) lights. The new remote can manage up to 8 zones. Note, the 8-channel remote controller is not supported with all iBox controllers. It has been reported to work with recent makes of the iBox2 controller.

{
          "class": "MilightFullColorZone",
          "id": "milight-v6-full-color-light-1",
          "name": "Milight V6 Full Color Light",
          "ip": "192.168.0.77",
          "zoneId": 1 
}

The device has the following configuration properties:

Property Default Type Description
ip String The IP address if the Wifi controller
port 0 Number The port of the Wifi controller. 0 will automatically select the appropriate port
zoneId 0 Number The Milight zone to control. 0 will control all zones
delayBetweenCommands 75 (100) Number The delay time in ms to wait between transmissions, default 75ms. For 'v6' the minimum is 100ms

The following predicates and actions are supported:

  • {device} is turned on|off
  • switch {device} on|off
  • toggle {device}
  • dim {device} to {value}, where {Value} is the percentage of brightness (0-100)
  • milight set color {device} to {value}, where {value} is one of the following
    • a six digit hexadecimal RGB color code preceded by #, e.g., #FF0000,
    • a rgb function provided with the decimals for the three base color values, e.g., rgb(255, 0, 0)
    • a CSS color name, e.g., red
  • milight set blink {device} [ count {times} [ delay {milliseconds} ]]
  • milight set effectMode {device} [ mode {mode [1-9]}]
  • milight set effectNext {device} [ count {times} [ delay {milliseconds} ]]
  • milight set effectSlower {device} [ count {times} [ delay {milliseconds} ]]
  • milight set effectFaster {device} [ count {times} [ delay {milliseconds} ]]
  • milight set nightMode {device}

The optional count parameter for for the blink action is used to specify how often the command shall be executed within a value range from 1 to 10. The optional delay parameter specifies the time in milliseconds between repetitions ranging within a value range from 0 to 10000. Invalid values will be silently transformed to the closest valid value.

History

See Release History.

License

Copyright (c) 2015-2017, Marcus Wittig and contributors. All rights reserved.

AGPL-3.0