[OBSOLETE]Intermatic PE653 Pool Control System

Good morning, all,

Been enjoying this for nearly a year now, and the progress has been incredible. Kudos to @KeithR and all involved!

Minor issue I could use some help with: I’ve noticed that since I upgraded to the newest code, I can’t reliably delete my unused child devices. Specifically, Switches 2 and 5 are unused in my setup, and I used to delete them from my things list, just to keep the clutter down. I remember seeing this in the instructions somewhere, that you could safely delete any unused devices, and indeed I used to. Perhaps that was with the old version only?

Now, when I delete them, my switches still work, but it seems they work slower, and they do not report their status. For example, clicking “Pool Light” (switch 4) when it’s off will turn the actual pool light on, maybe a bit slower than before, but the button will stay on “Turning on” and inside the device, the tile still says off. --And shows as being off inside the controller app. Clicking it again from the things list will change it to “turning on,” but the actual status of the device is never correct.

The only fix I’ve found is to go into the settings of the main pool controller app and save the settings, which re-generates the child devices for switch 2 and 5, and everything works again, but my unwanted child devices are back in my things list…

Any workaround for this? At the end of the day, it’s a minor gripe to have unused devices in my things list, but if there’s a way to get rid of them, I’d love to.

Thanks again,

@philh30 @KeithR Been a long time since I have been on the community. I have been using the older version of KeithR code, but this season my PE953 was dead so I had to start over. I was super excited to read about the enhancements, particularly Pool/Spa mode direct control.
However, when I try to do my instructions from #238 I am getting stuck. I choose to Add Device, Auto-detect, and press Include on the PE653, and it insists on finding Z-Wave Switch Device. :I can change the Type to Intermatic PE653 Pool Controller, but that doesn’t get me the DTH. I am still using the same ST hub as before but the Android app has changed quite a bit. How do I get it to detect the intermatic DTH, or is there something else I am missing?

Which app are you using? It sounds like you’re using the new one, and this DTH is only working with the Classic app at this point.

Ah, that is helpful. I discovered the classic app was showing the DTH after I had reset everything and reconnected the PE953 as primary. The fun part is I spent a couple of days failing to get the classic app to connect to the ST hub (v2). I bought a v3 and couldn’t connect to it, so deleted the classic app and found the new one. On a hunch I swapped back to the v2 and the new app was able to connect, it was just random that I noticed the classic app and found it had miraculously worked as a result. #NeverEasy So this evening I will have another go at it. I am guessing that starting with the Z-Wave Switch Device and changing type is not an issue, is this correct?

Before I packed it in, I tried to connect the PE953 as secondary and had no luck. Given that the PE953 is brand new, is there any chance the procedure has changed? It still claims 3.4 but I saw in @KeithR 's release notes there are variations in 3.4.

You should be able to swap device type after joining. You then just need to go into the device settings in the app since that’s what kicks off the routine to set up all the child devices.

Intermatic hasn’t updated the firmware in years. I doubt anything has changed. Give it another try and make sure you follow the steps exactly. I know the 653/953 are really finicky about range though, so try to get the ST hub, 653 and 953 within a few inches of each other. When I did mine, I temporarily wired the 653 onto an old computer power cord so I could work on it inside.

Yeah, basically my plan. I do it standing next to the 653 in my pump room.

Good news! Up shot is that I needed new app to connect to hub, then switch to old app to ‘add things’ etc. Can’t prove this is what resolved the 953 pairing issue, but when I did it, it worked first time every time. (Android apps)

Bad news, on the DTH on Android, the interface is working, I can control circuits and set temps (couldn’t do that successfully on previous versions of @KeithR’s code) BUT I am missing the #1 function for me, Pool/Spa. I am assuming this is because I haven’t set configuration in the app, and it doesn’t read the configuration from the 653. The problem with that is no matter what I do on the configuration page, it says I haven’t completed required fields. I went and put some value in every field (no idea what most of the M# values are for) but no luck. Unless you or someone has a wonderful solution I guess I will spelunk through the code to see if I can hard code the default to ‘both’ and if that gives me the pool/spa option.

Any thoughts or pointers would be appreciated.

I’m experiencing this issue as well.

