Intermatic PE653 Pool Control System

@tocipka Thank-you for your support! Please describe what you see in the new App when you select your Pool Control device and include a screen shot.

Some other things to try: On a PC browser window open a live logging window. Next go into the Settings for this device (Gear icon in new App) and enable “low-normal” debugging, check that you have set values for settings, at least down through “Delay”, then exit Settings. This should result in a bunch of lines showing in the log window. Click on your Pool Control device at the top to filter the log list to only this device, then copy and post here.

Also try the suggestion in post 875 to remove and recreate any child devices.

@KeithR Now that you have this ironed out, I’m ready to move forward acquiring this system (and obviously supporting your effort). Since you have redone your system I had few questions on what to get for startup and what comes included

  1. I assume the 953 is useless when the 653 is in ST? So don not buy? Is there any chance the remote will ever pair/work in ST?
  2. What comes in the 653 box? Air temp? Anything else?
  3. I assume the 653 would be all I need for a minimal system.
  4. For futureproofing this, is there any work on the P5043ME? will it just work and we preset a “switch”?

Thanks for looking into it! The debugging trace:
734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:49 PM: debug <<<<< rspFlg=true dly:100/100 0 Commands, 0 Delays, 8 Events
<<<<< Event: “off” to switchOne (was: “on”)
<<<<< Event: “off” to switchThree (was: “on”)
<<<<< Event: “off” to switchFour (was: “on”)
<<<<< Event: “off” to switchFive (was: “on”)
<<<<< Event: “70” to waterTemperature (was: “50”)
<<<<< Event: “69” to airTemperature (was: “60”)
<<<<< Event: “0” to solarTemperature (was: “70”)

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:49 PM: debug ----- process84Event Firmware-PE653: 3.4 state.expansionVersion=3.4 EXPANSION_5043=true getP5043=true

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:49 PM: debug >>>>> ManufacturerProprietary(type:84, payload: 05 40 02 02 84 53 10 02 02 00 02 01 46 45 00 14 34 14 00 00 00 03 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 )

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:40 PM: debug ----- rspFlg=true No Commands or Events

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:40 PM: debug >>>>> ManufacturerProprietary(type:87, payload: 05 40 02 02 87 53 10 02 01 01 02 07 03 04 00 02 00 10 04 00 04 00 00 25 14 34 14 01 00 00 20 00 00 00 00 00 00 00 00 00 )

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:39 PM: debug ----- rspFlg=true No Commands or Events

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:39 PM: debug ----- ManufacturerSpecificReport: ManufacturerInfo: manufacturerId: 5, manufacturerName: Intermatic, productId: 1619, productTypeId: 20549

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:39 PM: debug >>>>> ManufacturerSpecificReport(productTypeId: 20549, manufacturerId: 5, manufacturerName: Intermatic, productId: 1619) - raw[zw device: 06, command: 7205, payload: 00 05 50 45 06 53 ]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug <<<<< rspFlg=true dly:100/100 0 Commands, 0 Delays, 1 Events
<<<<< Event: “59” to poolSetpoint (was: “66”)

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- ThermostatSetpointReport: Report without previous requested change (setpointSet), setpoint=59

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- ThermostatSetpointReport: incoming requested state.poolSetpointTemp=0.0 reported Setpoint=59 state.scale=1 setpointType=1

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug >>>>> ThermostatSetpointReport(setpointType: 1, scaledValue: 59, scale: 1, precision: 0, value: [59], reserved01: 0, size: 1) - raw[zw device: 06, command: 4303, payload: 01 09 3B ]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- rspFlg=true No Commands or Events

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- ConfigurationReport - got parameter=22 - spamode1, value=[2]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug >>>>> ConfigurationReport(parameterNumber: 22, scaledConfigurationValue: 2, reserved11: 0, size: 1, configurationValue: [2]) - raw[zw device: 06, command: 7006, payload: 16 01 02 ]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- rspFlg=true No Commands or Events

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- ConfigurationReport - got parameter=3 - temperatureOffsets, value=[1, 0, 0, 0]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug >>>>> ConfigurationReport(parameterNumber: 3, scaledConfigurationValue: 16777216, reserved11: 0, size: 4, configurationValue: [1, 0, 0, 0]) - raw[zw device: 06, command: 7006, payload: 03 04 01 00 00 00 ]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- rspFlg=true No Commands or Events

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- ConfigurationReport - got parameter=2 - firemanTimeout, value=[0, 1]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug >>>>> ConfigurationReport(parameterNumber: 2, scaledConfigurationValue: 1, reserved11: 0, size: 2, configurationValue: [0, 1]) - raw[zw device: 06, command: 7006, payload: 02 02 00 01 ]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- rspFlg=true No Commands or Events

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug ----- ConfigurationReport - got parameter=1 - operationMode, value=[1, 0]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:33 PM: debug >>>>> ConfigurationReport(parameterNumber: 1, scaledConfigurationValue: 256, reserved11: 0, size: 2, configurationValue: [1, 0]) - raw[zw device: 06, command: 7006, payload: 01 02 01 00 ]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:32 PM: debug -----State Variables:
state.expansionVersion = none
state.lightCircuitsList = [2]
state.lastPoll = 1614044004752
state.precision = 0
state.ManufacturerInfo = ManufacturerInfo: manufacturerId: 5, manufacturerName: Intermatic, productId: 1619, productTypeId: 20549
state.size = 1
state.VersionInfo = Versions: Firmware v3.4 DTH: Ver 4.1.1 zWaveLibraryType: 6 zWaveProtocol: v2.78
state.schedules =
state.scale = 1
state.firmwareVersion = 3.4
state.spaSetpointTemp = 0.0
state.poolSetpointTemp = 0.0

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:32 PM: debug addChildDevice failed: physicalgraph.app.exception.UnknownDeviceTypeException: Device type ‘Thermostat Child Device’ in namespace ‘KeithR26’ not found.

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:32 PM: debug <<<<< rspFlg=false dly:100/100 14 Commands, 13 Delays, 0 Events
<<<<< Cmd to Device: ConfigurationSet(parameterNumber: 1, scaledConfigurationValue: 256, reserved11: 0, defaultValue: false, size: 2, configurationValue: [1, 0]) → 700401020100, delay 100
<<<<< Cmd to Device: ConfigurationSet(parameterNumber: 3, scaledConfigurationValue: 16777216, reserved11: 0, defaultValue: false, size: 4, configurationValue: [1, 0, 0, 0]) → 7004030401000000, delay 100
<<<<< Cmd to Device: ConfigurationSet(parameterNumber: 2, scaledConfigurationValue: 0, reserved11: 0, defaultValue: false, size: 1, configurationValue: [0]) → 7004020100, delay 100
<<<<< Cmd to Device: ConfigurationSet(parameterNumber: 22, scaledConfigurationValue: 2, reserved11: 0, defaultValue: false, size: 1, configurationValue: [2]) → 7004160102, delay 100
<<<<< Cmd to Device: ConfigurationGet(parameterNumber: 1) → 700501, delay 100
<<<<< Cmd to Device: ConfigurationGet(parameterNumber: 2) → 700502, delay 100
<<<<< Cmd to Device: ConfigurationGet(parameterNumber: 3) → 700503, delay 100
<<<<< Cmd to Device: ConfigurationGet(parameterNumber: 22) → 700516, delay 100
<<<<< Cmd to Device: ThermostatSetpointGet(setpointType: 1, reserved01: 0) → 430201, delay 100
<<<<< Cmd to Device: ThermostatSetpointGet(setpointType: 7, reserved01: 0) → 430207, delay 100
<<<<< Cmd to Device: VersionGet() → 8611, delay 100
<<<<< Cmd to Device: ManufacturerSpecificGet() → 7204, delay 100
<<<<< HubAction: 910005400102870301, delay 100
<<<<< HubAction: 910005400101830101

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:32 PM: debug ----- refreshInternal() DTH:Ver 4.1.1 state.Versioninfo=Versions: Firmware v3.4 DTH: Ver 4.1.1 zWaveLibraryType: 6 zWaveProtocol: v2.78

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:32 PM: debug addChildDevice failed: physicalgraph.app.exception.UnknownDeviceTypeException: Device type ‘Thermostat Child Device’ in namespace ‘KeithR26’ not found.

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:32 PM: debug ----- internalConfigure() operationMode1=1 operationMode2=0 tempOffsetwater=1 tempOffsetair=0 fireman=0 poolSpa1=2

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:32 PM: debug ----- RemoveChildDevices(before) count=0 children:

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:32 PM: trace ----- addChildDevice(namespace=“KeithR26”,DTH Name=“Thermostat Child Device”, dni=“06-ep12”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Spa Thermostat”,isComponent: false]

