[Release] Generic Zigbee Drivers with Presence and Recovery

NOTE: These are NOT the Official Hubitat Generic Zigbee drivers, these are my take on how to do Generic Zigbee devices, they all include a Presence feature some people have liked. More device types will be added when inspiration strikes and time permits.

Supported Devices

  • Generic Zigbee Device Toolbox (can generate fingerprints, remove child devices, clean the Data, Preferences and State Variables sections of the device.) - Import URL
  • Generic Zigbee Repeater (works with IKEA Trådfri Repeater, Xbees and probably any other Zigbee device without other features than pure repeating) - Import URL
  • Generic Zigbee Outlet (works with the IKEA Trådfri Outlet and Sonoff Basic ZBR3 and probably any other Zigbee Outlet device using standard clusters) - Import URL
  • Generic Zigbee Switch (works with generic Zigbee single- and multi-gang Switch devices using standard clusters) - Import URL
  • Generic Zigbee Dimmer (works with generic Zigbee Dimmers devices using standard clusters, only tested with the Nue Dimmer so far) - Import URL
  • Tuya Zigbee Valve (works with Tuya Zigbee Valves and probably any other Zigbee Valve devices using standard clusters) - Import URL

For my Sonoff Zigbee Sensor Drivers, see this thread.
For my Xiaomi / Aqara Drivers, see this thread.
For my Tasmota WiFi Device drivers, see this thread.

Which driver should I use?

Probably the one that sounds like it best fits your device type. If it works with an official Generic Zigbee driver on HE or at the very least is known to use STANDARD clusters, it would be possible to make one with my Presence and Recovery mode added. Mention it in the thread and when there is time one might be made.

Want to know more?

Want to know more about our releases? Go here.

Installation

Once these drivers leave Beta you can use the Hubitat Package Manager or install manually using the Import URLs above. When changing from another driver to mine, run Initialize.

Pairing

It is perfectly fine to replace the driver of a currently installed device with these drivers, no need to pair them again, in general. There might be some unknown exceptions. Don't forget to click Initialize!
Post your fingerprints and what device model it belongs to and I'll add them to the drivers.

Fingerprints

Use one of my Generic Zigbee drivers and click "Get Info". You can also use my Generic Device Toolbox driver for Zigbee. The Log will display your device fingerprint.

Your mesh

A good and stable mesh is needed for all Zigbee devices. For more information regarding that:

Presence

All drivers have the Presence capability, if the device doesn't report in for over 3 hours it will be set as not present. This makes it easy to see that all devices are online at a glance in a Dashboard, or to monitor any change in Presence using RM or a custom App. It however makes Last Activity an invalid indicator of the device being available since there can be "activity" due to updating the Presence attribute.

Recovery Mode

This mode has been able to get devices that have fallen off to reconnect. There is a warning in the log when it activates for a device. When the device is back another warning message will show that it is disabled again.
This doesn't always work, it depends on how the device fell off. It at least helps partially. If the device doesn't come back on its own when in Recovery Mode, try quick-pressing the reset button (do not fully reset and re pair the device). This might nudge the device back. If pressing the reset button works, it works within 30 seconds. On button devices it may be enough to just press any button.
If none of the above works, re pairing without deleting the device is your last option.

Please report your progress in using this, good or bad results are all needed to know how to improve.

Counters

When a device becomes Present after having been Not Present, the restoredCounter is increased by 1. restoredCounter can be reset manually.
For every 3 hours the device is Not Present the notPresentCounter is increased by 1. When Present again, the notPresentCounter is reset to 0.

Errors/Bugs/Feature requests

Post about it in this thread and maybe it will make it into a Github Issue and eventually taken care of :wink:

Mesh problems

Post about it somewhere else which seems appropriate. Not in this thread.

FAQ

  1. "Your idea is stupid and slow and I don't like it" - Don't use the code
  2. "Your app/driver is crashing my Hub. I submitted a support ticket" - Don't do that, the fine folks at Hubitat Inc. do NOT maintain this code. This software is given free of charge with no support, implied or otherwise. I may still help...
  3. "The latest update broke it, FIX IT" - I do this for fun, please don't make it un-fun.
  4. "I have a great idea for a feature" - Go ahead and post it, I might get around to it...
  5. "You ignored my great idea" - See #2
  6. "I hate you for getting my hopes up, your app/driver is awful/buggy/stupid" - Ok, please write a better one so I can use it
  7. "Please fix your code, it's broken" - I write this because I enjoy coding. I will continue to support and provide updates as long as that remains the case.
  8. "I stole your code and made it soooo much better" - Thanks. Please post it so I can start using it.
  9. "You are awfully sarcastic, I don't like you" - That's ok, I don't need you to
    (thank you @thomas.c.howard for the original FAQ this one was based on)