Try deleting the entries for Air Temp Offset, Water Temp Offset, and Zwave Delay. Then re-enter the values. ST is funny about fields that are required but have default values set. Essentially, ST ignores the default and throws the error that you didn’t fill all required fields, but the field looks filled to you. Those three look to be the only possible source of that particular problem, but if they don’t do it then try going through all the other settings and delete/change each.

Genius! Even simpler, changed ‘required:’ to False for those three inputs.

Hey Barrett, welcome back.

I wrote the reply below before I saw @philh30 spot on reply, so mine may be redundant, but I had a sense there was an issue with the ENUMs as well. Couldn’t hurt. Good luck!

Glad you are making progress. The issue you describe has been experienced by several others upon initial installation. You may find other posts about it. The scenario is that for the ENUM fields, even though there is a default configured in the DTH, and even though that default is displayed in the UI, it is not really applied unless you specifically select it. Try changing every “pick from a list” type field to another value then to where you want it, then try save. I consider this ST defect, but it has never been fixed, maybe in the new App once that’s fully functional.

Once you get past this your Pool/Spa mode should work, and you should never see this config issue again (unless you remove and reinstall)

Meanwhile I have moved to Hubitat and working through different issues there, but I intend to back port any enhancements here eventually.

Keith

@DesignDawg, first time i’ve been in the ST board for a while. Others (like @philh30) have been doing an awesome job supporting newcomers.

I haven’t experienced the issue you describe but the behavior is curious. If you could delete the devices again, set Debug to Low, and capture and post a log of turning on and another turning off, i’ll Take a look. I’ve been in the code over the past week and will try to diagnose it from your logs.

Keith

Thanks Keith! Your progress is amazing, the app looks great. Setting required = false for those three solved the problem. Pool/Spa icon shows, circuits work, vspeeds work, temps work, many good things.

However, my #1 desired function isn’t working. Pool/Spa mode doesn’t work. It flips to ‘changing’ and then hangs.

My only thought was to attempt to modify the DTH to try to bring back the schedule setting method, but as you document, this does not sync with manual operation. I was super excited for the potential of the new method.

Do you have any other suggestions?

@Barrett_Richardson, since the pool/spa icon is showing, this confirms the config is correct. Great progress.

I would never go back to schedule based pool/spa control. Many issues and side effects. Let’s try to continue forward.

If you would set Debug level to Low and capture a log of just the moment you press the pool/spa button, i’ll Take a look.

Are you seeing the child devices now? If so, try those switches too, in particular switch 6, which is pool/spa.mode. Capture logs of both attempts. We’re very close…

Thank you!

I see the child devices. Here is a capture of pool/spa button:

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:47:19 PM: debug <<<<< rspFlg=true dly:1000.0/1000.0
<<<<< Event: [name:temperature, value:82, unit:F, displayed:false, isStateChange:true, linkText:Pool Controller, descriptionText:Pool Controller temperature is 82°F]
<<<<< Event: [name:airTempFreeze, value:69, unit:F, displayed:false, isStateChange:false, linkText:Pool Controller, descriptionText:Pool Controller air temp freeze is 69°F]
<<<<< Event: [name:airTempSolar, value:0, unit:F, displayed:false, isStateChange:false, linkText:Pool Controller, descriptionText:Pool Controller air temp solar is 0°F]

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:47:19 PM: debug ManufacturerProprietary event, [1]:40 [4]:84 payload: 05 40 02 02 84 00 10 02 12 00 02 01 52 45 00 0D 2E 01 00 00 02 03 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:47:19 PM: debug ManufacturerProprietary event, [1]:40 [4]:84 payload: 05 40 02 02 84 00 10 02 12 00 02 01 52 45 00 0D 2E 01 00 00 02 03 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:47:17 PM: debug ManufacturerProprietary event, [1]:40 [4]:87 payload: 05 40 02 02 87 00 10 02 00 00 00 07 00 00 00 00 00 10 04 00 00 00 00 00 0D 2E 01 01 00 00 20 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:47:15 PM: debug <<<<< rspFlg=false dly:1000.0/1000.0
<<<<< Dev cmd: MultiInstanceCmdEncap(parameter: [255], command: 1, instance: 39, commandClass: 37) --> 6006272501FF, delay 1000.0
<<<<< HubAction: 910005400102870301, delay 1000.0
<<<<< HubAction: 910005400101830101

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:47:15 PM: debug +++++ setSpaModeInternal

