[ST Edge] Driver for Intermatic Pool Control System (PE653/PE953)

This is a set of Edge drivers for the Intermatic Pool Control (PE653) and Remote Control (PE953). Thank you to @bigpunk6 and @KeithR for their work on the Groovy DTH, which was immensely helpful in getting this to work in the new architecture.

  • The PE653 Pool Control driver includes both a configuration view and operation view, with an option in the settings menu to toggle between the two.

    • The configuration view allows full setup without the PE953 remote. All configuration options except for the RS485 screen (if this is necessary for anyone, let me know) are available and will show current states. Changes made with the PE953 will also be reflected here after a refresh. Note that temperature offsets are located in settings (both in configuration and operation mode), but the current values will show on the configuration view.
    • The operation view can (to an extent) be customized to match the device configuration by choosing an appropriate profile. Support is included for 1/2/variable speed pumps, both thermostats, all circuits, and all 3 temperature probes. Schedules can be set directly from this view, and all current schedules are displayed.
  • The PE953 Remote Control driver allows the 5 scene buttons on the remote to be recognized as 6 different button events in SmartThings. Turning each scene ON will map to the 1x/2x/3x/4x/5x UP button presses, while turning any scene OFF will map to a DOWN button press. Scene names (as displayed on the remote) can be changed in the settings menu.



  1. Install the driver(s) using the Channel Invitation.
  2. Follow these instructions for pairing the PE653 and PE953 with SmartThings. Do not skip any steps or attempt to complete them out of order.
  3. Configure the PE653 device.
  4. Configure the PE953 device.


1 Like

Some notes on the current state of testing:

  • My pool is currently frozen, so I’ve been testing on an indoor unit. I’ve been able to test almost everything though - circuits, thermostats, temperature sensors, and schedules. I’ve tested all configuration settings, though I can’t call the VSP settings fully tested as I can’t confirm the settings on my test PE953.
  • My test units (and those wired to my pool) are on firmware 3.4 (the latest version published on the Intermatic website). I’ve tried to replicate the DTH logic for other firmware versions, but am unable to test those.
  • I’m unable to test VSP functionality until my pool thaws.
  • I do not own a P5043ME expansion module to test on.

And notes on the current state of the driver:

  • I’ve set up a variety of profiles, but can add others if there isn’t one that matches your configuration.
  • Dashboard view is currently optimized for a VSP + Heater configuration. I need feedback on what should show on the dashboard for other configurations.
  • I need to refine polling. Currently, a full poll of system state happens every 10 minutes. If you make changes with the remote, there may be a lag before they’re reflected in ST.
  • The schedule list currently populates only when you navigate to the individual poll. I intend to add a daily poll to refresh this list, but haven’t gotten to it yet.

I’m surpized there isn’t much discussion here.

Last year I had no time to play with it but my Automation Script was still running against the old driver. But I was running blind. I finally bit the bullet and got your new driver up.

It’s all paired and I can see some status.

I’m confused though. On the old driver you (or last author) exposed a bunch of switches for the 5 buttons on the 653. That worked great for my Automation Script.

With your new driver I’d like to get my script running again or just use SmartThings simple automation routines. I can’t get my script to list your Device or See the PE653 device when I choose a device to control. How do I get it to expose the 5 buttons as switch devices. Sorry my SmartThings is rusty.

In my old Script I had this line that the user could select the PE653 for my multiChannelSwitch variable.

input “multiChannelSwitch”, “capability.switch”, title: “PE653 Switch”, required: true, multiple: false

What is the “capability.*” device? How do I get it to expose it. Or something similar.

I also get confused that it’s in Config Mode. When I switch to Operation Mode nothing seems to work.
Also if I set it to Variable Speed Pump it snaps back to One Speed.

All I want to do is close Switch 3 at Time X and open Switch 3 15 minutes later.

Glad to hear someone else is getting some use out of the driver!

This is one area that ST changed with the shift from the old Groovy DTHs to the new Edge drivers. In a DTH, you could have a device create and manage child devices, and Keith had written that DTH to spawn one for every circuit and pump speed. With Edge, ST does not allow z-wave or zigbee devices to create child devices, and uses a multi-component structure for complex devices like this instead. If those child devices are a requirement for you, the solution would be to create virtual switches (there are a couple of community Edge drivers for virtual switches that many are using) and use routines to keep them in sync with the real device.

This looks like it’s from a Groovy SmartApp. Those will go away whenever ST shuts down their Groovy cloud, so I would look to moving your schedule to something that will survive the transition. I’ve found the schedules on the PE653 to be rock solid, so that’s been my preference. However, you could use the native Routines to do something simple like this:

Since I’ve never found communication between the hub and PE653 to be 100% reliable, I might also set up a second routine as a failsafe to try sending the message a second time a few minutes later if this is for something like an acid feeder that could cause damage if it kept running:

