Z-Wave Multi Channel (PE653)

Justin, I'm still on ST (v3.05) so I can't test your scenario, but I'm confused about how your system is controlling temps. I don't recall: do you have/use a PE953 remote?

I use ST (and will soon use HE) to set the temp. From that point, it's the PE653 that controls my heater. If the temp goes above the setpoint, then the heater turns off using the basic functionality of the PE653. Where your scenario confuses me is the control point for turning off the heater. Is it the PE653 or HE? Does your PE953 show the setpoint correctly? If that's the case, at least in my system, then how it gets set (either by the PE953 or St or HE) doesn't matter; the PE653 should be controlling the heater.

I don’t use the remote PE653 at all. Everything was through ST and now everything is through HE.

I guess the strange part is that I never had to use switch 5 before switching to HE.

Yeah, command MultiInstanceCmdEncap doesn't exist in the multichannelv3 class in the ZWave spec
Your choices are:
hubitat.zwave.commands.multichannelv3.MultiChannelCmdEncap
or
hubitat.zwave.commands.multiinstancev1.MultiInstanceCmdEncap

and if that command really does work in another environment, it's a bobo...

I just published version 3.0.6 of the DTH that makes the temperature change events visible. There are three separate events (Water, Freeze, Solar). You should be able to subscribe to these in a SmartApp or include them in your RM logic.

Also, hopefully this time I got all the Hubitat conversions right. Let me know. Here it is:

https://raw.githubusercontent.com/KeithR26/SmartThingsPublic/master/devicetypes/keithr26/hubitat-pe653-dth.src/hubitat-pe653-dth.groovy

@mike.maxwell, I can't argue with you there. Funny that ST even allows that. That one was easy. I do have two other ongoing compatibility issues/question though:

  1. Why did HE choose to use different naming for the zwave classes? In other words, why use "hubitat." rather than "physicalgraph."? It seems arbitrary and prevent pure source compatibility with ST. You are SO close...
  2. When you implemented the addChildDevice method, why implement different parameters than ST? In my DTH I have to alternately comment in/out the following lines. Perhaps you can guide me to a compatible common implementation?
    // SmartThings
    addChildDevice("erocm123", "Switch Child Device", dni, null,
    [completedSetup: true, label: name,
    isComponent: false, componentName: "ep${childNo}", componentLabel: "Switch ${childNo}"])
    //Hubitat
    // addChildDevice("erocm123", "Switch Child Device", dni,
    // [isComponent: false, name: "ep${childNo}", label: "Switch ${childNo}"])

Don't get me wrong, I love what you guys are doing, I just don;t get why you stopped at 99.9% compatibility?

Thanks very much!

1 Like

It's a trademark or some such nonsense.

We took what we liked and did something different when we didnt.

Thanks Mike, hope I didn’t sound snarky. I appreciate the honest answers!

Last FW Update broke it for me.

Logs attached.

2572018-09-22 17:57:19.068:errorgroovy.lang.MissingMethodException: No signature of method: hubitat.device.HubAction.startsWith() is applicable for argument types: (java.lang.String) values: [delay] (on5)

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 17:57:19.026:debug<<<<< rspFlg=false dly:1500/1500 <<<<< Dev cmd: MultiInstanceCmdEncap(command:1, commandClass:37, instance:5, parameter:[255]) --> 6006250105FF, delay 1500 <<<<< HubAction: 910005400102870301, delay 1500 <<<<< HubAction: 910005400101830101

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 17:57:14.675:errorgroovy.lang.MissingMethodException: No signature of method: hubitat.device.HubAction.startsWith() is applicable for argument types: (java.lang.String) values: [delay] (setVSPSpeed4)

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 17:57:14.621:debug<<<<< rspFlg=false dly:1500/1500 <<<<< Dev cmd: MultiInstanceCmdEncap(command:1, commandClass:37, instance:19, parameter:[255]) --> 6006250113FF, delay 1500 <<<<< HubAction: 910005400102870301, delay 1500 <<<<< HubAction: 910005400101830101

i believe there's a bug in the delayBetween statement.
In the last update we check the last command that exists in a series of Z-Wave commands, if it starts with "delay ", we remove it, since no command follows, it just ties up the thread.
If the entire command string can be dumped to live log before it's returned it should be easy to verify this.

Here ya go.

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:27:04.445:errorgroovy.lang.MissingMethodException: No signature of method: hubitat.device.HubAction.startsWith() is applicable for argument types: (java.lang.String) values: [delay] (setVSPSpeed0)

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:27:04.343:debug<<<<< rspFlg=false dly:1500/1500 <<<<< Dev cmd: MultiInstanceCmdEncap(command:1, commandClass:37, instance:16, parameter:[0]) --> 600625011000, delay 1500 <<<<< HubAction: 910005400102870301, delay 1500 <<<<< HubAction: 910005400101830101

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:27:04.338:debug+++++ setVSPSpeedInternal() speed=0

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:27:03.147:errorgroovy.lang.MissingMethodException: No signature of method: hubitat.device.HubAction.startsWith() is applicable for argument types: (java.lang.String) values: [delay] (setVSPSpeed4)

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:27:02.916:debug<<<<< rspFlg=false dly:1500/1500 <<<<< Dev cmd: MultiInstanceCmdEncap(command:1, commandClass:37, instance:19, parameter:[255]) --> 6006250113FF, delay 1500 <<<<< HubAction: 910005400102870301, delay 1500 <<<<< HubAction: 910005400101830101

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:27:02.905:debug+++++ setVSPSpeedInternal() speed=4

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:26:58.978:errorgroovy.lang.MissingMethodException: No signature of method: hubitat.device.HubAction.startsWith() is applicable for argument types: (java.lang.String) values: [delay] (on5)

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:26:58.930:debug<<<<< rspFlg=false dly:1500/1500 <<<<< Dev cmd: MultiInstanceCmdEncap(command:1, commandClass:37, instance:5, parameter:[255]) --> 6006250105FF, delay 1500 <<<<< HubAction: 910005400102870301, delay 1500 <<<<< HubAction: 910005400101830101

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:26:57.595:errorgroovy.lang.MissingMethodException: No signature of method: hubitat.device.HubAction.startsWith() is applicable for argument types: (java.lang.String) values: [delay] (on2)