734a1920-851d-47e8-99d9-0cefdd4fa945 8:53:32 PM: trace ----- addChildDevice(namespace=“KeithR26”,DTH Name=“Thermostat Child Device”, dni=“06-ep11”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Pool Thermostat”,isComponent: false]

Screen:

@KeithR Looking at the traces I realized that I do not have your device handler for the child thermostat device. I added it and now all child devices generate (seems to me properly).
But, my main “Pool Control” screen looks still the same… Thanks again for your help!

Child devices generation trace:
734a1920-851d-47e8-99d9-0cefdd4fa945 11:08:51 AM: trace ----- addChildDevice(namespace=“KeithR26”,DTH Name=“Thermostat Child Device”, dni=“06-ep12”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Spa Thermostat”,isComponent: false]

734a1920-851d-47e8-99d9-0cefdd4fa945 11:08:50 AM: trace ----- addChildDevice(namespace=“KeithR26”,DTH Name=“Thermostat Child Device”, dni=“06-ep11”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Pool Thermostat”,isComponent: false]

734a1920-851d-47e8-99d9-0cefdd4fa945 11:08:50 AM: trace ----- addChildDevice(namespace=“erocm123”,DTH Name=“Switch Child Device”, dni=“06-ep6”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Spa Mode”,isComponent: false]

