Skip to content
This repository has been archived by the owner on Sep 21, 2020. It is now read-only.

Commit

Permalink
[milight] Spring clean up (#4192)
Browse files Browse the repository at this point in the history
Config: Breaking change.

* Make explicit handlers out of all the bulb types.
* Use configuration holder classes instead of manually parsing.
* Don't handle config changes ourselves, just use the default behaviour of dispose()/initialize().
* Use lower case config names as per convention (BREAKING).
* Use a zone config for bulbs and not the (generated) Thing ID as before (BREAKING).
* Don't add all available bulbs to the discovery. The user need to add his/her bulb manually.
  The protocol doesn't support bulb detection, we shouldn't pretend to either.
* Don't start another scheduler timer every few seconds for the V6 bridge session keepalive.
* Don't use the scheduler for the V3 bridge keep alive: We "abuse" the socket timeout time instead
  and make the code simpler.
* Use <context> in thing-desc.xml
* Use global send queue for the entire binding. If multiple bridges are setup and they receive
  their commands in parallel that causes radio interference as reported by a user.
* Add increase/decrease support for channel color
* Use java.time instead of old java date/time related classes.
* Add Lighting tags and categories to the Milight Things and channels.

Fixes #4064
Fixes #3798
Fixes #3398
Fixes #3237
Fixes #3069
Fixes #3046
Fixes #2918

Signed-off-by: David Graeff <david.graeff@web.de>
  • Loading branch information
David Gräff authored and martinvw committed Nov 14, 2018
1 parent db84b33 commit 93a195c
Show file tree
Hide file tree
Showing 38 changed files with 2,389 additions and 2,334 deletions.
Expand Up @@ -5,7 +5,7 @@
xsi:schemaLocation="http://eclipse.org/smarthome/schemas/binding/v1.0.0 http://eclipse.org/smarthome/schemas/binding-1.0.0.xsd">

<name>Milight Binding</name>
<description>A binding for Milight/Easybulb/compatible white, rgb and rgbw bulbs.</description>
<description>A binding for Milight/Easybulb/compatible white, color and color+white bulbs.</description>
<author>David Gräff</author>

</binding:binding>
116 changes: 116 additions & 0 deletions addons/binding/org.openhab.binding.milight/ESH-INF/thing/channels.xml
@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="milight"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="http://eclipse.org/smarthome/schemas/thing-description/v1.0.0"
xsi:schemaLocation="http://eclipse.org/smarthome/schemas/thing-description/v1.0.0 http://eclipse.org/smarthome/schemas/thing-description-1.0.0.xsd">

<channel-type id="lednightmode">
<item-type>Switch</item-type>
<label>Nightmode</label>
<description>Switch to night mode, a very dimmed brightness mode</description>
<state>
<options>
<option value="ON">Nightmode</option>
</options>
</state>
</channel-type>

<channel-type id="ledwhitemode">
<item-type>Switch</item-type>
<label>Whitemode</label>
<description>Switch to white mode, which basically sets the saturation to 0 (turns off the color leds)</description>
<state>
<options>
<option value="ON">Whitemode</option>
</options>
</state>
</channel-type>

<channel-type id="ledlink" advanced="true">
<item-type>Switch</item-type>
<label>Link bulb</label>
<description>Sync bulb to this zone within 3 seconds of light bulb socket power on</description>
</channel-type>

<channel-type id="ledunlink" advanced="true">
<item-type>Switch</item-type>
<label>Unlink bulb</label>
<description>Clear bulb from this zone within 3 seconds of light bulb socket power on</description>
</channel-type>

<channel-type id="ledcolor">
<item-type>Color</item-type>
<label>Color</label>
<description>Color of the LED. Bind to a Dimmer to just set the brightness, bind to a Color chooser for the full
control and bind to a Switch for turning the led on or off.
</description>
<category>ColorLight</category>
<tags>
<tag>ColorLighting</tag>
<tag>Lighting</tag>
</tags>
</channel-type>

<channel-type id="ledbrightness">
<item-type>Dimmer</item-type>
<label>Brightness</label>
<description>The brightness can be set in 16 steps for RGBW/White leds and in 64 steps for RGBWW leds</description>
<category>Light</category>
<tags>
<tag>Lighting</tag>
</tags>
<state min="0" max="100" step="1" pattern="%d"></state>
</channel-type>

<channel-type id="ledsaturation" advanced="true">
<item-type>Dimmer</item-type>
<label>Saturation</label>
<description>The saturation can be set in 64 steps for RGBWW leds</description>
<state min="0" max="100" step="1" pattern="%d"></state>
</channel-type>

<channel-type id="ledtemperature">
<item-type>Dimmer</item-type>
<label>Color temperature</label>
<description>White leds and RGBWW allow to change between a cold and a warm color temperature. White support 16, RGBWW
support 64 steps
</description>
<category>DimmableLight</category>
<state min="0" max="100" step="1" pattern="%d"></state>
</channel-type>

<channel-type id="animation_speed_relative">
<item-type>Dimmer</item-type>
<label>Animation speed</label>
<description>The speed of some animations can be increased or decreased</description>
</channel-type>

<channel-type id="animation_mode_relative">
<item-type>Dimmer</item-type>
<label>Animation mode</label>
<description>Switch to the next/previous animation mode of your RGBW or white LED. Bind this to a Next/Previous
channel type.
</description>
</channel-type>

<channel-type id="animation_mode">
<item-type>Number</item-type>
<label>Animation mode</label>
<description>Animation mode of your LED. RGBWW leds support 9 animation modes.</description>
<category>Light</category>
<state>
<options>
<option value="1">Animation 1</option>
<option value="2">Animation 2</option>
<option value="3">Animation 3</option>
<option value="4">Animation 4</option>
<option value="5">Animation 5</option>
<option value="6">Animation 6</option>
<option value="7">Animation 7</option>
<option value="8">Animation 8</option>
<option value="9">Animation 9</option>
</options>
</state>
</channel-type>

</thing:thing-descriptions>

0 comments on commit 93a195c

Please sign in to comment.