[OBSOLETE]Intermatic PE653 Pool Control System

(1) I’m running Android.
(4) I did set it “Variable Speed Pump with Booster/Cleaner”
Because I have a Pentair Intelliflo VSP

I created an acct over there but don’t have the reply option…

Very strange error since there is no obvious “and” in that line.

Try uncommenting the log line at 1503 and move it one line before 1501. Also un comment the log line around 1468 near the top of this method, then rerun and post logs over there.

Ok, it does seem there is some Android difference. It does seem that at some earlier point you were able to save settings since you were able to configure the pump type. Can you borrow an IOS device just to log in and set the settings while we sort this out? Is the ability to save intermittent? I’m looking for a pattern here, and I do not have an Android device.

Could you capture some logs to help triage this? Capture one log when you press the “refresh” (circular arrow) button and a second when you press “Configure” button.

Here is the log…

Let me see if I can get you the reply option with HE forum. What is your username?

My user is @keithriley.
This is a very strange error. I will provide some explanation so that hopefully it will allow the support folks a trail to follow.

The “delayBetweenLog” method is just a souped up version of delayBetween. The idea is that various DTH commands often need to send multiple commands and multiple events. As always this is accomplished by returning a List of objects as the return parameter from the command. The PE653 Z-Wave device is very time sensitive so you have to be careful not to overrun it. Consequently you need delay statements between the commands. My version still provides this basic functionality but also provides a common logging framework so that uniform log messages are always provided. To achieve this, the delayBetweenLog method must parse the List and take different log specific action depending on the type of each item in the List.

In the particular case that Justin is executing a command method to set the heater thermostat and follow this with a query to get the current setting (quickSetPool --> setPoolSetpointInternal). Within the Internal method a fresh List is constructed and two ZWave commands are appended to the List:
cmds << zwave.thermostatSetpointV1.thermostatSetpointSet(setpointType: 1, scale: deviceScale, precision: p, scaledValue: convertedDegrees)
cmds << zwave.thermostatSetpointV1.thermostatSetpointGet(setpointType: 1)

The List is then returned to the caller:
def List quickSetPool(degrees) {delayBetweenLog(setPoolSetpointInternal(degrees), 3000)}
but when delayBetweenLog is called with this list, as it iterates through the List, the first item off the List cannot even be printed. The log-trace at line 1470 is simply trying to do a print on the item, yet this is causing the strange error: “Cannot invoke method and() on a null object on line 1470”.

This implies that one (the first) of the commands did not generate the required ZWave command but returned null instead.

I would take a very close look at: zwave.thermostatSetpointV1.thermostatSetpointSet()

Justin, I could add code to protect against a null item in the List so that no error is generated, but that won’t help in the least because you still are not going to get the thermostat set since the creation of this command seems to be the issue.

I was not able to save setting with the android app. But I use the IDE to set the preferences using the values as shown in the app. However, I don’t have IOS to try it out.

Here’s what I have set in the preferences:
Is it correct?

However, I noticed after setting the preferences in the ide, going back to the APP, no one the settings are reflected in the APP.

I figured out that the values in the fields should be numbers such as “Booster/Cleaner Pump” should be “[1-6]”. Not a string, as it a enum.

Is it working any better now? For example, are you seeing the VSP buttons now? Do they work? After selecting a speed, if you go on your 953 remote you should see a time range show up in the 3rd slot if the corresponding VSP schedule. For example, you press VSP2, then you should see 00:01 - 23:59 on the schedule for VSP speed 2 in the 3rd slot. If not, please post logs.

Now that you have set the values in the IDE, are you able to open then save settings in the Android App?

After initially setting the values in the IDE, I can save setting in the Android App.

Here’s what the app shows. The pump is running VSP2 now. But it is not reflected in the app.
When I press VSP 3 and VSP 4, the pump seems to run. But VSP 1 and VSP 2 does not do anything I can tell.