1:47:04 PM: info Waiting on events…

1:47:04 PM: info For past logs for individual things go to the My Devices section, find the device and click on the Events link on the device information page.

1:47:04 PM: info This console provides live logging of your SmartThings.

----------------------------------------- and what it looks like using switch 6

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:53:24 PM: debug <<<<< rspFlg=true dly:1000.0/1000.0
<<<<< Event: [name:airTempFreeze, value:69, unit:F, displayed:false, isStateChange:false, linkText:Pool Controller, descriptionText:Pool Controller air temp freeze is 69°F]
<<<<< Event: [name:airTempSolar, value:0, unit:F, displayed:false, isStateChange:false, linkText:Pool Controller, descriptionText:Pool Controller air temp solar is 0°F]
<<<<< Event: [name:clock, value:13:53, displayed:false, descriptionText:PE653 Clock: 13:53, isStateChange:true, linkText:Pool Controller]

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:53:23 PM: debug ManufacturerProprietary event, [1]:40 [4]:84 payload: 05 40 02 02 84 00 10 02 12 00 02 01 52 45 00 0D 35 01 00 00 02 03 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:53:22 PM: debug ManufacturerProprietary event, [1]:40 [4]:87 payload: 05 40 02 02 87 00 10 02 00 00 00 07 00 00 00 00 00 10 04 00 00 00 00 00 0D 35 01 01 00 00 20 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:53:21 PM: debug <<<<< rspFlg=false dly:1000.0/1000.0
<<<<< Dev cmd: MultiInstanceCmdEncap(parameter: [255], command: 1, instance: 39, commandClass: 37) --> 6006272501FF, delay 1000.0
<<<<< HubAction: 910005400102870301, delay 1000.0
<<<<< HubAction: 910005400101830101

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:53:21 PM: debug +++++ setSpaModeInternal

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:53:21 PM: debug +++++ cmdFromChild: childNo:6 val:255

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:53:21 PM: debug channelNumber: dni:07-ep6 [-1] 6 [0] 07 [1] 6

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:53:21 PM: debug childOn called in parent: dni=07-ep6 channelNumber(dni)=6

23dd1a16-fdf7-42da-aca4-5c65d96476d8 1:53:21 PM: debug channelNumber: dni:07-ep6 [-1] 6 [0] 07 [1] 6

OK, in both cases the correct command code is being sent to the pool controller. However, the responses coming back from the pool controller do not indicate it responded to the command. This suggests that the pool controller still does not believe that both a pool and spa are configured. Perhaps something Is going wrong in the configuration step.

Have you also configured your 953 remote? If so, can you change pool spa mode using the remote? If not, use the remote to configure the pool spa mode to both until the remote works then come back and try with SmartThings.

It might also be helpful for me to see a log of the configuration., So clear the log, then make a change to the preference settings for the DTH and save them. And then post that log. It will be much longer than the ones above.

Good luck.

953 is already paired an poo/spa button works

