-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[New device support]: Legrand WNACB40 (4-Button Scene Controller) #16170
Comments
I am using a different converter now, still not getting the response I need. I need to be able to see each button in HA when trying to use it to toggle scenes. Right now when I try to configure it in HA automations, I have "when battery level changes" and "default action". This is my converter..... External converterconst exposes = require('zigbee-herdsman-converters/lib/exposes');
const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').fromZigbee};
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const ota = require('zigbee-herdsman-converters/lib/ota');
const readInitialBatteryState = async (type, data, device) => {
if (['deviceAnnounce'].includes(type)) {
const endpoint = device.getEndpoint(1);
const options = {manufacturerCode: 0x1021, disableDefaultResponse: true};
await endpoint.read('genPowerCfg', ['batteryVoltage'], options);
}
};
const tzLocal = {
auto_mode: {
key: ['auto_mode'],
convertSet: async (entity, key, value, meta) => {
const mode = {'off': 0x00, 'auto': 0x02, 'on_override': 0x03};
const payload = {data: Buffer.from([mode[value]])};
await entity.command('manuSpecificLegrandDevices3', 'command0', payload);
return {state: {'auto_mode': value}};
},
},
};
module.exports = [
{
zigbeeModel: ['Wireless Scenes Command'],
model: 'WNACB4, WNRCB4',
vendor: 'Legrand',
description: 'Wireless Smart Scene Controller',
fromZigbee: [fz.legrand_scenes, fz.battery, fz.ignore_poll_ctrl, fz.legrand_master_switch_center],
toZigbee: [],
exposes: [e.battery(), e.action(['Scene_1', 'Scene_2', 'Scene_3', 'Scene_4', 'center'])],
meta: {battery: {voltageToPercentage: '3V_2500'}},
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genPowerCfg']);
},
},
];
' ' ' |
You could have a look to Koenkk/zigbee-herdsman-converters#5359 |
thank you. Is your device a Green Power device? Nevermind, I looked it up and see that it is. Interestingly, it shows as already being supported by Z2M. I will follow along with your Issue request. |
It's not a "green power" device : it has a battery |
https://zigbee.blakadder.com/Legrand_ZLGP15.html The “GP” is for green power. Is this the device you have ? |
I've added fz.command_recall. Now when I try to create an automation, I have "recall_1 action" as a trigger. This is the only trigger, and it works for all 4 buttons. Now trying to get it where I have a trigger option for each of the four buttons so they can control different devices/scenese. External converterconst exposes = require('zigbee-herdsman-converters/lib/exposes');
const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').fromZigbee};
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const ota = require('zigbee-herdsman-converters/lib/ota');
const readInitialBatteryState = async (type, data, device) => {
if (['deviceAnnounce'].includes(type)) {
}
};
const tzLocal = {
auto_mode: {
key: ['auto_mode'],
convertSet: async (entity, key, value, meta) => {
const mode = {'off': 0x00, 'auto': 0x02, 'on_override': 0x03};
const payload = {data: Buffer.from([mode[value]])};
await entity.command('manuSpecificLegrandDevices3', 'command0', payload);
return {state: {'auto_mode': value}};
},
},
};
module.exports = [
{
zigbeeModel: ['Wireless Scenes Command'],
model: 'WNACB4, WNRCB4',
vendor: 'Legrand',
description: 'Wireless Smart Scene Controller',
fromZigbee: [fz.legrand_scenes, fz.battery, fz.ignore_poll_ctrl, fz.legrand_master_switch_center, fz.command_recall],
toZigbee: [],
exposes: [e.battery(), e.action(['Scene_1', 'Scene_2', 'Scene_3', 'Scene_4', 'center'])],
meta: {battery: {voltageToPercentage: '3V_2500'}},
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genPowerCfg']);
},
},
]; |
Tried another converter setup in attempt to have access to all four buttons.... Still only have the one global "recall_1 action" External converterconst exposes = require('zigbee-herdsman-converters/lib/exposes');
const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').fromZigbee};
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const ota = require('zigbee-herdsman-converters/lib/ota');
const readInitialBatteryState = async (type, data, device) => {
if (['deviceAnnounce'].includes(type)) {
}
};
const tzLocal = {
auto_mode: {
key: ['auto_mode'],
convertSet: async (entity, key, value, meta) => {
const mode = {'off': 0x00, 'auto': 0x02, 'on_override': 0x03};
const payload = {data: Buffer.from([mode[value]])};
await entity.command('manuSpecificLegrandDevices3', 'command0', payload);
return {state: {'auto_mode': value}};
},
},
};
module.exports = [
{
zigbeeModel: ['Wireless Scenes Command'],
model: 'WNACB4, WNRCB4',
vendor: 'Legrand',
description: 'Wireless Smart Scene Controller',
fromZigbee: [fz.legrand_scenes, fz.battery, fz.ignore_poll_ctrl, fz.legrand_master_switch_center, fz.command_Scene1_recall, fz.command_Scene2_recall, fz.command_Scene3_recall, fz.command_Scene4_recall],
toZigbee: [],
exposes: [e.battery(), e.action(['Scene1', 'Scene2', 'Scene3', 'Scene4', 'center'])],
meta: {battery: {voltageToPercentage: '3V_2500'}},
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genPowerCfg']);
},
},
]; |
Last attempt for today; still didn't work. External converterconst exposes = require('zigbee-herdsman-converters/lib/exposes');
const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').fromZigbee};
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const ota = require('zigbee-herdsman-converters/lib/ota');
const readInitialBatteryState = async (type, data, device) => {
if (['deviceAnnounce'].includes(type)) {
}
};
const tzLocal = {
auto_mode: {
key: ['auto_mode'],
convertSet: async (entity, key, value, meta) => {
const mode = {'off': 0x00, 'auto': 0x02, 'on_override': 0x03};
const payload = {data: Buffer.from([mode[value]])};
await entity.command('manuSpecificLegrandDevices3', 'command0', payload);
return {state: {'auto_mode': value}};
},
},
};
module.exports = [
{
zigbeeModel: ['Wireless Scenes Command'],
model: 'WNACB4, WNRCB4',
vendor: 'Legrand',
description: 'Wireless Smart Scene Controller',
fromZigbee: [fz.legrand_scenes, fz.battery, fz.ignore_poll_ctrl, fz.legrand_master_switch_center, fz.command_recall],
toZigbee: [],
exposes: [e.battery(), e.action(['press_1', 'press_2', 'press_3', 'press_4', 'center'])],
meta: {battery: {voltageToPercentage: '3V_2500'}},
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genPowerCfg']);
},
},
]; |
@Koenkk any advice with scene control converters? |
@brantmacga could you provide me the debug log when pressing the buttons? See https://www.zigbee2mqtt.io/guide/usage/debug.html on how to enable debug logging. |
This is a single press of each of the 4 buttons. Thank you for taking a look at this with me! 2023-02-04 10:48:41Received Zigbee message from '0x646266fffe62c80a', type 'commandRecall', cluster 'genScenes', data '{"groupid":65515,"sceneid":1}' from endpoint 1 with groupID 65515 2023-02-04 10:48:46Received Zigbee message from '0x646266fffe62c80a', type 'commandRecall', cluster 'genScenes', data '{"groupid":65517,"sceneid":1}' from endpoint 1 with groupID 65517 2023-02-04 10:48:48Received Zigbee message from '0x646266fffe62c80a', type 'commandRecall', cluster 'genScenes', data '{"groupid":65516,"sceneid":1}' from endpoint 1 with groupID 65516 2023-02-04 10:48:50Received Zigbee message from '0x646266fffe62c80a', type 'commandRecall', cluster 'genScenes', data '{"groupid":65514,"sceneid":1}' from endpoint 1 with groupID 65514 |
2023-02-04 11:01:22Received Zigbee message from '0x646266fffe62c80a', type 'commandCheckIn', cluster 'genPollCtrl', data '{}' from endpoint 1 with groupID 0 2023-02-04 11:01:22Received Zigbee message from '0x646266fffe62c80a', type 'commandRecall', cluster 'genScenes', data '{"groupid":65517,"sceneid":1}' from endpoint 1 with groupID 65517 2023-02-04 11:01:24Received Zigbee message from '0x646266fffe62c80a', type 'readResponse', cluster 'genBasic', data '{"appVersion":0}' from endpoint 1 with groupID 0 2023-02-04 11:01:24Received Zigbee message from '0x646266fffe62c80a', type 'readResponse', cluster 'genBasic', data '{"hwVersion":0}' from endpoint 1 with groupID 0 2023-02-04 11:01:25Received Zigbee message from '0x646266fffe62c80a', type 'readResponse', cluster 'genPollCtrl', data '{"checkinInterval":345600}' from endpoint 1 with groupID 0 |
The |
I also have a Legrand button with 4 scenes, like you, I get action_1 for the four buttons. |
I haven't yet figured out how to implement what Koenkk is telling me. I understand there are different group ID's, I'm just not sure yet how that should be written in a way that HA understands for using in automations. |
I get it working
|
breakthrough ? |
no. I haven't yet had time to work on it again. |
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days |
hi, i have the same legrand switch 067775 and only one button si working as have the guys before me. Also i have legrand 067774 and also only one action is received. So basically the same problem :) Is there any way to distinguish between pushed buttons? Thanks in advance for any reply EDIT: EDIT2: |
Hi, thanks for reply - will use. however for 067775 only one button is sending signals, others just dont show up as any action in Z2M or any logs. I guess some kind of external converter shoud do the trick? The one button that works sends action_group":65516 so that i can work with. But if no message shows up in Z2M what can i do? |
Try this one
|
wow, It actually works and I can do triggers and distinguish what button was pressed. Thanks very much for your help |
Sorry for dummy question...) |
Thank you! I did it!!! :) |
It’s normal : z2m doesn’t allow firmware upgrade for this device |
Simply IMHO. Can it happen that I use Bticino and update is for Legrand? |
No |
I did it! |
You did it with a powered device. |
Yes. With bticino k4411c |
Link
https://www.legrand.us/wiring-devices/adorne-collection/switches/adorne-wireless-smart-scene-switch-with-netatmo-white/p/wnacb40w1
Database entry
0x646266fffe62c80a
Comments
I have the device paired, but I'm unable to figure out how to get access to the 4 scene buttons. I'd like to be able to use them to trigger events/scenes in Home Assistant. I also don't see an option to bind any of the 4 actions.
This is one of the 4-button scene controllers for the north american market. The other version is shown here --> https://www.legrand.us/wiring-devices/radiant-collection/switches/radiant-wireless-smart-scene-controller-with-netatmo-white/p/wnrcb40wh
External converter
Supported color modes
No response
Color temperature range
No response
The text was updated successfully, but these errors were encountered: