[RELEASE] Nice IBT4ZWAVE community driver

Nice IBT4ZWAVE Z-Wave 700 Driver for Hubitat

Description

This is a custom driver for Nice IBT4ZWAVE module pluggable into Nice gate and garage door controllers. To control the gate the module exposes a multi-level switch command class and can be used with an inbuilt Generic Z-Wave Plus Dimmer driver - which can prove basic functionality but does not allow the user to see the current state of the gate properly nor export the device properly as a gate to HomeKit. On the other hand, this driver exposes the device as a garage door and internally maps its multi-level switch values to one of the following states: open, closed, opening, closing, stopped, unknown.

Notes

  • The driver exposes a "stopped" state which can occur if gate or garage doors hit an obstacle or are stopped by a pilot.
  • This state is not listed as supported by Hubitat Garage Door Control capability and the user can disable this behavior in preferences.
  • The driver has been tested on Nice IBT4ZWAVE from EU distribution module with firmware version 7.0 and securely paired with Hubitat.
  • The driver incorporates also a contact sensor capability only to allow the user to export the device to HomeKit as a garage door. The requirement to have a contact capability might be an error of the HomeKit integration and may be removed in the future.

Changelog

  • V0.1.1 - 17.12.2024: Improved fingerprint and added state update based on supervision report to improve speed and reliability.
  • V0.1.0 - 12.12.2024: Initial working version.

Download

5 Likes

Hello @jtp10181

I hope you don't mind I have severely based my driver on your code. I just bought Hubitat some days ago and I am very fresh with the ecosystem and actually never coded anything in Groovy before, not to mention my understanding of Z-Wave internals was always rather superficial. Please let me know if the attribution to you in the file is sufficient or would you like me to alter it.

4 Likes

Looks good to me, let me know if you need a help figuring anything out with Z-wave. Your fingerprints are missing the prod key and I would actually suggest getting rid of the clusters and replacing it with just one fingerprint in this format:

fingerprint mfr:"1089", prod:"####", deviceId:"4096", inClusters:"0x00,0x00", controllerType: "ZWV" //Nice IBT4ZWAVE

You need to get the prod numbers from the device page and fill in.
Yes inClusters:"0x00,0x00" exactly as shown

The clusters are used to match other devices that do not match the exact mfg/prod/deviceID and I found that by including those (especially the short clusters found when using S2) will cause the driver to match other random items and confuse people. The secure clusters are totally ignored. By having that format above the driver will only be matched up with the exact device you have coded it for. People can still select it manually if they want to use it on other devices for some reason.

2 Likes

Hi @bogus.wojcik ,
Thanks a lot for letting me know. I will test your drive Ron a few days and let you know I it goes.

Hi @bogus.wojcik ,
Just installed your driver and put it to the test.
First impression is great.
I had to change the dashboard template I am using to control this device and I am now using Garage (control).
One more thing, looking at the logs, I do not see the closing state. I only see, open, close and opening. No closing. It is not that important but thought I'll let you know.
Thanks a lot for this driver and I will keep testing and let you know what I find.

One more thing. I am trying yo control the device from Homekit with no success.
I am getting the following error messages:
image

I can see in the driver code that you mentioned there might be an issue with homekit integration. Have you been able to resole this?

    • The driver incorporates contact sensor capability only to allow the user to export the device to HomeKit as a garage door.
  • This might be an error of the HomeKit integration and might be removed in the future.

What device is throwing that error? Is that the device using this driver?

What is "Homekit controller" Is that the name of something on your hub?

Yes

No it is not AFAIK. I do not see in the driver code the option for this error message and I can only guess this is coming from the Homekit integration trying to process the command and failing.
Looking at the driver code again I also see that @bogus.wojcik mentioned that:
"Unfortunately, while providing basic functionality, it does not allow the user to see the current state of the gate properly nor export the device properly as a gate to HomeKit."
If no other option is available i might be able to walk around that with a virtual device in Homekit but did not yet check.

@amithalp Hello! The reason why you see this error is probably because you have previously exported your gate/garage door as a switch to HomeKit, so when you click on/off on your iPhone it sends command to a non-existing interface.

First go to the Apps/HomeKit Integration and click "Restart Integration" and then check how your gate/garage door is listed in the list of exportable devices. It should look like this. If this doesn't help, maybe tick off this particular device, refresh page, and tick again.

If you don't see this exactly as it is on my hub, there is a chance you have an older version of the Hubitat Platform and therefore an older version of the HomeKit integration. They introduced Garage Door in a particular version of HomeKit/Platform but I cannot find the changelog. Also last year there have been a lot of improvements to the HomeKit integration.

This is how it looks like on my iPhone after exporting through HomeKit (localized descriptions):

image
image
image

And this is how the log looks like for the device:

I am running the newest Platform version, so all works fine for me. Please check what version of the platform you have. Also, it should really show the "closing" status, so maybe you could:

  • enable debug logging
  • close and open the gate
  • and paste here a log
  • also the firmware version that is shown on your device screen

Hope this helps!

Hi @bogus.wojcik ,
I am running the latest version on my hubs - 2.3.9.201
When restarting the Homekit app from Hubitat it did not change the type it uses to export to homekit but a manual change did the job. Thanks.
As for the "closing issue".
Please see the full logs below:

Summary

Thanks again,
Amit

@amithalp Glad it helped.

I think there is a good chance you have an older version of the module with some bugs in the firmware. I've been lucky to get an item from a batch produced in June 2023 when I bought it a year ago. What happens in your log is that when your device starts closing it sends report with the current value 99 and target value 99, while it should send 254 and 0 respectively.

If you don't mind one more test, then it would be great if you could show me your log with debug when you open and close the gate but using your REMOTE PILOT and not the application. Also could you paste the firmware version it shows on your device screen?

I think I have an idea how to handle this, but need to think it through.

I have 2 units for my two gates:
The first one shows:


and the second one:

Using the remote instead of Hubitat and Homekit I see closing is showing:

@jtp10181 Thank you for your hints. I have updated the fingerprint. Also I have changed the behavior of the driver in a way that it utilizes supervision report status in reporting to avoid additional requests to the device. Makes it work faster and more reliably.

Simply put, if supervision report status is working I know for sure that the gate is either opening or closing, and by knowing the value which was sent in the supervised command I know which one of this operation is happening. Similarly, if the status is a success, then I know that gate was already open or closed when I sent the command. If you want, have a look at the code: Nice IBT4ZWAVE Z-Wave 700 Driver for Hubitat v0.1.1 · boguslaw-wojcik/hubitat@e557e7f · GitHub

@amithalp Please use version 0.1.1 of the driver and let me know if you see all states correctly when manipulating the gate from the App/Hubitat/Homekit.