You should only be in Config Mode when you first add the PE653 to ST. After that, you should be in Operation Mode. After you toggle to Operation Mode, have you closed and re-opened the ST app? What do you mean by nothing works? We need to troubleshoot this, since you need to be in Operation Mode to have any control over the circuits or pump speed.

Which firmware version is your PE653 on? Mine is on 3.4, and the same happens to me, but my VSP works fine. When I was working on the driver over the winter, one source I found indicated that the handheld PE953 had a VSP option on the pump configuration setting, so I programmed it in but couldn’t test it at the time. When I opened my pool in the spring, I found that that option didn’t exist in the config menu of my PE953. I’m guessing it’s something that was only implemented in specific firmware versions. One Speed appears to be the correct setting for a VSP, and then the PE653 recognizes that you have a VSP based on the serial connection.

Thanks for the Reply, everything is working Perfect now !!!

I did some digging on the “placeHolder” and now I understand groovy/IDE is going away.

I played with your Device in ST App this morning and either I didn’t wait long enough when switched to “operation mode” or when I change the “Config” to something else (and back) everything started working. Maybe I did App restart as you suggested.

All the Sub Devices showed up and now I can do simple “IF Then Do That” stuff.

I’m on 3.4

Note that your pairing instructions threw me off for a while in that mine has no “Reset Device” it only has “Remove Device”. I finally chose that and it seemed to work. My device never hung.

Advice to others. Add “If Events” on the device itself when it changes state and send yourself an SMS when it happens. That way you know things are working.

I set the Speed on the Pump and then turn on a Circuit for 15 min every day to put Chlorine in the pool.
And I send SMS for each step, by monitoring the hardware, not from the Then that initiated it.

Thanks so much for all this work !!!

1 Like

Oh the PE953 Intermatic Remote thing keeps going off-line.
Not sure if that only works when it’s awake or maybe in range.
I’m not sure I really need it for anything.

So is PE953 paired to the PE653 or to SmartThings or Both?
If I remove PE953 from SmartThings will it still talk to PE653?

I vaguely recall when when setting up years ago you pair to SmartThings then switch to PE653.
I assume that’s what the last steps did in your pairing instructions.

Also does this look normal for Favorites Status with 4 Empty Boxes or are those configurable somewhere. I’ll keep digging.

It’ll do that. If you’ve gone through the steps of pairing it with both the hub and the PE653 then you’re set. The remote only sends a message to the hub when you trigger a scene from it (assuming you’ve done that step of the setup) so the hub will eventually mark it offline from inactivity. It won’t impact anything, and you should be able to use the remote with the PE653.



No. Does it look like that in the room too? Which profile did you choose?


Yes, looks the same in Room (Devices)
I just noticed your screen shot for “Dashboard”.
Must be some uninitialized variable or something (in the cloud) that you carried over from a previous revision or something, but my “squeaky clean” install is missing it.
Or something you have set in the configure that I have not.

But if I tap it, I do get all the status

On a side note, I just did something cool. With my old Automation Script I programmed the buttons on the PE653 to control Speed. Circuit 1 → Speed 1, Circuit 2 → Speed 2

Circuit 1 and 2 are not hooked to anything (Electrical) :slight_smile:

I just implemented that with a few If Then Do That’s

If Circuit 1 On Then Set Speed 1 And Set Circuit 2 Off
If Circuit 2 On Then Set Speed 2 And Set Circuit 1 Off
If Circuit 1 Off AND Circuit 2 Off Then Set Speed Off

I’ll take a look at that profile tonight. In playing around right now, it does seem like some of the recent app updates (I’m on Android) have made switching between profiles act wonky. Assuming you’re on Android, you can try force close and clear cache to see if that helps.

That’s a cool use of the unused circuits. I remember seeing something about a way to change pump speeds directly on the PE653 without the remote (to let your pool guy control everything) but I forget how that worked or where I saw it.

FYI, I’m on iOS.

Awesome work, I’ve logged 2 issues on Github 1 I think might not be easy to fix with what you explained before, but we could use virtual Edge drivers, which ones do you recommend?

The Other one is a profile that removes solar. Also in the tile view why do I see tiles not in my profile?

I see Water temp (yes) Pump speed, no VSP Heater State no heater Heater setpoint no heater.

I’ve followed the posted procedures the best I can tell. I’m having some success but the 653 is missing options or cannot be configured for my pool configuration. Here are my issues any help much appreciated!:

  • The pairing instructions appear to have a lot of problems. I have some notes
  • The 653 responsiveness is slow. Settings don’t sync very quickly.
  • I can’t force or change a profile in settings. Stuck on the default.
  • I can’t select VSP for pump type. I see my systems speeds but I can only pick one or two speeds. When I select VSP app just doesn’t save it, won’t let me select it, or cursor spins and gives up. I can see my VSP speeds.
  • Shifting from config/operation hangs and lags.
  • I see network not available sometimes but action may work.
  • I have no need for solar temp, or freeze features (in south florida).
  • I can’t flip between pool/spa even though I have “both” selected in app. I need to shift actuators for valves to cause my heater temps to kick in and water to circulate correctly.
  • I can’t add the 953 remotes I have to ST. I have two of them.
  • I don’t have a booster/cleaner - the setting does adjust though.

