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

[Device Support Request] Schneider Electric Wiser CCT5010-0002W dimmer module #2798

Closed
julienhd opened this issue Dec 3, 2023 · 7 comments
Closed
Labels
stale Issue is inactivate and might get closed soon

Comments

@julienhd
Copy link

julienhd commented Dec 3, 2023

Problem description

By default this dimmer module has a quite low range for dimming light (minimum brightness is quite high and brightness is roughly the same between 50% to 100%).

When paired to the Wiser gateway and the Wiser app, the following 3 configuration settings are proposed:

  • Minimum brightness
  • Maximum brightness
  • Mode: RC LED (default) or RL LED

The 2 first ones allow to adjust the range of brightness to get a better behavior.

When paired with ZHA, these settings are not available, therefore the default values are used that lead to the default behavior described above when used with HA.

Solution description

Implement the same configuration settings as the Wiser system in order to be able to adjust the range of brightness (and set the kind of LED):

  • Minimum brightness
  • Maximum brightness
  • Mode: RC LED (default) or RL LED

Screenshots/Video

Screenshots/Video

[Paste/upload your media here]

Device signature

Device signature

{
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4190, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
"endpoints": {
"3": {
"profile_id": "0x0104",
"device_type": "0x0101",
"input_clusters": [
"0x0000",
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0x0008",
"0x0301",
"0x0b05"
],
"output_clusters": [
"0x0019"
]
},
"242": {
"profile_id": "0xa1e0",
"device_type": "0x0061",
"input_clusters": [],
"output_clusters": [
"0x0021"
]
}
},
"manufacturer": "Schneider Electric",
"model": "PUCK/DIMMER/1",
"class": "zigpy.device.Device"
}

Diagnostic information

Diagnostic information

