[RELEASE] Enhanced Smart Plug Driver

I hope you have the Ring keypad first in that to do list! Hahaha

Actually, devices are seldom at the top of my todo list, despite what my deliverables may appear like in the community...

1 Like

I know, I meant first driver in the big list of drivers that is inside another list probably at the bottom, lol, but I know I'm just been a stalker

1 Like

Just wanted to add that I tested this driver with INNR outlet SP224 and it worked fine to turn on/off the plug reporting it's state better than the Zigbee Generic Driver.
The power measurement does not work, but still better than Generic.
Thank you.

1 Like

@srwhite getting a error on my side...

groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.math.BigInteger#.
Cannot resolve which method to invoke for [null, class java.lang.Integer] due to overlapping prototypes between:
	[class [I, int]
	[class [B, int]
	[class java.lang.String, int] on line 343 (updated)

No issues here.. I am using this on a mix of about 60 plugs spread across three hubs. In fact, it’s returning the endpoint just fine when I hit configure.

[    info](http://192.168.7.253/device/edit/13)Configuring voltage reporting intervals; min: 30, max: 900, delta: 10, endpointId: 1

    [dev:13](http://192.168.7.253/logs#dev13)2019-12-21 01:43:06.993 am [info](http://192.168.7.253/device/edit/13)Configuring power reporting intervals; min: 5, max: 600, delta: 10, endpointId: 1

What plug are you attempting to use it with?

If you just changed the driver from another one it’s a good idea to hit the configure button so it takes the new config.

The 3210-L and I did hit configure a couple times.

I do not think your plug is properly paired.. The error you posted is complaining that device.endpointId is null.. That’s a problem with the device.

If its paired correctly you should see this populated in the DATA section. You will see that endpoint, model, and manufacturer are populated by the platform.

I would do a Zigbee graft.. i.e. reset the smart plug then put the hub back into Zigbee pairing mode but do not delete it. It’ll reconnect and hopefully be reconfigured by the hub.

To reset the plug, in plug it, wait a couple seconds, then plug it back in while holding button. Release as soon as the blue LED lights.

1 Like

Yup that was it.

1 Like

Getting this catchall

DID NOT PARSE MESSAGE for description : catchall: 0000 8021 00 00 0040 00 03EB 00 00 0000 00 00 F800

Ok to ignore ?

1 Like

Yes... Thats a response on cluster 0x8021 with is a bind response from the device. There’s no need for the driver to handle that.

1 Like

Steve,
Just a quick thanks. Based on reading the info for this driver and the Z-Wave driver I purchased 5 plugs on eBay. I had no problem pairing and they are working great. I'm still new at this but having fun learning.

Steve

3 Likes

Hi Steve (@srwhite )

I have a Iris 3210-L plug. It was originally paired to ST on both the Zigbee & ZW side, I then moved it to Hubitat over 1.5 years ago. All I can confirm is the Zigbee side was removed successfully (I cannot recall if I ever did the ZW side; I am not using it currently) and it was paired OK using the generic Zigbee driver & used as such since then.

I recently moved on to your driver. I does work, but also throws an error approx. every 30 minutes:

errorgroovy.lang.MissingMethodException: No signature of method: user_driver_shackrat_Iris_Smart_Plug_2210.refreshDevice() is applicable for argument types: () values: [] (refreshDevice)

Any ideas?

Thanks in advance

You were using the Generic Driver before? Because this error indicates that there is a scheduled task to run the command refreshDevice every 30 minutes. The generic driver and the driver linked above do not have a method named refreshDevice.

You'll see in the driver, the following text.

def updated()
{
	initialize()
    configure()
}

If you change that to the following:

def updated()
{
    unschedule(refreshDevice)
	initialize()
    configure()
}

and save it. Then go back to the edit device page and save the preferences for the device again, this error should be eliminated.

2 Likes

:open_mouth:

What on earth are you using 60 smart plugs for? I struggle to find a use for a handful of them!

Spot on... It's definately an artifact of another previous driver.

I use about half for Christmas lights throughout the house. The rest are used for energy monitoring. It's not hard for me to find uses for most smart home devices. :slight_smile:

I only had to go back and check if the method had to be wrapped in double quotes in unschedule but it doesn't appear to matter. Which is something I don't think I knew before today...but I can't be 100%. lol

1 Like

Thanks Ryan, this solved my issue.

1 Like

Steve,

I'm having some odd results getting states from a Iris 3210-L using your driver. For example, I have the minimum interval between power reports currently set to 5 and after having the device switched on (using the device page) for 5 minutes the states show:

2110

This started happening a few days ago and I only noticed it because the plug wasn't showing power usage in Grafana anymore. The device (connected to a small heater under my desk) responds to on/off commands pretty quickly and at times does show the states.

I've sent multiple configure commands (over a long time period), did a 'reset to factory default' from the device page, cycled the power (unplugged) on the device. The only thing I haven't done is a factory reset on the Iris 3210-L itself. Any suggestions before I factory reset?

Thanks,
Bill

I would hard reset the plug then reconnect it. Don’t remove it from the hub. Just unplug, then plug it back in while holding the button down. Release once the blue LED comes on. Go back into the hub and initiate Zigbee pairing. It’ll reconnect in place. When it’s reconnected, do a configure and see if that fixes it.

Let’s hope the plug isn’t failing on you!