I really don’t want to damage any of my equipment so any help the community can provide would be fantastic. Thank you!!

Is there a particular version of the firmware for the controller required to work? I enrolled via the channel, but no matter what I do, the controller only picks up the driver for the remote control (PE953) and not for the actual device (PE653)

Sorry for delays in responding. Busy time of the year for me.

I’m not using any of the community-made virtual device drivers, and haven’t seen that any of the authors have posted code where it can be reviewed, so I don’t really have anything to base on a recommendation on. It’s possible though that the virtual switches you can now create through the CLI will satisfy the Alexa linkage. Those run in the cloud (but so does the Alexa integration), so there’s a trade off.

Not guarantees that I’ll be able to get to this before August, but I’ll add it. Which tiles would you want to see on the dashboard for that profile? Right now all the dashboards are the same simply because I wasn’t sure which to put up there for the different configurations people are using. The dashboard is either small (1 tile) ot large (2 to 5 tiles).

I ended up with this [ST Edge] Virtual Things Edge Driver - #44 by Paul_Oliver
The main problem is having to create “follow status” automations, 2 per status, but work great and the intermatic controller like this is a LOOOT faster than in the cloud, before alexa operations had 5-10s delay, now there is no noticeable delay.

On the getting on this on August note, the fact that you are helping us keep this controller alive already great :slight_smile: .

So right now the only useful tile is Water T, I guess everyone has Outside T and depending on your settings Circuit 1 is always the pump and 3 pressure side cleaner, it’s a hard bargain, I guess it would be profile dependent?

The 653/953 hardware is ancient z-wave kit with heavy use of proprietary commands, so don’t expect blazing fast. If there are particular pain points where you’re seeing lag, then I can try to address them, but there are limits due to the hardware. I find the 953 control of the 653 to be laggy at times even when I have the two units right next to each other.

I’ve seen the VSP setting in another integration, and therefore added it to this one, but it’s definitely not present on every firmware version. Mine is 3.4 and similarly doesn’t accept the VSP setting, but my VSP works with it set to One Speed Pump.

You’ll need to be in config mode to swap profiles. Switching between config and operation modes may require force closing the ST app, and possibly clearing cache. This worked very well a few months ago, but more recent app updates have made it a bit clunky.

Most of the app errors that talk about network error or trouble connecting really mean that the device was “too slow” to update its status after you pushed a button in the app. This device is going to be on the slow end of responding due to its age and complexity, but I don’t have any way to change what the app considers to be “too slow”. I may be able to optimize some of the polling though.

What would you want included in the profile? Is there an existing one that nearly meets your need, with the exception of displaying solar? Since the freeze features are all on the config screen, those will remain there.

Do you have the expansion module (I thinks the product number is PE5043ME), or just the 653? Are you able to toggle Pool/Spa with the 953?

The gist of those instructions for pairing everything is that you:

  1. Add the 653 to ST
  2. Add the 953 to ST
  3. Add the 653 to the 953
    The order is important, since ST is the primary controller of your z-wave network. Both the 653 and the 953 need to have been reset before going through the process. Make sure you’re pairing in close proximity and check your “No room assigned” room to see if any devices popped up there.

I have firmware 3.4, so I can’t guarantee what will/won’t work outside of that, but I’ve tried to follow what was done in the past to support other versions/configurations. The firmware version really shouldn’t impact joining though, unless it caused your device to have a different fingerprint from what I’d expect.

Is the PE653 joining with a DTH? Or a different Edge driver? Or not at all?

I haven’t played with Rules much, but this would be the other option:

That’s exactly the challenge… This device is too configurable and the ST app is too rigid. Come up with your pick, and I’ll set that profile to match your preference.

The 653 joins as if it’s a 953, so it’s like I have 2 remote controls, and not 1 remote and 1 controller. I even try going into the driver settings to see if I can switch the driver for it to the 653, but it says “no other drivers available”. Almost as if the 653 driver didn’t register properly. I’ve even tried removing all the devices, uninstalling the drivers, and starting over, and no luck

It sounds like the 653 fingerprint isn’t being received properly by the ST hub. Are you pairing the 653 as close as possible (preferably within a few inches) to the ST hub?

The full explanation of what I believe is happening if you’re interested… A failed fingerprint shows up as 0000/0000/0000, while the 653’s correct fingerprint is 0005/5045/0653. The 653 driver currently can only be used with devices that match that fingerprint. Meanwhile, when the 953 is added to the ST z-wave network it always fails to fingerprint and shows up with 0000/0000/0000, so that’s what the driver for the remote is set to work with. If you’re unable to get your 653 to join properly then I may be able to work around it with a capability-based fingerprint.