{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2023.11.3",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.11.6",
"docker": true,
"arch": "aarch64",
"timezone": "Europe/Paris",
"os_name": "Linux",
"os_version": "6.1.21-v8",
"supervisor": "2023.11.6",
"host_os": "Home Assistant OS 11.1",
"docker_version": "24.0.6",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {
"hacs": {
"version": "1.33.0",
"requirements": [
"aiogithubapi>=22.10.1"
]
}
},
"integration_manifest": {
"domain": "zha",
"name": "Zigbee Home Automation",
"after_dependencies": [
"onboarding",
"usb"
],
"codeowners": [
"@dmulcahey",
"@Adminiuga",
"@puddly"
],
"config_flow": true,
"dependencies": [
"file_upload"
],
"documentation": "https://www.home-assistant.io/integrations/zha",
"iot_class": "local_polling",
"loggers": [
"aiosqlite",
"bellows",
"crccheck",
"pure_pcapy3",
"zhaquirks",
"zigpy",
"zigpy_deconz",
"zigpy_xbee",
"zigpy_zigate",
"zigpy_znp",
"universal_silabs_flasher"
],
"requirements": [
"bellows==0.36.8",
"pyserial==3.5",
"pyserial-asyncio==0.6",
"zha-quirks==0.0.106",
"zigpy-deconz==0.21.1",
"zigpy==0.59.0",
"zigpy-xbee==0.19.0",
"zigpy-zigate==0.11.0",
"zigpy-znp==0.11.6",
"universal-silabs-flasher==0.0.14",
"pyserial-asyncio-fast==0.11"
],
"usb": [
{
"vid": "10C4",
"pid": "EA60",
"description": "2652",
"known_devices": [
"slae.sh cc2652rb stick"
]
},
{
"vid": "1A86",
"pid": "55D4",
"description": "sonoffplus*",
"known_devices": [
"sonoff zigbee dongle plus v2"
]
},
{
"vid": "10C4",
"pid": "EA60",
"description": "sonoffplus*",
"known_devices": [
"sonoff zigbee dongle plus"
]
},
{
"vid": "10C4",
"pid": "EA60",
"description": "tubeszb",
"known_devices": [
"TubesZB Coordinator"
]
},
{
"vid": "1A86",
"pid": "7523",
"description": "tubeszb",
"known_devices": [
"TubesZB Coordinator"
]
},
{
"vid": "1A86",
"pid": "7523",
"description": "zigstar",
"known_devices": [
"ZigStar Coordinators"
]
},
{
"vid": "1CF1",
"pid": "0030",
"description": "conbee",
"known_devices": [
"Conbee II"
]
},
{
"vid": "10C4",
"pid": "8A2A",
"description": "zigbee",
"known_devices": [
"Nortek HUSBZB-1"
]
},
{
"vid": "0403",
"pid": "6015",
"description": "zigate",
"known_devices": [
"ZiGate+"
]
},
{
"vid": "10C4",
"pid": "EA60",
"description": "zigate",
"known_devices": [
"ZiGate"
]
},
{
"vid": "10C4",
"pid": "8B34",
"description": "bv 2010/10",
"known_devices": [
"Bitron Video AV2010/10"
]
}
],
"zeroconf": [
{
"type": "_esphomelib._tcp.local.",
"name": "tube*"
},
{
"type": "_zigate-zigbee-gateway._tcp.local.",
"name": "zigate"
},
{
"type": "_zigstar_gw._tcp.local.",
"name": "zigstar"
},
{
"type": "_uzg-01._tcp.local.",
"name": "uzg-01*"
},
{
"type": "_slzb-06._tcp.local.",
"name": "slzb-06*"
}
],
"is_built_in": true
},
"data": {
"ieee": "REDACTED",
"nwk": 25053,
"manufacturer": "Schneider Electric",
"model": "PUCK/DIMMER/1",
"name": "Schneider Electric PUCK/DIMMER/1",
"quirk_applied": false,
"quirk_class": "zigpy.device.Device",
"quirk_id": null,
"manufacturer_code": 4190,
"power_source": "Mains",
"lqi": 200,
"rssi": -50,
"last_seen": "2023-12-03T12:15:04",
"available": true,
"device_type": "Router",
"signature": {
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4190, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
"endpoints": {
"3": {
"profile_id": "0x0104",
"device_type": "0x0101",
"input_clusters": [
"0x0000",
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0x0008",
"0x0301",
"0x0b05"
],
"output_clusters": [
"0x0019"
]
},
"242": {
"profile_id": "0xa1e0",
"device_type": "0x0061",
"input_clusters": [],
"output_clusters": [
"0x0021"
]
}
},
"manufacturer": "Schneider Electric",
"model": "PUCK/DIMMER/1"
},
"active_coordinator": false,
"entities": [
{
"entity_id": "button.schneider_electric_puck_dimmer_1_identifier",
"name": "Schneider Electric PUCK/DIMMER/1"
},
{
"entity_id": "light.schneider_electric_puck_dimmer_1_lumiere",
"name": "Schneider Electric PUCK/DIMMER/1"
},
{
"entity_id": "number.schneider_electric_puck_dimmer_1_on_level",
"name": "Schneider Electric PUCK/DIMMER/1"
},
{
"entity_id": "number.schneider_electric_puck_dimmer_1_start_up_current_level",
"name": "Schneider Electric PUCK/DIMMER/1"
}
],
"neighbors": [],
"routes": [],
"endpoint_names": [
{
"name": "DIMMABLE_LIGHT"
},
{
"name": "PROXY_BASIC"
}
],
"user_given_name": null,
"device_reg_id": "d8e31daa10469779d187eb4c28b22706",
"area_id": null,
"cluster_details": {
"3": {
"device_type": {
"name": "DIMMABLE_LIGHT",
"id": 257
},
"profile_id": 260,
"in_clusters": {
"0x0000": {
"endpoint_attribute": "basic",
"attributes": {
"0x0004": {
"attribute_name": "manufacturer",
"value": "Schneider Electric"
},
"0x0005": {
"attribute_name": "model",
"value": "PUCK/DIMMER/1"
}
},
"unsupported_attributes": {}
},
"0x0003": {
"endpoint_attribute": "identify",
"attributes": {},
"unsupported_attributes": {}
},
"0x0004": {
"endpoint_attribute": "groups",
"attributes": {},
"unsupported_attributes": {}
},
"0x0005": {
"endpoint_attribute": "scenes",
"attributes": {},
"unsupported_attributes": {}
},
"0x0006": {
"endpoint_attribute": "on_off",
"attributes": {
"0x0000": {
"attribute_name": "on_off",
"value": 0
}
},
"unsupported_attributes": {
"0x4003": {
"attribute_name": "start_up_on_off"
}
}
},
"0x0008": {
"endpoint_attribute": "level",
"attributes": {
"0x0000": {
"attribute_name": "current_level",
"value": 245
},
"0x0011": {
"attribute_name": "on_level",
"value": 255
},
"0x4000": {
"attribute_name": "start_up_current_level",
"value": 0
}
},
"unsupported_attributes": {
"0x0012": {
"attribute_name": "on_transition_time"
},
"0x0010": {
"attribute_name": "on_off_transition_time"
},
"0x0013": {
"attribute_name": "off_transition_time"
},
"0x0014": {
"attribute_name": "default_move_rate"
}
}
},
"0x0301": {
"endpoint_attribute": "light_ballast",
"attributes": {},
"unsupported_attributes": {}
},
"0x0b05": {
"endpoint_attribute": "diagnostic",
"attributes": {},
"unsupported_attributes": {}
}
},
"out_clusters": {
"0x0019": {
"endpoint_attribute": "ota",
"attributes": {},
"unsupported_attributes": {}
}
}
},
"242": {
"device_type": {
"name": "PROXY_BASIC",
"id": 97
},
"profile_id": 41440,
"in_clusters": {},
"out_clusters": {
"0x0021": {
"endpoint_attribute": "green_power",
"attributes": {},
"unsupported_attributes": {}
}
}
}
}
}
}

