Drivers for Martin Jerry Zigbee Zigbee Smart Switch [US-ZB-SS01]

F2 is always the last endpoint.

This is an example when such a problematic device is first paired to HE :

Manufacturer: _TZ3000_zirycpws
Endpoint 01 application: 40
Endpoint 01 endpointId: 01
Endpoint 01 idAsInt: 1
Endpoint 01 inClusters: 0004,0005,0006,0102,0000
Endpoint 01 initialized: true
Endpoint 01 manufacturer: _TZ3000_zirycpws
Endpoint 01 model: TS130F
Endpoint 01 outClusters: 0019,000A
Endpoint 01 profileId: 0104
Endpoint 01 stage: 4
Endpoint F2 application: unknown
Endpoint F2 endpointId: F2
Endpoint F2 idAsInt: 242
Endpoint F2 initialized: true
Endpoint F2 manufacturer: unknown
Endpoint F2 model: unknown
Endpoint F2 outClusters: 0021
Endpoint F2 profileId: A1E0
Endpoint F2 stage: 4

But:
I recently noticed a strange effect. The F2 endpoint was wrongly selected when there was not a matching fingerprint for this new device, both in HE inbuilt and in the custom drivers.

However, after I add the new fingerprint in a custom driver, remove the device and then pair it again to check whether the custom driver is selected automatically - this and all subsequent times HE determines the correct endpointId as the default one! ( 01 for most of the devices, 09 for some Develco devices, etc).

Thank you! : )

2 Likes

interesting, i'll have to see if I have one of these so i can make this happen.

2 Likes

@kkossev
You're a GOAT, and I, for one, appreciate all you do!!

I have just found myself in this exact situation.
Here is the info from my switch:

I want to switch to your "Zemismart" driver, but I'm concerned my "fingerprint" may not yet be supported by the driver. Can I get you to please confirm, and let me know what to do. I'm happy to edit code, if you can just point me. Thank you!

1 Like

Can you select, copy and paste the device Data section as a text?
It seems that I can't enter correctly the manufacturer ID manually from the picture above... : (

Lol... no worries at all.

  • endpointId: 01
  • application: 44
  • isMultiEP: true
  • manufacturer: _TZ3000_syoxtjf0
  • model: TS0011

Added to Muxa's driver dev. branch version 0.7.1 '2024/05/01 9:49 AM'

I need to find the time to put this driver in HPM.

Update:

working on it

1 Like

Thank you very much.
I have five devices with the dreaded EP01, EPF2 situation.. and looking forward to seeing that cleaned up. I'll post back after work today with my results.

You can search in HPM for 'Zemismart ZigBee Wall Switch Multi-Gang', but there is one problem I want to solve before making a new thread - the HPM 'Match Up' is not working for this new driver on my hubs. And the 'MatchUp' is important for avoiding having two drivers with the same name.

Please try a HPM MatchUp first and let me know if it works on your hub.

Okay, I'll try that now.
I do remember having a similar issue with another driver and HPM.
I think I had to do an "unmatch"; and then it worked great.
It's under "Package Manager Settings"... and then "Unmatch".

EDIT: No dice
hubitat

That's weird. I quickly checked the HPM code, and it seems that all that is needed for a match is the driver name and the driver namespace, and these are not changed; they are as in the original Muxa's driver...

I will spend some more time trying to find the reason for the HPM Match Up not working with this driver, as the manual process of fixing duplicated drivers is rather time-consuming and frustrating.

1 Like

Understood.
I don't mind taking a look also, if you point me to the manifest files.
I've only done one... but something might jump out at me.

Yeah, obviously you know what you are doing.. lol.
I looked through all your manifests.. and the only thing I noticed:

In the Zemismart driver I have installed, it has the author as "Muxa".
In the manifest on your repo, here, it's listed as "Muxa, kkossev".

That is the only inconsistency I saw between your other drivers.
I wonder if the "author" fields must match both from the manifest, and in the file itself??

1 Like

My understanding was that the 'author' is just a comment field, but I see in the HPM code that it is used in matching packages sorting coide... Will change it and try again - thank you for the hint!

(it may also be the comma in the name breaking some queries)

Update - didn't work again... : (
The importURL is also different - checking this now.
Update2: changing the importURL had no effect.

@csteele do you have any hints why the 'Match Up' procedure may fail?
The repository file is here.
The manifest is here.

Ugh...

giphy

EDIT:
And just for reference; here is the line in the driver I have currently installed, which we are trying to "match" via HPM.

definition(
    name: 'Zemismart ZigBee Wall Switch Multi-Gang', 
    namespace: 'muxa', 
    author: 'Muxa', 
    importUrl: 'https://raw.githubusercontent.com/kkossev/hubitat-muxa-fork/development/drivers/zemismart-zigbee-multigang-switch.groovy', 
    singleThreaded: true
)

I don't have an off the top of my head answer. I did a quick look and I can reproduce it, which is always a big help.

2 Likes

I believe that you've got a repo that has no namespace pair. Most of your packages have the namespace pair, but this one, as well as a few others, don't.

