Z-Wave Multi Channel (PE653)


#347

I can't manage to get a rule set up that will run the quickGetWaterTemp function every few minutes to update the current temp. I'm completely new to Rule Machine so I know I'm going several things wrong. Any help would be great!


#348

So I’m having issues with my Hub slowing down and locking up. I emailed support and they said my logs have errors. I went through my logs and this is what I see.

string: ",i" on line 612 (parse)

[dev:257](http://192.168.7.201/logs#dev257)2019-05-08 08:00:04.433 pm [trace](http://192.168.7.201/device/edit/257) - 0: Map: [value:6, name:operationMode, displayed:true]

[dev:257](http://192.168.7.201/logs#dev257)2019-05-08 08:00:04.430 pm [trace](http://192.168.7.201/device/edit/257) - l -> [value:6, name:operationMode, displayed:true]

[dev:257](http://192.168.7.201/logs#dev257)2019-05-08 08:00:04.426 pm[debug](http://192.168.7.201/device/edit/257)+++++ delayBetweenLog parm[1] dly=1000 responseFlg=true

[dev:257](http://192.168.7.201/logs#dev257)2019-05-08 08:00:04.347 pm[error](http://192.168.7.201/device/edit/257)java.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

[dev:257](http://192.168.7.201/logs#dev257)2019-05-08 08:00:04.271 pm[error](http://192.168.7.201/device/edit/257)java.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

[dev:257](http://192.168.7.201/logs#dev257)2019-05-08 08:00:04.193 pm[error](http://192.168.7.201/device/edit/257)java.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

It’s from this device. Anyone got any ideas?


#349

I get the same thing...haven't figured it out yet though.


#350

Does it slow down your hub?


#351

Hey guys,

Not enough in this log to pinpoint the issue yet. If you wouldn't mind, please open the device code, skip down to 2 lines above 612 and find this code:

		// log("DEBUG", "command: ${command}   payloadStr: ${payloadStr}")
	if (command.contains("9100")) {
		payload = payloadStr.replace(" ","").decodeHex()

Remove the comment "//" from line 610. Then run another test and post the log again. Something is being received by the handler that is confusing it. This should make it more clear.

Thanks!


#352
[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:08.378 pm [error](http://192.168.7.201/device/edit/257)java.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:08.370 pm [debug](http://192.168.7.201/device/edit/257)command: 9100 payloadStr: 05 40 02 02 84 00 00 00 10 00 02 01 57 4B 00 17 36 01 00 00 08 03 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 , isMulticast: false

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:06.631 pm [error](http://192.168.7.201/device/edit/257)java.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:06.625 pm [debug](http://192.168.7.201/device/edit/257)command: 9100 payloadStr: 05 40 02 02 87 00 00 00 00 00 00 07 00 00 00 00 00 10 04 00 00 00 00 00 17 36 01 01 00 00 20 00 00 00 00 00 00 00 00 00 , isMulticast: false

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:05.639 pm [debug](http://192.168.7.201/device/edit/257)+++++ delayBetweenLog parm[0] dly=1000 responseFlg=true

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:05.631 pm [debug](http://192.168.7.201/device/edit/257)command: 7006 payloadStr: 16 01 02 , isMulticast: false

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:04.617 pm [trace](http://192.168.7.201/device/edit/257) - 0: Map: [value:0, name:temperatureOffsets, displayed:true]

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:04.615 pm [trace](http://192.168.7.201/device/edit/257) - l -> [value:0, name:temperatureOffsets, displayed:true]

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:04.613 pm [debug](http://192.168.7.201/device/edit/257)+++++ delayBetweenLog parm[1] dly=1000 responseFlg=true

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:04.610 pm [debug](http://192.168.7.201/device/edit/257)command: 7006 payloadStr: 03 04 00 00 00 00 , isMulticast: false

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:03.600 pm [trace](http://192.168.7.201/device/edit/257) - 0: Map: [value:0, name:firemanTimeout, displayed:true]

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:03.597 pm [trace](http://192.168.7.201/device/edit/257) - l -> [value:0, name:firemanTimeout, displayed:true]

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:03.593 pm [debug](http://192.168.7.201/device/edit/257)+++++ delayBetweenLog parm[1] dly=1000 responseFlg=true

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:03.587 pm [debug](http://192.168.7.201/device/edit/257)command: 7006 payloadStr: 02 02 00 01 , isMulticast: false

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:03.339 pm [trace](http://192.168.7.201/device/edit/257) - 0: Map: [value:6, name:operationMode, displayed:true]

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:03.337 pm [trace](http://192.168.7.201/device/edit/257) - l -> [value:6, name:operationMode, displayed:true]

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:03.335 pm [debug](http://192.168.7.201/device/edit/257)+++++ delayBetweenLog parm[1] dly=1000 responseFlg=true

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:03.304 pm [debug](http://192.168.7.201/device/edit/257)command: 7006 payloadStr: 01 02 06 01 , isMulticast: false

[dev:257](http://192.168.7.201/logs#dev257)2019-05-09 05:00:03.274 pm [error](http://192.168.7.201/device/edit/257)java.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

#353

@JDogg016, thanks for the quick reply. Once I saw your log I realized that something must have changed in the latest HE release. I updated my own HE and saw the same behavior. HE did make a change but I can't really blame them due to the funky code I had to write to handle ManufacturerProprietary commands. I'll add another post later to HE to ask about better ways to do this, but for now there is a simple patch that is working on mine. In that same area around 612, replace these lines:

	if (command.contains("9100")) {
		payload = payloadStr.replace(" ","").decodeHex()
		log("DEBUG", 0, ">>>>> unParsed cmd - description:$description ")

with these:

	if (command.contains("9100")) {
		try {
			payloadStr = payloadStr.split(',')[0]	// Remove any unexpected attributs following payload:
			payload = payloadStr.replace(" ","").decodeHex()
		} catch (e) {
			log("ERROR", "..... Exception in Parse() - decodeHex() ${cmd} - description:${description} exception ${e}")
		}
		log("DEBUG", 0, ">>>>> unParsed cmd - description:$description ")

Give this a try and confirm that it also works for you. I'll post a new full update that incorporates this fix for others.


#354

Error no longer appearing!


#355

@mike.maxwell, It appears there was a change in 2.0.9.133 related to the ManufacturersProprietary inbound message (or perhaps all). In the parse() method the description is now including " , isMulticast: false". I only know this because of some funky code I had to write to process this message. This message is a critical part of the device communication. The zwave.parse() method does not recognize this 9100 message even though I include 0x91:1 in the map of command classes. It just returns NULL as the command object. As a consequence I am pre-parsing the 9100 before invoking the zwave.parse() method. This code is ugly and (obviously) somewhat brittle. I have patched it again to fix this issue so not an immediate blocker.

If I could just let this fall into the standard flow and let zwave.parse() return a specific object for this message I could remove the crap code. Could you consider this for a future release? or recommend an alternate (better) method of handling this message?

Thanks Mike!


#356

Yeah, the issue here is that we're not parsing COMMAND_CLASS_MANUFACTURER_PROPRIETARY at all...
I've added an issue to add this class.


#357

Thanks very much.

If you define it with a constructor taking a hex string or byte array (or similar) then I could eliminate creating HubAction objects or sending raw strings too.

Always appreciate your help!


#358

it will return a zwave object just like all the rest of the commands do, when we implement a class we implement all the commands, not sure what the constructor will look like at the moment since I haven't looked at the class yet.


#359

I'm about to buy the Intermatic switch for my pool heater and pump. I'm concerned the device driver may not be stable. Is this device driver officially supported by Hubitat? Are people using this with success or am I better offer going with some simple low/high voltage switches? Appreciate any feedback.


#360

Hi all,
I am brand new Hubitat user and I am having trouble finding my way around.
I now have my PE653 included to Hubitat with Keith's Intermatic PE653 Pool Control System driver 2.06 05/13/2017.
Now I guess I need the multi-channel app. After a ton of have searching I have drawn a blank, maybe I am looking in the wrong places.
What app should I use, what version and most importantly where is it?
Much appreciate any help.
Cheers Bruce


#361

You should be running the most recent driver, 3.1.0a, locates here:

This should solve a lot of your problems straight away.


#362

Thanks for this. I updated to this driver but am not sure if it helped as I am still not seeing anything useful.

Isn't there not supposed to be an app with the driver?

Maybe I should re-pair my Intermec. I was having trouble with zwave range for some devices.

I have journeyed from Vera, where there is an app store, to Smartthings where it is a little more obvious how to get an app and driver to Hubitat where I have spent many hours reading the PE653 thread and still managed to come up with the wrong driver.

On ST at least I could turn a pump speed 1/2 on and off but here I am clueless. Sorry to be such a noob but it would sure be nice if there was a little more documentation in github.

Thanks again for trying to help.
Cheers Bruce


#363

Not as bad as I thought.
I found out I do have communication.
I was able to add a switch tile to the dashboard which turns on/off circuit 1. I have not figured out how to add a tile for the other circuits or water temperature.


#364

Still stuck.
Reset and everything and started from scratch .
I can operate the pump at low speed only from the dashboard. I can get a temperature on the dashboard but have to manually request the temperature in the driver. I am sure a lot of this is because I do not understand how the driver is supposed to work.
I basically all I need is just 2 pump speeds, one light relay and a working temperature tile would be nice to have. The driver has all kinds of setting and stuff that I don't understand.

I am thinking it has to do with the Switch Child Device driver. I installed it but do not know how it gets implemented. I am not seeing any child switches being setup.
There are a ton of settings which I do not understand. Should setup M!, M2, M3 etc.
This is what the config. looks like

  • firemanTimeout : 255
  • operationMode : 1
  • poolSpaMode : disabled
  • swVSP1 : disabled
  • swVSP2 : disabled
  • swVSP3 : disabled
  • swVSP4 : disabled
  • switch : on
  • switch1 : on
  • temperature : 69
  • temperatureOffsets : 0
  • M1Name : null
  • M2Name : null
  • M3Name : null
  • M4Name : null

It shows switch one as being on which is true but that is the only reference to a switch. Shouldn't there be a Switch 2?

I get the feeling this is just me being dumb and the solution is something simple.
Any help much appreciated.
Cheers Bruce

Update May 28
Okay, so last night at around 7. five switches mysteriously showed up under my Intermec device. So I guess the "switch child device" is finally doing something.

They don't seem to do anything however at this point I will say it is progress. There is a parsing error in the log which may be related. dev:2252019-05-28 14:51:55.957 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:21:18.159 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:20:51.347 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:20:51.141 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:20:50.959 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:20:49.498 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:20:49.154 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:20:48.964 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:14:30.684 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:14:28.901 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:14:28.724 errorjava.lang.NumberFormatException: For input string: ",i" on line 612 (parse)

dev:2252019-05-28 14:14:19.816 debugstate key: spaSetpointTemp, value: 0


#365

@keithriley So I noticed my pool pump was no longer switching from low to high at a pre-set time each day. When I manually run the switch (ep10) which is the same as VSP4, nothing happens and I receive the following log:

[dev:257](http://192.168.7.201/logs#dev257)2019-06-05 08:49:23.436 am [error](http://192.168.7.201/device/edit/257)groovy.lang.MissingMethodException: No signature of method: user_driver_Nowhereville_Intermatic_Pool_Control_System_1155.on10() is applicable for argument types: () values: [] Possible solutions: on1(), on(), on2(), on3(), on4(), on5() on line 1593 (childOn)

[dev:257](http://192.168.7.201/logs#dev257)2019-06-05 08:49:23.411 am [debug](http://192.168.7.201/device/edit/257)channelNumber: dni:38-ep10 [-1] 10 [0] 38 [1] 10

[dev:257](http://192.168.7.201/logs#dev257)2019-06-05 08:49:23.404 am [debug](http://192.168.7.201/device/edit/257)childOn called in parent: dni=38-ep10 channelNumber(dni)=10

[dev:257](http://192.168.7.201/logs#dev257)2019-06-05 08:49:23.371 am [debug](http://192.168.7.201/device/edit/257)channelNumber: dni:38-ep10 [-1] 10 [0] 38 [1] 10

#366

Anyone? Anything?