Logs

Logs
[Paste your logs here]

Custom quirk

Custom quirk
[Paste your custom quirk here]

Additional information

No response

@dflemstr
Copy link
Contributor

dflemstr commented Dec 3, 2023

This configuration can probably be enabled like this:

  • Control mode: using manufacturer 0x105e and attribute 0xe000, valid values are Automatic (0x00), RC Mode (0x01), RL Mode (0x02), or RL LED Mode (0x03) [Source]
  • The min and max brightness attributes seem to use standard Zigbee IDs, ie minLevel is attr 16 and maxLevel is attr 17. This code seems to be working well with this code but I haven't tested it.

I tested changing control mode to RL LED using this HA automation, and it seems to work:

- id: '1673990666150'
  alias: Configure RL LED Mode
  description: Hack based on https://github.com/Signalare/com.se.wiserapp/blob/master/lib/ZB_WiserBallastConfigurationCluster.js
  trigger: []
  condition: []
  action:
  - service: zha_toolkit.attr_write
    data:
      ieee: light.bedroom_ceiling_light
      manf: 4190
      cluster: 769
      attribute: 57344
      attr_type: 48
      attr_val: 3

@dflemstr
Copy link
Contributor

dflemstr commented Dec 3, 2023

I think this is the same device, so should be possible to port over from zigbee2mqtt: https://www.zigbee2mqtt.io/devices/WDE002961.html

In general, getting these devices ported over might be useful: https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/src/devices/schneider_electric.ts

@JoNil
Copy link

JoNil commented Jan 6, 2024

I have a lot of CCT5010-0002, i would be willing to test this if we find a solution

@dflemstr
Copy link
Contributor

dflemstr commented Jan 7, 2024

Just for transparency, I haven't had time to do anything about this. I'm not familiar with contributing a quirk so don't count on me for actually coding something up :)

@julienhd
Copy link
Author

julienhd commented Jan 7, 2024

Based on answers of @dflemstr I installed zha-toolkit via HACS and changed those settings through
developer-tools -> service -> 🧰 ZHA Toolkit: Write Attribute
To summize:

For MinLevel (Minimum Brightness):

  • Target Cluster: 769
  • Attribute Id: 16
  • Attribute Value: 1 to 254

For MaxLevel (Maximum Brightness):

  • Target Cluster: 769
  • Attribute Id: 17
  • Attribute Value: 1 to 254

For Control Mode:

  • Manufacturer Id: 4190
  • Target Cluster: 769
  • Attribute Id: 57344
  • Attribute Value: 0 to 3
  • Automatic (0x00), RC Mode (0x01), RL Mode (0x02), or RL LED Mode (0x03)

It's working well and this is sufficient for me, since it has to be done only one time per device.
If someone is willing to create a quirk to support it, it would be welcome (I will also try but never done that), but in the meantime this solution this is working fine.
Thank you @dflemstr !

@prilly-dev
Copy link

I belive this is the same device as ELKO multiwire dimmer.

Enhet informasjon
NHROTARY/UNIDIM/1
av Schneider Electric

Copy link

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale Issue is inactivate and might get closed soon label Sep 26, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Issue is inactivate and might get closed soon
Projects
None yet
Development

No branches or pull requests

4 participants