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

[New device support]: ZT-LP-ZEU2S-WH-MS MOES #19405

Open
MiAutomations opened this issue Oct 24, 2023 · 24 comments
Open

[New device support]: ZT-LP-ZEU2S-WH-MS MOES #19405

MiAutomations opened this issue Oct 24, 2023 · 24 comments
Labels
new device support New device support request

Comments

@MiAutomations
Copy link

Link

https://moeshouse.com/products/zigbee-wireless-self-powered-scene-switch

Database entry

{"id":76,"type":"GreenPower","ieeeAddr":"0x00000000a3970ea3","nwkAddr":3747,"manufId":null,"modelId":"GreenPower_2","epList":[242],"endpoints":{"242":{"epId":242,"inClusterList":[],"outClusterList":[],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"interviewCompleted":true,"meta":{},"lastSeen":1698149193664,"defaultSendRequestWhen":"immediate"}

Comments

Hello

I try to add this device but the device appears in the list as not supported yet.

Can you please add this device to a supported list devices in a new future release ?

Thank you for your support and best regards

External converter

No response

Supported color modes

No response

Color temperature range

No response

@MiAutomations MiAutomations added the new device support New device support request label Oct 24, 2023
@Chartreusito
Copy link
Sponsor

If you own it, you can help supporting new devices : https://www.zigbee2mqtt.io/advanced/support-new-devices/02_support_new_tuya_devices.html

@MiAutomations
Copy link
Author

If you own it, you can help supporting new devices : https://www.zigbee2mqtt.io/advanced/support-new-devices/02_support_new_tuya_devices.html

I'm not familiarized with the external converter But if you can help me I can try.

@Chartreusito
Copy link
Sponsor

I assumed you device was tuya, but first have a look at the general documentation : https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html#_2-adding-your-device
The key here is to trigger your device to identify which cluster it uses and then try to find a working configuration among the other herdmans converter

@mathieuruellan
Copy link

Hello, I've tried to add default converters, but there is no converter for "commandNotification".
I'm beginning in home automation and zigbee, if you have a js converter link, i could try.

here my logs

Zigbee2MQTT:debug 2024-01-06 16:39:39: Received Zigbee message from 'switch1', type 'commandNotification', cluster 'greenPower', data '{"commandID":79,"frameCounter":163,"srcID":793774560}' from endpoint 242 with groupID null
Zigbee2MQTT:debug 2024-01-06 16:39:39: No converter available for 'GreenPower_2' with cluster 'greenPower' and type 'commandNotification' and data '{"commandID":79,"frameCounter":163,"srcID":793774560}'
Zigbee2MQTT:info 2024-01-06 16:39:39: MQTT publish: topic 'zigbee2mqtt/switch1', payload '{"device":{"friendlyName":"switch1","ieeeAddr":"0x000000002f5009e0","manufacturerID":null,"model":"GreenPower_2","networkAddress":2528,"type":"GreenPower"},"last_seen":"2024-01-06T16:39:39.164Z","linkquality":209}

@igor-semenov
Copy link

фев 02 17:32:19 raspberrypi bash[19752]: Zigbee2MQTT:info  2024-02-02 17:32:19: Device '0x00000000ed5e4506' joined
фев 02 17:32:20 raspberrypi bash[19752]: Zigbee2MQTT:info  2024-02-02 17:32:20: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x00000000ed5e4506","ieee_address":"0x00000000ed5e4506"},"type":"device_joined"}'
фев 02 17:32:20 raspberrypi bash[19752]: Zigbee2MQTT:info  2024-02-02 17:32:20: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":{"friendly_name":"0x00000000ed5e4506"},"type":"device_connected"}'
фев 02 17:32:20 raspberrypi bash[19752]: Zigbee2MQTT:info  2024-02-02 17:32:20: Successfully interviewed '0x00000000ed5e4506', device has successfully been paired
фев 02 17:32:20 raspberrypi bash[19752]: Zigbee2MQTT:warn  2024-02-02 17:32:20: Device '0x00000000ed5e4506' with Zigbee model 'GreenPower_2' and manufacturer name 'undefined' is NOT supported, please follow https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html
фев 02 17:32:20 raspberrypi bash[19752]: Zigbee2MQTT:info  2024-02-02 17:32:20: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":null,"friendly_name":"0x00000000ed5e4506","ieee_address":"0x00000000ed5e4506","status":"successful","supported":null},"type":"device_interview"}'
фев 02 17:32:20 raspberrypi bash[19752]: Zigbee2MQTT:info  2024-02-02 17:32:20: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_successful","meta":{"friendly_name":"0x00000000ed5e4506","supported":false},"type":"pairing"}'

@igor-semenov
Copy link

I've added new js file for device, but every time I press the same button, it produces different commands:

фев 04 23:18:53 raspberrypi bash[3066]: Zigbee2MQTT:debug 2024-02-04 23:18:53: Received Zigbee message from '0x00000000af79b9e0', type 'commandCommissioningNotification', cluster 'greenPower', data '{"commandFrame":{"raw":{"data":[61,61,216,74,14,215,98],"type":"Buffer"}},"commandID":41,"frameCounter":1324,"gppGddLink":216,"gppNwkAddr":15677,"options":2864,"payloadSize":0,"srcID":2943990240}' from endpoint 242 with groupID 0
фев 04 23:19:01 raspberrypi bash[3066]: Zigbee2MQTT:debug 2024-02-04 23:19:01: Received Zigbee message from '0x00000000af79b9e0', type 'commandCommissioningNotification', cluster 'greenPower', data '{"commandFrame":{"raw":{"data":[223,26,214,4,164,177,194],"type":"Buffer"}},"commandID":3,"frameCounter":1333,"gppGddLink":214,"gppNwkAddr":6879,"options":2864,"payloadSize":0,"srcID":2943990240}' from endpoint 242 with groupID 0
фев 04 23:19:04 raspberrypi bash[3066]: Zigbee2MQTT:debug 2024-02-04 23:19:04: Received Zigbee message from '0x00000000af79b9e0', type 'commandCommissioningNotification', cluster 'greenPower', data '{"commandFrame":{"raw":{"data":[223,26,214,204,153,107,228],"type":"Buffer"}},"commandID":201,"frameCounter":1342,"gppGddLink":214,"gppNwkAddr":6879,"options":2864,"payloadSize":0,"srcID":2943990240}' from endpoint 242 with groupID 0

@ngeissel
Copy link

ngeissel commented Feb 8, 2024

I'm interrested too (since a few hours) into finding a way to handle MOE green power switch.

Same here for commands, but since it is as switch does it really matters ? :

Debug 2024-02-08 11:44:22Received Zigbee message from '0x00000000e91c2afd', type 'commandCommissioningNotification', cluster 'greenPower', data '{"commandFrame":{"raw":{"data":[35,64,155,35,28,185,7],"type":"Buffer"}},"commandID":155,"frameCounter":1387,"gppGddLink":155,"gppNwkAddr":16419,"options":2608,"payloadSize":0,"srcID":3910937341}' from endpoint 242 with groupID 0
Debug 2024-02-08 11:44:23Received Zigbee message from '0x00000000e91c2afd', type 'commandCommissioningNotification', cluster 'greenPower', data '{"commandFrame":{"raw":{"data":[35,64,155,74,187,160,95],"type":"Buffer"}},"commandID":252,"frameCounter":1396,"gppGddLink":155,"gppNwkAddr":16419,"options":2608,"payloadSize":0,"srcID":3910937341}' from endpoint 242 with groupID 0
Debug 2024-02-08 11:44:27Received Zigbee message from '0x00000000e91c2afd', type 'commandCommissioningNotification', cluster 'greenPower', data '{"commandFrame":{"raw":{"data":[35,64,153,15,212,74,125],"type":"Buffer"}},"commandID":70,"frameCounter":1405,"gppGddLink":153,"gppNwkAddr":16419,"options":2608,"payloadSize":0,"srcID":3910937341}' from endpoint 242 with groupID 0
Debug 2024-02-08 11:44:27Received Zigbee message from '0x00000000e91c2afd', type 'commandCommissioningNotification', cluster 'greenPower', data '{"commandFrame":{"raw":{"data":[35,64,149,233,198,137,178],"type":"Buffer"}},"commandID":81,"frameCounter":1414,"gppGddLink":149,"gppNwkAddr":16419,"options":2608,"payloadSize":0,"srcID":3910937341}' from endpoint 242 with groupID 0

@NilkOne
Copy link

NilkOne commented Feb 18, 2024

Hello, any news if it possible to add it on zigbee2mqtt ?

I bought a 2-scenes and a 3-scenes switch but Not supported yet

@igor-semenov
Copy link

The fundamental thing I don't understand is whether I need any specific hardware (new USB stick maybe) to connect ZGP device?
My USB stick allows me to pair device, I can see commands from it when I press buttons, but commandId is random every time I press same button, and I see no way to find out, which button of my 2-gang is pressed....

@psummo
Copy link

psummo commented Apr 9, 2024

The fundamental thing I don't understand is whether I need any specific hardware (new USB stick maybe) to connect ZGP device? My USB stick allows me to pair device, I can see commands from it when I press buttons, but commandId is random every time I press same button, and I see no way to find out, which button of my 2-gang is pressed....

The problem seems that GreenPower devices works with high level encryption. So it's not device limitation, but software limitation.

BTW I'm here with the same request. I test it with tuya hub with smartlife app and works really nice. I'm waiting for zigbee2mqtt support! I tried with custom adapter, but there is no way to debug it or understand how to intercept single click actions

@igor-semenov
Copy link

BTW I'm here with the same request. I test it with tuya hub with smartlife app and works really nice. I'm waiting for zigbee2mqtt support! I tried with custom adapter, but there is no way to debug it or understand how to intercept single click actions

Could you please share link to tuya hub, which you use?

@Namyts
Copy link

Namyts commented Apr 9, 2024

I also bought this device recently without realising the lack of compatibility with ZGP with an existing network. I agree with @psummo that this looks like it's a software issue but it should also have a software fix. The fact that other's have gotten similar devices working in their network by adding ZGP interpreters/translators/re-publishers (eg the IKEA lightbulb, certain Phillips Hue devices) mean that's the "encrypted" signal from this switch isn't vendor locked, instead there is just missing functionality in the network which could be fulfilled by another device (maybe the device running zigbee2mqtt) (?)
What am I misunderstanding?

@psummo
Copy link

psummo commented Apr 9, 2024

BTW I'm here with the same request. I test it with tuya hub with smartlife app and works really nice. I'm waiting for zigbee2mqtt support! I tried with custom adapter, but there is no way to debug it or understand how to intercept single click actions

Could you please share link to tuya hub, which you use?

I bought the hub 1 year ago. I swear that I didn't know that the hub is Moes also ahahah I noticed it now. Btw it's a normal tuya hub that you can buy on aliexpress also. The model is MoesGo ZHUB-W, Zigbee 3.0. If anybody know /want try investigate with this hub in some way in order to understand what happen with this kind of switch, I'm available

@psummo
Copy link

psummo commented Apr 9, 2024

I also bought this device recently without realising the lack of compatibility with ZGP with an existing network. I agree with @psummo that this looks like it's a software issue but it should also have a software fix. The fact that other's have gotten similar devices working in their network by adding ZGP interpreters/translators/re-publishers (eg the IKEA lightbulb, certain Phillips Hue devices) mean that's the "encrypted" signal from this switch isn't vendor locked, instead there is just missing functionality in the network which could be fulfilled by another device (maybe the device running zigbee2mqtt) (?) What am I misunderstanding?

The problem could be also in the zigbee dongle (I've the sonoff) at this point, I'm newbie in this so I'm not able to understand if it's only the software (zigbee2mqtt) or also the firmware

@Namyts
Copy link

Namyts commented Apr 9, 2024

I also use the same dongle with the multiprotocol firmware (& docker container). Same questions too. The fact we can see the logs makes me think it's something that can be interpreted, but it also feels like there might be some missing information to translate this information into exact button presses...

For record, below are my almost identical logs:

Zigbee2MQTT:debug 2024-04-09 10:49:22: Received Zigbee message from 'James Kinetic Switch', type 'commandNotification', cluster 'greenPower', data '{"commandID":126,"frameCounter":222,"srcID":1939043194}' from endpoint 242 with groupID null
Zigbee2MQTT:debug 2024-04-09 10:49:22: Skipping message, still interviewing
Zigbee2MQTT:info  2024-04-09 10:49:22: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch', payload '{"last_seen":"2024-04-09T09:49:22.916Z","linkquality":212}'
Zigbee2MQTT:info  2024-04-09 10:49:22: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/last_seen', payload '2024-04-09T09:49:22.916Z'
Zigbee2MQTT:info  2024-04-09 10:49:22: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/linkquality', payload '212'
Zigbee2MQTT:debug 2024-04-09 10:49:23: Received Zigbee message from 'James Kinetic Switch', type 'commandNotification', cluster 'greenPower', data '{"commandID":95,"frameCounter":231,"srcID":1939043194}' from endpoint 242 with groupID null
Zigbee2MQTT:debug 2024-04-09 10:49:23: Skipping message, still interviewing
Zigbee2MQTT:info  2024-04-09 10:49:23: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch', payload '{"last_seen":"2024-04-09T09:49:23.865Z","linkquality":210}'
Zigbee2MQTT:info  2024-04-09 10:49:23: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/last_seen', payload '2024-04-09T09:49:23.865Z'
Zigbee2MQTT:info  2024-04-09 10:49:23: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/linkquality', payload '210'

@psummo
Copy link

psummo commented Apr 9, 2024

I also use the same dongle with the multiprotocol firmware (& docker container). Same questions too. The fact we can see the logs makes me think it's something that can be interpreted, but it also feels like there might be some missing information to translate this information into exact button presses...

For record, below are my almost identical logs:

Zigbee2MQTT:debug 2024-04-09 10:49:22: Received Zigbee message from 'James Kinetic Switch', type 'commandNotification', cluster 'greenPower', data '{"commandID":126,"frameCounter":222,"srcID":1939043194}' from endpoint 242 with groupID null
Zigbee2MQTT:debug 2024-04-09 10:49:22: Skipping message, still interviewing
Zigbee2MQTT:info  2024-04-09 10:49:22: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch', payload '{"last_seen":"2024-04-09T09:49:22.916Z","linkquality":212}'
Zigbee2MQTT:info  2024-04-09 10:49:22: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/last_seen', payload '2024-04-09T09:49:22.916Z'
Zigbee2MQTT:info  2024-04-09 10:49:22: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/linkquality', payload '212'
Zigbee2MQTT:debug 2024-04-09 10:49:23: Received Zigbee message from 'James Kinetic Switch', type 'commandNotification', cluster 'greenPower', data '{"commandID":95,"frameCounter":231,"srcID":1939043194}' from endpoint 242 with groupID null
Zigbee2MQTT:debug 2024-04-09 10:49:23: Skipping message, still interviewing
Zigbee2MQTT:info  2024-04-09 10:49:23: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch', payload '{"last_seen":"2024-04-09T09:49:23.865Z","linkquality":210}'
Zigbee2MQTT:info  2024-04-09 10:49:23: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/last_seen', payload '2024-04-09T09:49:23.865Z'
Zigbee2MQTT:info  2024-04-09 10:49:23: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/linkquality', payload '210'

do you have a custom adpter right? Could you please send it to me? Because I'm still having errors and not info logs :D

@ngeissel
Copy link

ngeissel commented Apr 9, 2024

I also use the same dongle with the multiprotocol firmware (& docker container). Same questions too. The fact we can see the logs makes me think it's something that can be interpreted, but it also feels like there might be some missing information to translate this information into exact button presses...

For record, below are my almost identical logs:

Zigbee2MQTT:debug 2024-04-09 10:49:22: Received Zigbee message from 'James Kinetic Switch', type 'commandNotification', cluster 'greenPower', data '{"commandID":126,"frameCounter":222,"srcID":1939043194}' from endpoint 242 with groupID null
Zigbee2MQTT:debug 2024-04-09 10:49:22: Skipping message, still interviewing
Zigbee2MQTT:info  2024-04-09 10:49:22: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch', payload '{"last_seen":"2024-04-09T09:49:22.916Z","linkquality":212}'
Zigbee2MQTT:info  2024-04-09 10:49:22: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/last_seen', payload '2024-04-09T09:49:22.916Z'
Zigbee2MQTT:info  2024-04-09 10:49:22: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/linkquality', payload '212'
Zigbee2MQTT:debug 2024-04-09 10:49:23: Received Zigbee message from 'James Kinetic Switch', type 'commandNotification', cluster 'greenPower', data '{"commandID":95,"frameCounter":231,"srcID":1939043194}' from endpoint 242 with groupID null
Zigbee2MQTT:debug 2024-04-09 10:49:23: Skipping message, still interviewing
Zigbee2MQTT:info  2024-04-09 10:49:23: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch', payload '{"last_seen":"2024-04-09T09:49:23.865Z","linkquality":210}'
Zigbee2MQTT:info  2024-04-09 10:49:23: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/last_seen', payload '2024-04-09T09:49:23.865Z'
Zigbee2MQTT:info  2024-04-09 10:49:23: MQTT publish: topic 'zigbee2mqtt/James Kinetic Switch/linkquality', payload '210'

How did you manage to get such clean logs ? This could help us to go forward

@Namyts
Copy link

Namyts commented Apr 9, 2024

@ngeissel I am running zigbee2mqtt in a docker container using docker compose. It looks like this:

services:
  zigbee2mqtt:
    container_name: zigbee2mqtt
    image: koenkk/zigbee2mqtt
    restart: unless-stopped
    volumes:
      - ./data:/app/data
      - /run/udev:/run/udev:ro
      - ./switch.js:/app/data/switch.js
    ports:
      - 8080:8080
    network_mode: host
    environment:
      - TZ=Europe/London

In the /data/configuration.yaml I have a few lines like this:

advanced:
  log_level: debug
  output: attribute_and_json
  last_seen: ISO_8601

I then look at the logs by using:
docker logs -f zigbee2mqtt

@psummo
Copy link

psummo commented Apr 9, 2024

@Namyts without any custom converter?

@ngeissel
Copy link

ngeissel commented Apr 9, 2024

I think we should be interrested in you - ./switch.js:/app/data/switch.js ;) ? (or something locally overriden)

@Namyts
Copy link

Namyts commented Apr 9, 2024

The switch.js file is a placeholder, sadly I don't have the knowledge yet to successfully write the converter. That's one of the reasons I am here :)

@psummo
Copy link

psummo commented Apr 9, 2024

I don't know if there is the way to log everything, I need it as debugging

@psummo
Copy link

psummo commented Apr 9, 2024

I try with this guide.
https://www.zigbee2mqtt.io/advanced/support-new-devices/02_support_new_tuya_devices.html
and
https://www.zigbee2mqtt.io/advanced/support-new-devices/03_find_tuya_data_points.html#instructions

And this is what I produced
converter.js.txt
The file is JS, but since of limitation on github I can only update txt. Btw Seems nothing is change. and I don't know why, sometimes converter is "recognized" and z2m doesn't give me error during pairing, sometimes yes.

I'm not expert and I tried only create the adapter following the guide for tuya.

@Namyts
Copy link

Namyts commented Apr 17, 2024

I've messaged MoesHouse for assistance. Hopefully they can help explain the protocol better.
I haven't been able to improve on your converter @psummo :(

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const {hasAlreadyProcessedMessage} = require('zigbee-herdsman-converters/lib/utils');

const my_converter = {
	cluster: 'greenPower',
	type: ['commandNotification', 'commandCommissioningNotification'],
	convert: (model, msg) => {
		const commandID = msg.data.commandID;
		if (hasAlreadyProcessedMessage(msg, model, msg.data.frameCounter, `${msg.device.ieeeAddr}_${commandID}`)) {return}
		if (commandID === 224) return;

		return {action: 'left'}
	}
}

const definition = {
    fingerprint: [
        {
            modelID: 'GreenPower_2',
            manufacturerName: undefined,
        },
    ],
    model: 'GreenPower_2',
    vendor: 'GreenPower_2',
    description: 'kinetic switch',
	meta: {multiEndpoint: true},
    fromZigbee: [tuya.fz.datapoints, fz.ignore_basic_report, my_converter],
	toZigbee: [],
	configure: tuya.configureMagicPacket,
	exposes: []
};

module.exports = definition;

The best this achieves is making both buttons send the "left" action, which can be picked up by home assistant. We need a better way of fingerprinting this device, and a way of using the commandId, frameCounter (& encryption/security keys?) to map to the real commands issued by the device...

Ive been reading this but haven't gotten anywhere yet. Hopefully Moes can clear it up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new device support New device support request
Projects
None yet
Development

No branches or pull requests

8 participants