[id:cee0de03-7068-4e9b-92a3-9d522d28846b, location:https://raw.githubusercontent.com/kkossev/hubitat-muxa-fork/master/drivers/zemismart-zigbee-multigang-switch.groovy, name:Zemismart ZigBee Wall Switch Multi-Gang, required:true]
[id:4780297c-060a-44c1-b071-4e7d08e88936, location:https://raw.githubusercontent.com/kkossev/Hubitat/development/Drivers/Tuya%20Zigbee%20mmWave%20Sensor/Tuya_Zigbee_mmWave_Sensor_lib_included.groovy, name:Tuya Zigbee mmWave Sensor, required:true]
[id:39945711-acb5-420b-a3ce-6ec89772f4cf, location:https://raw.githubusercontent.com/kkossev/Hubitat/main/Drivers/Aqara%20Cube%20T1%20Pro/Aqara_Cube_T1_Pro_lib_included.groovy, name:Aqara Cube T1 Pro, required:true]
[id:cad2820a-82ad-4329-923d-0a4ccb885355, location:https://raw.githubusercontent.com/kkossev/Hubitat/main/Drivers/Zigbee%20Button%20Dimmer/Zigbee_Button_Dimmer_lib_included.groovy, name:Zigbee Button Dimmer, required:true]
[id:7862fa83-0a21-46a9-b256-819e1f98a28b, location:https://raw.githubusercontent.com/kkossev/Hubitat/main/Drivers/Tuya%20Zigbee%20Control%20Screen%20Panel/Tuya_Zigbee_Control_Screen_Panel_lib_included.groovy, name:Tuya Zigbee Control Screen Panel, required:true]

[id:76494db0-9166-4c07-911f-c3bd37d81d7c, location:https://raw.githubusercontent.com/kkossev/Hubitat/main/Drivers/Tuya%20Zigbee%20Fingerbot/Tuya_Zigbee_Fingerbot_lib_included.groovy, name:Tuya Zigbee Fingerbot, namespace:kkossev, required:true]
[id:551e8d69-6ce0-4986-b336-ae9cc0c8afd9, location:https://raw.githubusercontent.com/kkossev/Hubitat/main/Drivers/VINDSTYRKA%20Air%20Quality%20Monitor/VINDSTYRKA_Air_Quality_Monitor_lib_included.groovy, name:VINDSTYRKA Air Quality Monitor, namespace:kkossev, required:true]
[id:71ef9bd1-82ac-4c1d-b986-444b4cfbc8a7, location:https://raw.githubusercontent.com/kkossev/Hubitat/main/Drivers/Tuya%20Zigbee%20Light%20Sensor/Tuya%20Zigbee%20Light%20Sensor.groovy, name:Tuya Zigbee Light Sensor, namespace:kkossev, required:true]
[id:18f500cd-fe3e-45fa-8b9d-2c17089c7d7f, location:https://raw.githubusercontent.com/kkossev/Hubitat/main/Apps/Device%20Health%20Status.groovy, name:Device Health Status, namespace:kkossev, oauth:false, primary:false, required:true]
[id:ea11eefa-641f-440c-9f4e-e4d921e3204f, location:https://raw.githubusercontent.com/kkossev/Hubitat/main/Drivers/Tuya%20Contact%20Sensor/Tuya%20Contact%20Sensor.groovy, name:Tuya Zigbee Contact Sensor++ w/ healthStatus, namespace:kkossev, required:true]
[id:46d6d06d-00cc-4bf5-9931-b2655e66bfa1, location:https://raw.githubusercontent.com/kkossev/Hubitat-SiHAS/main/sihas_dualmotionsensor_dms300zb.groovy, name:SiHAS Dual Motion Sensor, namespace:shinasys, required:true]
[id:ee7b47fe-5344-401b-be3d-2050143564c9, location:https://raw.githubusercontent.com/kkossev/Hubitat-SiHAS/main/sihas_doorlock_dlm300z.groovy, name:SiHAS ZigBee Lock Without Codes, namespace:shinasys, required:true]
[id:d5c3b85e-d198-451c-b4cb-0d5aea6f231b, location:https://raw.githubusercontent.com/kkossev/Hubitat-SiHAS/main/sihas_peoplecounter_csm300zb.groovy, name:SiHAS People Counter, namespace:shinasys, required:true]
[id:fed274c7-4f62-4f0b-91de-73b3fdb5af9b, location:https://raw.githubusercontent.com/kkossev/Hubitat-SiHAS/main/sihas_powermeter_pmm300z.groovy, name:SiHAS Zigbee Power Meter, namespace:shinasys, required:true]
[id:95fd080b-c541-4426-a849-247a3678945b, location:https://raw.githubusercontent.com/kkossev/Hubitat/main/Drivers/Tuya_Zigbee_Smoke_Detector/Tuya_Zigbee_Smoke_Detector.groovy, name:Tuya Zigbee Smoke Detector, namespace:kkossev, required:true]

Those in the top segment do not have namespace, those in the bottom do. The namespace value is case sensitive when comparing. I can see that my own namespace values are inconsistent. I have 3 namespaces when I intended to have only one. I have "csteele", "cSteele" and "csteele-PD"

The Package using "cSteele" would appear in the MatchUp result. I changed that "cSteele" to be "csteele" out in the repo, but then that package never came up during MatchUp. I put the typo back into the repo and it returned to the MatchUp result.

What that says is that the namespace value in the HPM internal Manifest storage must exactly match the namespace in the Repo for Matchup to propose it as a match.

The HPM namespace value for this specific Package is:

[id:2077, title:Zemismart ZigBee Wall Switch Multi-Gang, namespace:muxa]]

As you pointed out, HPM is comparing package name AND namespace BUT not of the Source Code. The compare is only between the installed package's HPM Manifest entry and the repo json.

3 Likes

Thank you @csteele

The common between the 5 manifests that do not have a namespace is that I created these using the HPM Manifest Generator app. All other manifests were created using the command-line utility.

I will add the missing namespaces as soon as I have my second cup of coffee! :slight_smile:

1 Like

It is working now - thank you again!

2 Likes

Ooops, I see the issue. I gathered the information but forgot to output it. I should have time today to fix that oversight.

Edit: v1.0.4 out with the fix

3 Likes