config log:

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:26 AM: debug <<<<< rspFlg=true dly:1000.0/1000.0
<<<<< Event: [name:swVSP2, value:on, isStateChange:true, displayed:true, descriptionText:(swVSP2 set to on), linkText:Pool Controller]
<<<<< Event: [name:temperature, value:84, unit:F, displayed:false, isStateChange:true, linkText:Pool Controller, descriptionText:Pool Controller temperature is 84°F]
<<<<< Event: [name:airTempFreeze, value:50, unit:F, displayed:false, isStateChange:false, linkText:Pool Controller, descriptionText:Pool Controller air temp freeze is 50°F]
<<<<< Event: [name:airTempSolar, value:0, unit:F, displayed:false, isStateChange:false, linkText:Pool Controller, descriptionText:Pool Controller air temp solar is 0°F]
<<<<< Event: [name:clock, value:07:30, displayed:false, descriptionText:PE653 Clock: 07:30, isStateChange:true, linkText:Pool Controller]

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:26 AM: debug ManufacturerProprietary event, [1]:40 [4]:84 payload: 05 40 02 02 84 00 10 02 12 00 02 01 54 32 00 07 1E 01 00 00 02 03 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:25 AM: debug ManufacturerProprietary event, [1]:40 [4]:87 payload: 05 40 02 02 87 00 10 02 00 00 00 07 00 00 00 00 00 10 04 00 00 00 00 00 07 1E 01 01 00 00 20 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:24 AM: debug >>>>> ConfigurationReport(parameterNumber: 22, scaledConfigurationValue: 2, reserved11: 0, size: 1, configurationValue: [2]) - description:zw device: 07, command: 7006, payload: 16 01 02

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:23 AM: debug <<<<< rspFlg=true dly:1000.0/1000.0
<<<<< Event: [value:3, name:temperatureOffsets, displayed:true, isStateChange:true, linkText:Pool Controller, descriptionText:Pool Controller temperature offsets is 3]

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:23 AM: debug >>>>> ConfigurationReport(parameterNumber: 3, scaledConfigurationValue: 50331648, reserved11: 0, size: 4, configurationValue: [3, 0, 0, 0]) - description:zw device: 07, command: 7006, payload: 03 04 03 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:22 AM: debug <<<<< rspFlg=true dly:1000.0/1000.0
<<<<< Event: [value:0, name:firemanTimeout, displayed:true, isStateChange:false, linkText:Pool Controller, descriptionText:Pool Controller fireman timeout is 0]

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:22 AM: debug >>>>> ConfigurationReport(parameterNumber: 2, scaledConfigurationValue: 0, reserved11: 0, size: 2, configurationValue: [0, 0]) - description:zw device: 07, command: 7006, payload: 02 02 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:21 AM: debug <<<<< rspFlg=true dly:1000.0/1000.0
<<<<< Event: [value:5, name:operationMode, displayed:true, isStateChange:false, linkText:Pool Controller, descriptionText:Pool Controller operation mode is 5]

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:21 AM: debug >>>>> ConfigurationReport(parameterNumber: 1, scaledConfigurationValue: 1281, reserved11: 0, size: 2, configurationValue: [5, 1]) - description:zw device: 07, command: 7006, payload: 01 02 05 01

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:16 AM: debug <<<<< rspFlg=false dly:1000.0/1000.0
<<<<< Dev cmd: ConfigurationSet(parameterNumber: 1, scaledConfigurationValue: 1281, reserved11: 0, defaultValue: false, size: 2, configurationValue: [5, 1]) --> 700401020501, delay 1000.0
<<<<< Dev cmd: ConfigurationSet(parameterNumber: 3, scaledConfigurationValue: 50331648, reserved11: 0, defaultValue: false, size: 4, configurationValue: [3, 0, 0, 0]) --> 7004030403000000, delay 1000.0
<<<<< Dev cmd: ConfigurationSet(parameterNumber: 2, scaledConfigurationValue: 0, reserved11: 0, defaultValue: false, size: 1, configurationValue: [0]) --> 7004020100, delay 1000.0
<<<<< Dev cmd: ConfigurationSet(parameterNumber: 22, scaledConfigurationValue: 2, reserved11: 0, defaultValue: false, size: 1, configurationValue: [2]) --> 7004160102, delay 1000.0
<<<<< Dev cmd: ConfigurationGet(parameterNumber: 1) --> 700501, delay 1000.0
<<<<< Dev cmd: ConfigurationGet(parameterNumber: 2) --> 700502, delay 1000.0
<<<<< Dev cmd: ConfigurationGet(parameterNumber: 3) --> 700503, delay 1000.0
<<<<< Dev cmd: ConfigurationGet(parameterNumber: 22) --> 700516, delay 1000.0
<<<<< HubAction: 910005400102870301, delay 1000.0
<<<<< HubAction: 910005400101830101

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:16 AM: debug RemoveChildDevices(before) count=0 children:

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:16 AM: debug Existing children: [Pool - Switch 1, Pool - Switch 3, Pool - Switch 5, Pool - Switch 2, Pool - Switch 4, Pool - Spa Mode, Pool - Speed 1, Pool - Speed 2, Pool - Speed 3, Pool - Speed 4]