734a1920-851d-47e8-99d9-0cefdd4fa945 11:08:49 AM: trace ----- addChildDevice(namespace=“erocm123”,DTH Name=“Switch Child Device”, dni=“06-ep5”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Switch 5”,isComponent: false]

734a1920-851d-47e8-99d9-0cefdd4fa945 11:08:48 AM: trace ----- addChildDevice(namespace=“erocm123”,DTH Name=“Switch Child Device”, dni=“06-ep4”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Switch 4”,isComponent: false]

734a1920-851d-47e8-99d9-0cefdd4fa945 11:08:48 AM: trace ----- addChildDevice(namespace=“erocm123”,DTH Name=“Switch Child Device”, dni=“06-ep3”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Switch 3”,isComponent: false]

734a1920-851d-47e8-99d9-0cefdd4fa945 11:08:47 AM: trace ----- addChildDevice(namespace=“erocm123”,DTH Name=“Switch Child Device”, dni=“06-ep2”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Switch 2”,isComponent: false]

734a1920-851d-47e8-99d9-0cefdd4fa945 11:08:46 AM: trace ----- addChildDevice(namespace=“erocm123”,DTH Name=“Switch Child Device”, dni=“06-ep1”, hubId=null,properties=[completedSetup: true, label: “Pool Control - Switch 1”,isComponent: false]

@KeithR It looks like I am back in business…It took long time and several updates for the “Pool Control” screen to get updated. But, now it works. Thanks a lot for the code!!!
Since the basic stuff works, any plan to make the pool light circuit to work (color controlled by on/off clicks)? :slight_smile:
Also, in the “Pool Control” you have the custom capabilities (not even sure I am using the right term) like “Water Temperature” or “Heater State” and each circuit has one also. Since we might have different devices connected to different circuits it would be great to have ability to label them accordingly. Is there some simple way to have custom labels in place of “Circuit 1”, “Circuit 2”, etc. ?
If you are tired of reading the wish list just let me know :slight_smile:

@jaragonCR Welcome tot he group Jorge!

  1. To the contrary, I find the 953 of continuing value. If you following the pairing instructions in earlier posts you will be able to control the 653 not only with SmartThings but also with the 953. I like the 953 when I am in the hot tub or to provide to guests. Why ask them to download the app and configure everything for a single use?
  2. The Intermatic 653 comes in various configurations. A minimal one (like I just purchased) contains the 653, a 953 as well as a water temperature and air temperature sensor. There are larger bundles that add valve actuators and power panels.
  3. Some users have gotten by without the 953, but I like having it.
  4. I had a P5043 on my initial unit (before I moved) since it is needed to control multiple valve actuators. It is fully supported by this handler. Enhancements I made last year accurately detect the presence of the P5043 and adjust the behavior accordingly.

Good luck!

@tocipka Congratulations!

I had hoped these “caching” and delayed loading issues were limited to developers, but it seems that both you and @Rapfaff have experienced unexplainable delays, after which everything just mysteriously started working a day later. I will report and inquire about this to ST, but unfortunately they have not been responsive to these issues thus far.

Thanks @KeithR , can’t wait for my Kit to arrive :slight_smile: I got most of the answers from your release notes as well (RTFM). I hope this project takes off and gives this HW a new life.

@KeithR I am able to pair the controller, but cannot generate the child devices with the option to generate child, I get

dc84562b-9e5a-47f6-80bb-175158db6652 1:34:41 PM: error java.lang.NullPointerException: Cannot invoke method toInteger() on null object @line 1194 (internalConfigure)

OK, made some progress, it seems to be the sensors the ones that don’t want to regenerate, I was able to generate the 5 switches and verify they work. However in Debug mode I still see an exception

dc84562b-9e5a-47f6-80bb-175158db6652 1:41:30 PM: error java.lang.NullPointerException: Cannot invoke method toInteger() on null object @line 417 (getHAS_HEATER)

dc84562b-9e5a-47f6-80bb-175158db6652 1:41:30 PM: debug ----- process84Event Firmware-PE653: 3.4 state.expansionVersion=null EXPANSION_5043=false getP5043=false

dc84562b-9e5a-47f6-80bb-175158db6652 1:41:30 PM: debug ----- process84Event payload: [5, 64, 2, 2, -124, 83, 0, 0, 1, 0, 0, 1, 66, 80, 0, 23, 53, 0, 0, 0, 0, 3, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

dc84562b-9e5a-47f6-80bb-175158db6652 1:41:30 PM: debug >>>>> ManufacturerProprietary(type:84, payload: 05 40 02 02 84 53 00 00 01 00 00 01 42 50 00 17 35 00 00 00 00 03 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 )

dc84562b-9e5a-47f6-80bb-175158db6652 1:41:29 PM: debug ----- rspFlg=true No Commands or Events

OK, If I set the controller to Pool/Spa it seems to make it “work” no errors, but I still have no displayed temperature on the UI, Temp is displayed on IDE. Still fighting with how to include the 953.

UPDATE: I was able to get it to work when set to pool+spa (BOTH) paired the 953 as per Vera instructions, so All I have now is an extra button since I can’t disable pool/spa