Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DDF for iluminize Multi 5 (4A) #7977

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
173 changes: 173 additions & 0 deletions devices/iluminize/led_controller_multi_5.cct.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
{
"schema": "devcap1.schema.json",
"manufacturername": "iluminize",
"modelid": "HK-ZD-CCT-A",
"product": "LED Controller Multi 5 (CCT mode)",
"sleeper": false,
"status": "Gold",
"subdevices": [
{
"type": "$TYPE_COLOR_TEMPERATURE_LIGHT",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That type should only expose ct; not xy nor hue/sat nor effect (for colorloop).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked this again, but the controller does provide these as shown in the screenshot.

In terms of colorspaces it is absolutely possible to convert CCT into HUE and XY. So maybe it is just the first we see doing it?

For the effects I wonder anyhow why there shouldn't be some on dimmable & CCT controllers. Candle / fire flicker would be possible =)

"restapi": "/lights",
"uuid": [
"$address.ext",
"0x01"
],
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "cap/color/capabilities",
"refresh.interval": 86400
},
{
"name": "cap/color/ct/max",
"refresh.interval": 86400,
"default": "0xfeff"
},
{
"name": "cap/color/ct/min",
"refresh.interval": 86400,
"default": 0
},
{
"name": "cap/color/xy/blue_x",
"static": 0
},
{
"name": "cap/color/xy/blue_y",
"static": 0
},
{
"name": "cap/color/xy/green_x",
"static": 0
},
{
"name": "cap/color/xy/green_y",
"static": 65279
},
{
"name": "cap/color/xy/red_x",
"static": 65279
},
{
"name": "cap/color/xy/red_y",
"static": 0
},
{
"name": "config/bri/couple_ct",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the controller support this? I’d default it to false. Also, I would expect it to support execute_if_off as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you could tell me the cluster + attribute address I will re-check.

BTW: I find it very hard with the DDF editor to match against the controller. My workflow is always drop everything in, then compare endpoints if active. It takes too long and easily causes to miss something. Is there a better way to match the written path vs available clusters/addresses?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’s a bit in the Options attribute, as is execute_if_off. In the Level Control cluster, hence config/bri. The Color Control cluster has the same attribute, but only with the execute_if_off bit. These are documented (briefly) in the item’s JSON file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I double checked, but it is as displayed in the screenshots:

Level Control Options bitmap is: 0x01
Color Control Options bitmap is: 0x01

do I need to adjust something?

"default": true
},
{
"name": "config/bri/on_level",
"refresh.interval": 3600,
"default": 255
},
{
"name": "config/bri/onoff_transitiontime",
"refresh.interval": 3600,
"default": 1
},
{
"name": "config/bri/startup",
"refresh.interval": 3600,
"default": 255
},
{
"name": "config/color/ct/startup",
"refresh.interval": 3600,
"default": 336
},
{
"name": "config/color/execute_if_off",
"refresh.interval": 3600,
"default": true
},
{
"name": "config/color/xy/startup_x",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are only supported on Hue lights.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(… same as below)

"refresh.interval": 3600,
"default": "0xffff"
},
{
"name": "config/color/xy/startup_y",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are only supported on Hue lights.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I already talked to the manufacturer and they told me, they have been adding that on purpose to fulfill some Apple requirements. Else it wont be compatible with Home Kit. Anyhow, if it won't cause problems, I can remove it.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added what? HomeKit doesn’t have poweron settings, and certainly not for colour. I’ve seen some vendors that (illegally) expose the Hue Manufacturer Code 0x100B in the Node Descriptor (also missing from the screenshots), so the Hue bridge exposes them to HomeKit. In that case, they might expose the Hue-specific attributes for poweron xy as well. However, they are not in the screenshots? Do you see them in the GUI? And do they work?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Yep, that's why I talked to them … They said they could provide a “real” firmware without hacks, but the conversation fizzled out - didn't get a reply anymore.

"refresh.interval": 3600,
"default": "0xffff"
},
{
"name": "config/on/startup",
"refresh.interval": 3600,
"default": 255
},
{
"name": "state/alert",
"default": "none"
},
{
"name": "state/bri",
"refresh.interval": 600
},
{
"name": "state/colormode",
"refresh.interval": 600
},
{
"name": "state/ct",
"refresh.interval": 600
},
{
"name": "state/effect",
"refresh.interval": 600,
"default": "none"
},
{
"name": "state/hue",
"refresh.interval": 600
},
{
"name": "state/on",
"refresh.interval": 600
},
{
"name": "state/reachable"
},
{
"name": "state/sat",
"refresh.interval": 600
},
{
"name": "state/x",
"refresh.interval": 600
},
{
"name": "state/y",
"refresh.interval": 600
}
]
}
]
}
82 changes: 82 additions & 0 deletions devices/iluminize/led_controller_multi_5.dim.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
{
"schema": "devcap1.schema.json",
"manufacturername": "iluminize",
"modelid": "5112.80",
"product": "LED Controller Multi 5 (DIM mode)",
"sleeper": false,
"status": "Gold",
"subdevices": [
{
"type": "$TYPE_DIMMABLE_LIGHT",
bluemoehre marked this conversation as resolved.
Show resolved Hide resolved
"restapi": "/lights",
"uuid": [
"$address.ext",
"0x01"
],
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "config/bri/on_level",
"refresh.interval": 3600,
"default": 255
},
{
"name": "config/bri/onoff_transitiontime",
"refresh.interval": 3600,
"default": 1
},
{
"name": "config/bri/startup",
"refresh.interval": 3600,
"default": 255
},
{
"name": "config/on/startup",
"refresh.interval": 3600,
"default": 255
},
{
"name": "state/alert",
"default": "none"
},
{
"name": "state/bri",
"refresh.interval": 600
},
{
"name": "state/on",
"refresh.interval": 600
},
{
"name": "state/reachable"
}
]
}
]
}
Loading