[dev:257](http://192.168.7.201/logs#dev257)2018-09-22 20:26:57.545:debug<<<<< rspFlg=false dly:1500/1500 <<<<< Dev cmd: MultiInstanceCmdEncap(command:1, commandClass:37, instance:2, parameter:[255]) --> 6006250102FF, delay 1500 <<<<< HubAction: 910005400102870301, delay 1500 <<<<< HubAction: 910005400101830101

Am I the only one on FW 1.1.4.126 with the inability to control this device?

Knock knock?

I haven't upgraded from 1.1.3.116 or DTH 3.5 since everything was working.

@keithriley have you heard about the device not working with the latest FW update?

@mike.maxwell, I understand your explanation of the optimization, but I don’t get the connection to the “missingMethod” exception being thrown. Near as I can tell, this occurs after the command has returned and is somewhere in Hubitat while parsing the command list. I would think this code should protect itself from the type mismatch that seems to be occurring.

The only thing the slightest bit unusual I can think of in my command list is that I include HubAction commands directly in order to create the ManufacturerProprietary command class, which is required to control this device.

@JDogg016, one thing that Mike might prefer is to add another debug statement near the end of delayBetween that just dumps the actual response list (in addition to the formatted debug that we have now). If that is not clear let me know and I can give you the actual code and location to insert it.

I did purchase a Hubitat and have it fired up but have not yet moved my PE653 over to it.

1 Like

Please give me detailed instructions and thank you.

Happy Saturday!!

I’m away from home this morning but i’ll Definitely send you the details later today.

:point_up:

Keith, when you do move it, it would be a great help to me if you will document the unpair/pair steps. I've still not recovered from the trauma of pairing the PE653/PE953 to ST for years ago. Thank you!

@JDogg016, Scroll all the way to the bottom of the DTH and insert the [log.debug "delayBetween=$evts"] line where you see it below (9 lines from the bottom):

if (evts) {
        if (debugLevel >= "0") {
            log.debug "<<<<< rspFlg=${responseFlg} dly:$dly/${DELAY}${evtStr}${devStr}"
        }
		log.debug "delayBetween=$evts"
		evts
    } else {
        if (debugLevel > "5") {
            log.debug "<<<<< rspFlg=${responseFlg} dly:$dly/${DELAY} No Commands or Events"
        }
    	null
    }
}
1 Like

Inserted the language and tried to turn on2, on5 and vsp4

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:38.994:errorgroovy.lang.MissingMethodException: No signature of method: hubitat.device.HubAction.startsWith() is applicable for argument types: (java.lang.String) values: [delay] (setVSPSpeed4)

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:38.918:debugdelayBetween=[6006250113FF, delay 1500, 910005400102870301, delay 1500, 910005400101830101]

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:38.903:debug&lt;&lt;&lt;&lt;&lt; rspFlg=false dly:1500/1500 &lt;&lt;&lt;&lt;&lt; Dev cmd: MultiInstanceCmdEncap(command:1, commandClass:37, instance:19, parameter:[255]) --&gt; 6006250113FF, delay 1500 &lt;&lt;&lt;&lt;&lt; HubAction: 910005400102870301, delay 1500 &lt;&lt;&lt;&lt;&lt; HubAction: 910005400101830101

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:38.896:debug+++++ setVSPSpeedInternal() speed=4

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:36.120:errorgroovy.lang.MissingMethodException: No signature of method: hubitat.device.HubAction.startsWith() is applicable for argument types: (java.lang.String) values: [delay] (on2)

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:36.046:debugdelayBetween=[6006250102FF, delay 1500, 910005400102870301, delay 1500, 910005400101830101]

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:36.044:debug&lt;&lt;&lt;&lt;&lt; rspFlg=false dly:1500/1500 &lt;&lt;&lt;&lt;&lt; Dev cmd: MultiInstanceCmdEncap(command:1, commandClass:37, instance:2, parameter:[255]) --&gt; 6006250102FF, delay 1500 &lt;&lt;&lt;&lt;&lt; HubAction: 910005400102870301, delay 1500 &lt;&lt;&lt;&lt;&lt; HubAction: 910005400101830101

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:35.282:errorgroovy.lang.MissingMethodException: No signature of method: hubitat.device.HubAction.startsWith() is applicable for argument types: (java.lang.String) values: [delay] (on5)

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:35.219:debugdelayBetween=[6006250105FF, delay 1500, 910005400102870301, delay 1500, 910005400101830101]

[dev:257](http://192.168.7.201/logs#dev257)2018-10-01 19:32:35.217:debug&lt;&lt;&lt;&lt;&lt; rspFlg=false dly:1500/1500 &lt;&lt;&lt;&lt;&lt; Dev cmd: MultiInstanceCmdEncap(command:1, commandClass:37, instance:5, parameter:[255]) --&gt; 6006250105FF, delay 1500 &lt;&lt;&lt;&lt;&lt; HubAction: 910005400102870301, delay 1500 &lt;&lt;&lt;&lt;&lt; HubAction: 910005400101830101