26 Likes

Reserved #1

Reserved #2

I actually didn't, they are not sold in China. I've added them to the driver, thank you :slight_smile:
There are lots of clusters in here, most are not used for anything important anyway, so if they do what is needed that is fine.

Thank you :slight_smile: Happy they work, I had not even tested these, I just wrote them based on specs.

1 Like

Just wondering if it might be possible to collaborate with @bptworld so that a device operating one of your drivers that hasn't reported in as expected can be put into his reported list of absent devices in his app Device Watchdog. Right now, with your drivers they still report activity and so don't get flagged in the Watchdog app as far as I can see.

1 Like

Hi @markus
I just thought I would try "Zigbee Generic Outlet (with Presence)" on a Tuya light switch and it is turning on and off OK via the device page or via a dashboard tile.
The switch does not do power recording so this is being ignored.
Do you want me to supply any information to you to include it in your driver?
Just wondering.

image

EDIT: I was using the built in Generic Zigbee Switch.
From the logs I can see this if it's any good,

fingerprint profileId:"0104", endpointId:"01", model:"TS0011", manufacturer:" TUYATEC-j5khr9vo"

@Markus, your Generic Zigbee Outlet driver works good (so far) with the Iris 3210-L plug/outlet.

fingerprint profileId:"0104", endpointId:"01", inClusters:"0000,0003,0004,0005,0006,0B04,0B05,FC03", outClusters:"0019", model:"3210-L", manufacturer:"CentraLite"

This will work, but there is the issue with some integrations not recognizing it as a Light, I will make a Switch version. It will not have the "Flash" feature the built-in generic has though, I don't see the point?

I would need inClusters and outClusters as well. Can you see those in the Data section of the device?

Thank you, I will add this fingerprint to the next release, if you have issues with this driver and that device, do tell me. There's quite a few extra clusters there, not sure if there is functionality missing?

I don't have any Zigbee devices sending power data in a standard way, but I can see about adding that functionality with the ability to turn it off as well.

Thanks for all your efforts, this presence concept should be very helpful.
Not sure if this driver does much with my Sylvania Lightify outlets or if you already have this, but here's the info:

72922-A Ledvance

fingerprint profileId:"0104",
endpointId:"01",
inClusters:"0000,0003,0004,0005,0006,0B05,FC01,FC08",
outClusters:"0003,0019",
model:"PLUG",
manufacturer:"LEDVANCE"

72922 Osram

fingerprint profileId:"C05E",
endpointId:"03",
inClusters:"1000,0000,0003,0004,0005,0006,0B04,FC0F",
outClusters:"0019",
model:"Plug 01",
manufacturer:"OSRAM"

After changing to "Device" driver and clicking on the "Get Info" button (didn't have to re-pair).

Doesn't that one already have support for monitoring the state of an attribute, such as Presence in this case?

That is an odd profileId, is this the Outdoor Plug?

No, it's version 1(?) of the Sylvania Lightify wall outlet. Same case, different insides.
This is from a different one of the same flavour.

Outlet S10

fingerprint profileId:"C05E",
endpointId:"03",
inClusters:"1000,0000,0003,0004,0005,0006,0B04,FC0F",
outClusters:"0019",
model:"Plug 01",
manufacturer:"OSRAM"

1 Like

I'm afraid there is no information regarding clusters in the data section.

Ok, I see, must be lots of similar ones then, I'll add these. So what would a good name for these be then? "Sylvania Smart+ Outlet"? I think that is what they are shown as when joined to HE.

Must have failed to retrieve the clusters during pairing, could you try switching to the "Device" driver and click "Get Info"?

Got the info from the logs doing as you suggested.

fingerprint profileId:"0104", endpointId:"01", inClusters:"0000,0003,0006", outClusters:"0019", model:"TS0011", manufacturer:"TUYATEC-j5khr9vo"

1 Like

Mine just joined HE as generic zigbee outlet.
My 72922-A has Sylvania and Smart+ printed on the front while the 72922 non A has just Sylvania on the front and Lightify on the back. So... your choice.

1 Like

"Sylvania Outlet" it is then :wink:

1 Like

Yep, it is the power reporting that is missing. I don't use that function for most of these, I primarily have them for repeaters as they are both Zigbee and Zwave. Power would be a nice addition though.

Ok, I will see what I can sort out with that, if they are using standard clusters for power reporting it should be no issue. Maybe next weekend, this weekend I will probably not have time since I have other projects to complete.

1 Like

BTW and I'm not being picky I just thought I'd let you know that there is a typo.

comment : Works with Generic Outlets (pelase report your fingerprints)

It was already fixed for the next release, but thank you :slight_smile: I don't mind picky, it should all be perfect :wink:

1 Like