Interrupteur 4 scènes Legrand problème intégration

Salut a tous,
J’ai un inter 4 scenarios legrand non pris en charge.
Jusqu’à la j’ai réussi a faire un external converter avec z2m.
Sauf que les 4 boutons ne sont pas dissocié ce qui est embêtant finalement.
Chaque bouton a GrouId diffèrents mais avec tous le meme sceneId.
JE tourne en rond si quelqu’un pourrais m’aider svp

Je joins mon code et dans e.action aucune réaction au 4 argument des boutons

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
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}};
        },
    },
};

const definition = {
  
        zigbeeModel: [' Wireless Scenes Command\u0000\u0000\u0000\u0000\u0000\u0000\u0000'],
        model: 'Wireless Scenes Command',
        vendor: 'Legrand',        
        description: 'Dooxie 4 scenario',
        fromZigbee: [fz.command_recall],
        toZigbee: [],
        ota: ota.zigbeeOTA,
        exposes: [e.battery_voltage(), e.battery(), e.action('recall_1', 'recal_2', 'press_3', 'press_4')],
        meta: {battery: {voltageToPercentage: '3V_2500'}},
};

module.exports = definition;

J’obtiens pour chacun des bouton un « groupip » diffèrent mais tous a la même scène.
Je sais pas trop comment bind ca je suis un peu perdu

Debug 2022-12-19 17:44:09Received Zigbee message from '0x0004740000834175', type 'commandRecall', cluster 'genScenes', data '{"groupid":65517,"sceneid":1}' from endpoint 1 with groupID null
Info 2022-12-19 17:44:09MQTT publish: topic 'zigbee2mqtt/0x0004740000834175', payload '{"action":"recall_1","battery":60,"linkquality":143,"update":{"installed_version":"001e","state":"idle"},"update_available":false,"voltage":2800}'
Info 2022-12-19 17:44:09MQTT publish: topic 'zigbee2mqtt/0x0004740000834175', payload '{"action":"","battery":60,"linkquality":143,"update":{"installed_version":"001e","state":"idle"},"update_available":false,"voltage":2800}'
Info 2022-12-19 17:44:09MQTT publish: topic 'zigbee2mqtt/0x0004740000834175/action', payload 'recall_1'
Debug 2022-12-19 17:44:10Received Zigbee message from '0x0004740000834175', type 'commandRecall', cluster 'genScenes', data '{"groupid":65516,"sceneid":1}' from endpoint 1 with groupID null
Info 2022-12-19 17:44:10MQTT publish: topic 'zigbee2mqtt/0x0004740000834175', payload '{"action":"recall_1","battery":60,"linkquality":143,"update":{"installed_version":"001e","state":"idle"},"update_available":false,"voltage":2800}'
Info 2022-12-19 17:44:10MQTT publish: topic 'zigbee2mqtt/0x0004740000834175', payload '{"action":"","battery":60,"linkquality":143,"update":{"installed_version":"001e","state":"idle"},"update_available":false,"voltage":2800}'
Info 2022-12-19 17:44:10MQTT publish: topic 'zigbee2mqtt/0x0004740000834175/action', payload 'recall_1'
Debug 2022-12-19 17:44:11Received Zigbee message from '0x0004740000834175', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":1982979,"imageType":22,"manufacturerCode":4129}' from endpoint 1 with groupID null
Debug 2022-12-19 17:44:11Device '0x0004740000834175' requested OTA
Debug 2022-12-19 17:44:11Received Zigbee message from '0x0004740000834175', type 'commandRecall', cluster 'genScenes', data '{"groupid":65515,"sceneid":1}' from endpoint 1 with groupID null
Info 2022-12-19 17:44:12MQTT publish: topic 'zigbee2mqtt/0x0004740000834175', payload '{"action":"recall_1","battery":60,"linkquality":143,"update":{"installed_version":"001e","state":"idle"},"update_available":false,"voltage":2800}'
Info 2022-12-19 17:44:12MQTT publish: topic 'zigbee2mqtt/0x0004740000834175', payload '{"action":"","battery":60,"linkquality":143,"update":{"installed_version":"001e","state":"idle"},"update_available":false,"voltage":2800}'
Info 2022-12-19 17:44:12MQTT publish: topic 'zigbee2mqtt/0x0004740000834175/action', payload 'recall_1'
Debug 2022-12-19 17:44:13Received Zigbee message from '0x0004740000834175', type 'commandRecall', cluster 'genScenes', data '{"groupid":65514,"sceneid":1}' from endpoint 1 with groupID null
Info 2022-12-19 17:44:13MQTT publish: topic 'zigbee2mqtt/0x0004740000834175', payload '{"action":"recall_1","battery":60,"linkquality":143,"update":{"installed_version":"001e","state":"idle"},"update_available":false,"voltage":2800}'
Info 2022-12-19 17:44:13MQTT publish: topic 'zigbee2mqtt/0x0004740000834175', payload '{"action":"","battery":60,"linkquality":143,"update":{"installed_version":"001e","state":"idle"},"update_available":false,"voltage":2800}'
Info 2022-12-19 17:44:13MQTT publish: topic 'zigbee2mqtt/0x0004740000834175/action', payload 'recall_1'

Personne pour m’aiguiller?

Quelles sont les informations disponibles pour ce device dans le fichier ‹ database.db › ?

Voici ce que j’ai

