Pentair ScreenLogic

I pushed a fix to these errors @JasonJoel...some in progress dev code snuck past when I tried to clean things up for an Alpha release today. New code is here. Best approach is to remove the parent Pool device and then the App and reinstall it to let it rebuild all the devices....though in theory just re running the App should trigger updates to any missing children.

I'll give it a try. Another thing I noticed is that after the initial device creation and status update, status never updated again without hitting refresh on the parent. I'll look at it closer after updating.

Edit: Down to 2 errors with the updated driver:

dev:10652019-12-20 06:37:19.451 pm errorgroovy.lang.MissingMethodException: No signature of method: user_driver_bsileo_Pentair_Intellibrite_Color_Light_994.updateDataValue() is applicable for argument types: (java.lang.String, java.lang.Integer) values: [instanceID, 2] on line 199 (updateDataValue)

dev:10532019-12-20 06:37:19.020 pm errorgroovy.lang.MissingMethodException: No signature of method: user_driver_bsileo_Pentair_Intellibrite_Color_Light_994.updateDataValue() is applicable for argument types: (java.lang.String, java.lang.Integer) values: [instanceID, 1] on line 199 (updateDataValue)

Other comment is that some things have odd values. For instance on the web interface my air temp is 50F. On the "Pool Air Temperature" driver it is 68F...

EDIT: Has correct value after refreshing the parent device. Looks like it only updates when I refresh the parent though.

And I get this error on the pump device if I hit refresh on the parent. I have a VSF pump, in case it matters.

dev:10772019-12-20 06:45:43.796 pm errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#div. Cannot resolve which method to invoke for [null] due to overlapping prototypes between: [class java.lang.Character] [class java.lang.Number] on line 71 (parsePumpData)

dev:10772019-12-20 06:45:43.788 pm debugPump Parse--[remotecontrol:1, ppc:25, err:0, gpm:60, run:10, type:VS, rpm:2832, externalProgram:[1:-1, 2:-1, 3:-1, 4:-1], drivestate:2, mode:9, duration:durationnotset, timer:0, watts:1357, currentrunning:[mode:off, remainingduration:-1, value:0], virtualController:disabled, name:Pump 1, time:6:47 PM, power:1, pump:1, friendlyName:Pump 1]

Anyway, nice work so far.

I don't really like having 22 intellibrite devices in the list (just takes up a lot of visual real estate), but no biggie.

Its not ideal but does give a way to access any mode from third party controllers, rules, etc. I will also look at adding a single enumerated list for these options which would be easier to manage in the Device list. You should be fine to delete these child devices without any negative impacts.

FYI I have now added a command on the main Intellibright child device to set the mode of that light group.

@JasonJoel I'm totally new but looking for a HA system that can definitely integrate and control (basic stuff like turning on pumps/heater/spa) our Pool which is run by Pentair ScreenLogic system currently.

I hate having to open their app and wait for connection and then scroll to sunscreens every time I want to turn the spa on etc. If I could have an iPad on the Wall running Hubitat interface with a tile I just push to toggle on/off the spa I will buy today!

Are you saying you have this level of function working? Is there a guide somewhere on how to do it? I'm totally new with HA but am very willing to spend time learning to make it work.

I can't find a way to send private message on this board so I'm replying here. I thank you in advance for any help you might provide.

I'll chime in @2005 - yes you can accomplish exactly what you want. Get up and running with Nodejs-poolcontroller and you mostly get what you want. Add in the Hubitat interface and you get access to multiple options for building this dashboard plus the ability to manage all the pool controls from any other home automation scenario. You can start here.

Ditto. This is the key part of the whole thing.

Whether you want to use the solutions built in web interface, or integrate to node-red, or integrate into Hubitat is up to you.

1st step is to get the direct node.js integration setup and working, though.

silly beginner question - but " Get up and running with Nodejs-poolcontroller" requires me to have the Hubitat, right?

Not sure what I do to get it up and running. Want to make sure I do things in the right order.

No. It requires you to have the Pentair pool controller (that's typically the part that connects to Pentair's cloud service) and a Raspberry Pi connected to the pentair pool controller via a serial connection.

The idea is that the node.js program running on the RPi can poll the data from the pool controller via the serial link, just like the Pentair device that shoves the data up to the cloud.

2 Likes

For some time I pondered building out a direct IP interface (like this) to the Pentair screenlogic device from Hubitat, which would, in theory, eliminate the nodejs-poolcontroller. Of course the Pentair device costs way more, and mine is currently not working, so I lost some motivation to work on that. @JasonJoel has it right - get the RPI/Pool Controller running first. That gives you a decent, published API on your local network to control the pool, which can then be used by Hubitat, or any other controller, to manage this equipment. Pentair does not offer a published API despite having their own App, desktop software, and Alexa interface,

1 Like

Ok thanks. Raspberry pi ordered! Never worked with one before but putting a pi hole on my network was a project on my list anyway. Hope I can do both with one pi.

The pentair pool controller is the wireless device that has the white power brick that attaches to it I assume. More stuff to try and pack into my SMC space...

You will also likely need a USB to Serial adapter. This is the one I use on my interface, but there are oodles of others, and they are all basically the same:
https://www.amazon.com/gp/product/B00NKAJGZM

1 Like

I just found this thread, so I am looking to be able to turn my lights on and off turn the pool pump on and off and turn the cleaner on and off other than that Iā€™m not looking to get too creative. So all I need to get to make this work right now is the raspberry pie and the serial cable and Iā€™m assuming the drivers from my purpose is working as well as it needs to?

Yes this will meet your needs. All of the Aux circuits on your system will be available as Switches within Hubitat and you can then control them via Rules, Apps, Dashboards, etc. You need to get NodeJS-poolController(NJPS) up and running on the RPi first. That requires an RS-485 adapter and a hard wired cable. this is the same cable used with Pentair Screenlogic if you have that already. Once that is up and running, you can add the App and Devices to Hubitat and connect it to the NJPS to control everything from Hubitat.

Amazing - thanks for the info. I will pick up The RPi and see if the pool guys left the box

The latest latest version of the Pool Controller is now available via Hubitat Package Manager. . Details are in the Repository. This version is NOT backwards compatible with the prior version's devices on Hubitat and also requires an update to the latest nodejs-PoolController. It is a much improved version with better structure, improved event updates

1 Like

I've been out of state 7 out of the last 8 weeks so haven't made any progress at all on this project, but getting my Screenlogic into my Hubitat remains a huge desire! So excited to see improvements happening. Just have to get my pi up and running first and I'll hopefully be joining you all soon.

1 Like