Great feedback. Some of what you describe is unfortunately just the best compromise I could reach. Much of the dialogue between the 953 and 653 uses “manufacturer proprietary” commands, which is another way of saying that they are not using standard ZWave commands but are essentially “tunneling” through the manufacturer proprietary ZWave command. The upshot is that I have been unable to reverse engineer how these devices control pump speed.

I came up with a compromise that leveraged the schedules, which do use standard ZWave. I insert a schedule item and the 653 then runs the pump speed based on the highest speed that has a schedule that fits the current time. Since you already have VSP speed 2 going, there is nothing I can do to stop or reduce it, only increase it. In other words, setting the speed on the 953 and the App is not entirely compatible. You’ll always get the greater of the two.

Understanding this may make it more usable for you. To see illustrate this, turn off the pump from your 953 and then all 4 buttons should work.

Thanks for the info on the configure settings. This may give me a clue as to why you couldn’t Save initially.

Thanks for the clarification. My main problem is with my pool cleaner guy. He comes and press the button 3 to clean the pool and then leaves without turning it off. I would like to know say at 5pm if that button is still on. If it is alert me and possibly even turn it off. Do you have any idea how that can be done?

Keith,
I tried the VSP buttons when the pump is not running. I see the schedule added to third line of the schedule and the pump starts. However, I noticed it deleted the schedule I had on line 1 on VSP 1 and VSP2. I had to add it back with 953. Is there a way not to touch line 1-3 of each VSP schdeule? Only line 4?

I thought this would be a good tip for me to solve my problem of saving settings in the (Android) app, but no joy. After changing a field in the IDE, I’m still unable to save in the app. The error is the red banner “Please fill out all fields”.

At least now I know how to use the IDE to make changes, so thanks.

I have not seen that behavior and don’t see why it is happening. Every schedule slot for every speed is a separate command to the 653. I intentionally stayed away from the first slots so they could be used for normal scheduling. Maybe you could try some other scenarios? Do you use all four speeds?

As to the issue you had and @CAL7 is still having, it seems you initially still had the save issue but had to experiment with numbers versus strings. Any advise you can share? This may help me track down the Android issue as well.

Keith,
Initially, I entered “String values” in the ide and realized it was incorrect when I examined the DTH. I did not use the APP until I resolved using “numbers” in the ide. Then I could change and save settings in the app. However, I still cannot “Set Device Image” still in the APP. It is still blank after several tries with images stored on my phone. So there’s nothing I can add of value here to help debug.

BTW. Where in the DTH are you writing to entry 3 of the VSP schedules? I cant seem to find it. I’ll have to retry and re-confirm what I saw was correct. I definitely notice it all got blanked out. But I’ll reconfirm.

I realized that I can run the Android SmartThings App on my wife’s Fire Tablet by first loading Google Play, then installing the SmartThings App. Finally!! This should help a lot with testing.

First thing I checked was the Settings option on the DTH. Since I logged into my same ST account, all my settings were already established so I had no issues saving.

@CAL7, I think the IDE is your key to resolving the save issue in the short term. Go back into the IDE and make sure that every setting has a reasonable value, even if for a feature you are not using. As @cslee observed, be sure to use numbers for the enum options. Anyway, try that and then try it in the Android App.

I guess i’ll have to do a fresh install of my DTH so I can recreate the issue myself and see why you can’t seem to set all required parameters without help from the IDE. This may be awhile though, currently away on vacation. More to come…

Keith,
Do you know of a way to accomplish this?

thanks.

The method that sets the VSP schedules is called setVSPSpeedInternal(). It uses a function getVSP_SCHED_NO () to convert a speed number (1-4) into a configuration page number. Every slot in every speed has its own page #.

Justin, Still don’t have Reply permission and reply by eMail didn’t Work either so back here I go…

The logs show that the PE653 is responding in the “SetpointReport” that the temperature is now 74F. This all looks good. What does your remote show? Sometimes you have to toggle through the pages before it updates.

Maybe I’m missing something. Is the problem with the temperature setting or the heater? You mentioned EP5. I take it this is new behavior? Not needed on ST?

If nothing else, post a log showing 2 temperature changes ( to different values).

Logs seem right to me…

1 Like