23dd1a16-fdf7-42da-aca4-5c65d96476d8 7:30:16 AM: debug +++++ updated() DTH:Ver 3.05 state.Versioninfo=Versions: Firmware v3.4 DTH: Ver 3.05 zWaveLibraryType: 6 zWaveProtocol: v2.78 state.ManufacturerInfo=ManufacturerInfo: manufacturerId: 5, manufacturerName: Intermatic, productId: 1619, productTypeId: 20549

Okay, one other crazy detail. When I use the 953 to switch between Pool and Spa mode the app is able to detect which mode I’m in.

That last note is interesting indeed. I have another trace request please. Turn on Spa mode using the remote, then capture a log of attempting to turn back to Pool mode using the ST App. Thank-you for your patience.

BTW, an I ask where you are located? I’ve made house calls in the Orlando area.

No need to thank me, you are helping me! I am near Philadelphia, so a bit of hike, but you could look forward to smoked BBQ and craft beer if you made it. While capturing this round I noticed something else. Setting the debug back to low in the configuration clears my circuit and vSpeed schedules. Is that expected behavior?

Here is the log:

23dd1a16-fdf7-42da-aca4-5c65d96476d8 12:59:07 PM: debug <<<<< rspFlg=true dly:1000.0/1000.0
<<<<< Event: “on” to child: 07-ep5:Pool - Switch 5
<<<<< Event: [name:switch5, value:on, isStateChange:true, displayed:true, descriptionText:(switch5 set to on), linkText:Pool Controller]
<<<<< Event: [name:temperature, value:86, unit:F, displayed:false, isStateChange:true, linkText:Pool Controller, descriptionText:Pool Controller temperature is 86°F]
<<<<< Event: [name:airTempFreeze, value:69, unit:F, displayed:false, isStateChange:true, linkText:Pool Controller, descriptionText:Pool Controller air temp freeze is 69°F]
<<<<< Event: [name:airTempSolar, value:0, unit:F, displayed:false, isStateChange:false, linkText:Pool Controller, descriptionText:Pool Controller air temp solar is 0°F]
<<<<< Event: [name:clock, value:12:58, displayed:false, descriptionText:PE653 Clock: 12:58, isStateChange:true, linkText:Pool Controller]

23dd1a16-fdf7-42da-aca4-5c65d96476d8 12:59:07 PM: debug ManufacturerProprietary event, [1]:40 [4]:84 payload: 05 40 02 02 84 00 10 02 18 00 02 00 56 45 00 0C 3A 01 00 00 01 03 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 12:59:06 PM: debug ManufacturerProprietary event, [1]:40 [4]:87 payload: 05 40 02 02 87 00 10 02 00 00 00 07 00 00 00 00 00 10 04 00 00 00 00 00 0C 3A 01 01 00 00 20 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 12:59:06 PM: debug ManufacturerProprietary event, [1]:40 [4]:87 payload: 05 40 02 02 87 00 10 02 00 00 00 07 00 00 00 00 00 10 04 00 00 00 00 00 0C 3A 01 01 00 00 20 00 00 00 00 00 00 00 00 00

23dd1a16-fdf7-42da-aca4-5c65d96476d8 12:59:03 PM: debug <<<<< rspFlg=false dly:1000.0/1000.0
<<<<< Dev cmd: MultiInstanceCmdEncap(parameter: [0], command: 1, instance: 39, commandClass: 37) --> 600627250100, delay 1000.0
<<<<< HubAction: 910005400102870301, delay 1000.0
<<<<< HubAction: 910005400101830101

23dd1a16-fdf7-42da-aca4-5c65d96476d8 12:59:03 PM: debug +++++ setPoolMode

23dd1a16-fdf7-42da-aca4-5c65d96476d8 12:59:03 PM: debug +++++ setPoolMode

12:58:41 PM: info Waiting on events…

12:58:41 PM: info For past logs for individual things go to the My Devices section, find the device and click on the Events link on the device information page.

12:58:41 PM: info This console provides live logging of your SmartThings.