[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.


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.