{"id":16,"type":"EndDevice","ieeeAddr":"0x0004740000834175","nwkAddr":48481,"manufId":4129,"manufName":" Legrand\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","powerSource":"Battery","modelId":" Wireless Scenes Command\u0000\u0000\u0000\u0000\u0000\u0000\u0000","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":6,"inClusterList":[0,3,32,1],"outClusterList":[5,3,0,25],"clusters":{"genBasic":{"attributes":{"appVersion":0}},"genPollCtrl":{"attributes":{"checkinInterval":345600}},"genPowerCfg":{"attributes":{"batteryVoltage":27}}},"binds":[{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0x00212effff061a1e","endpointID":1},{"cluster":3,"type":"endpoint","deviceIeeeAddress":"0x00212effff061a1e","endpointID":1},{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0x00212effff061a1e","endpointID":1}],"configuredReportings":[],"meta":{}}},"appVersion":0,"stackVersion":66,"hwVersion":3,"dateCode":" \u000020200220\u0000\u0000\u0000\u0000\u0000","swBuildId":"001e","zclVersion":2,"interviewCompleted":true,"meta":{"configured":-886185436},"lastSeen":1672464065574,"defaultSendRequestWhen":"active"}

Avant toute chose, jettes un coup d’œil sur cette solution et regardes si ça règle ton problème

Je viens d’essayer mais fonctionne pas.

J’ai reperer ca dans les logs:
Bouton 1: ‹ {« groupid »:65517,« sceneid »:1} ›
Bouton 2: ‹ {« groupid »:65516,« sceneid »:1} ›
Bouton 3: ‹ {« groupid »:65515,« sceneid »:1} ›
Bouton 4: ‹ {« groupid »:65514,« sceneid »:1} ›

Dans automatisation j’obtiens les actions suivantes.
aucune dissocions des boutons ici

je sais pas si avec node red j’arriverais pas a faire quelque chose ? je connais pas du tout node red

J’ai légèrement modifier ton code pour mon switch Céliane et le payload contient action_group qui est positionné sur 4 valeurs différentes suivant le bouton appuyé. Cela sert ensuite à déclencher une automatisation.

Info 2023-01-17 22:03:08MQTT publish: topic 'zigbee2mqtt/0x000474000092b288', payload '{"action":"recall_1","action_group":65516,"battery":null,"last_seen":1673989388598,"linkquality":58,"update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null,"voltage":null}'

Voici le code

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
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}};
        },
    },
};

const definition = {
  
        zigbeeModel: [' Pocket remote\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000'], // The model ID from: Device with modelID 'lumi.sens' is not supported.
        model: '067755',
        vendor: 'Legrand',        
        description: 'Wireless and batteryless 4 scenes control',
        fromZigbee: [fz.command_recall],
        toZigbee: [],
        ota: ota.zigbeeOTA,
        exposes: [e.battery_voltage(), e.battery(), e.action('press_1', 'press_2', 'press_3', 'press_4')],
        meta: {battery: {voltageToPercentage: '3V_2500'}},
};

module.exports = definition;

Moi j’ai 4 groupid diffèrent un peu comme toi,
Comment tu leurs fais déclencher une automatisation j’ai pas réussi a trouvé

Non, ca coince aussi ;-(

J’ai entamé un échange avec le dev sur Enable Legrand ZLGP15 (known as 067755 in France) to work properly by jiquem · Pull Request #5359 · Koenkk/zigbee-herdsman-converters · GitHub

Ah cool, je regarderais ça dès que je peu. Et du coup la probleme avance ?

Oui, cela avance, là je galère a créer une automatisation, mais j’ai les données pour le faire.

je bloque également un peu près a ce niveau j’ai 4 groupID différents et j’arrive pas a les accroché a une automatisation.

salut,

J’ai vu le topic clos j’en déduit que tu as réussi sur les différents bouton?
Tu pourrais me copier coller ton external stp ?
J’ai tellement modifier le mieux que je sais plus que es ce qui est bon

Oui, j’ai réussi.
Voici mon code :

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
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 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 definition = {
        zigbeeModel: [' Pocket remote\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000'+
            '\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000'],
        fingerprint: [{modelID: 'GreenPower_254', ieeeAddr: /^0x00000000005.....$/}],
        model: '067755',
        vendor: 'Legrand',
        description: 'Wireless and batteryless 4 scenes control',
        fromZigbee: [fz.identify, fz.command_on, fz.command_off, fz.command_toggle, fz.battery, fz.command_recall],
        exposes: [e.battery(), e.action(['identify', 'press_1', 'press_2', 'press_3', 'press_4'])],
        toZigbee: [],
        meta: {multiEndpoint: true, battery: {voltageToPercentage: '3V_2500'}, publishDuplicateTransaction: true},
        onEvent: readInitialBatteryState,
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(1);
            await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'genOnOff', 'genLevelCtrl']);
        },
        endpoint: (device) => {
            return {left: 1, right: 2};
        },


};

module.exports = definition;

Je comprend pas cette ligne elle consiste a quoi ?

et idem ici je vois pas a quoi ca sert ?
return {left: 1, right: 2};

Oula, je pense que tu as dû y aller à tatillon pour coder ça…

Cette partie est inutile :

car tu définis au dessus :

configure: async (device, coordinatorEndpoint, logger) => {
    const endpoint = device.getEndpoint(1);
    await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'genOnOff', 'genLevelCtrl']);
},

j’ai tester ceci sans succès

alias: "[SCENARIO] Legrand 2"
description: ""
trigger:
  - platform: mqtt
    topic: zigbee2mqtt/0x0004740000834175
condition:
  - condition: template
    value_template: "{{ trigger.payload_json.action_group == 65516 }}"
action:
  - device_id: 51d73cfc14f732fd977925387992a5b1
    domain: mobile_app
    type: notify
    message: "2"
mode: single