parnic / node-screenlogic

Pentair ScreenLogic Javascript library using Node.JS
https://www.npmjs.com/package/node-screenlogic
MIT License
53 stars 15 forks source link

Set Control for the Salt Cell Output #17

Closed tomblevins closed 4 years ago

tomblevins commented 4 years ago

First I want to say I love this Library! totally awesome.

Per our previous postings...

I would like to make a feature request for Set Control for the Salt Cell Output.

User Story: I have both an IntelliChem and an IntelliChlor. I have noticed that the IntelliChem control for my SaltCell isn't very intelligent. It's set up so that if the SaltCell can't keep up with the Chlorine output then it adds Chlorine from the tank. The issue is that it doesn't just attempt to increase the Setting on the Salt Cell first. The problem is that I don't find out that the salt cell is set too low until I get an error that my ORP Tank is empty... I am feeding ORP Stats into an AI now using your library (Awesome)! and I would like that system to be able to control my SaltCell based on the results.

Thanks so much for hearing me out and I am happy to know that it's not just me having this issue.

parnic commented 4 years ago

Try out the head revision and let me know how it works. I can tag a new version if everything checks out.

tomblevins commented 4 years ago

@parnic Totally works! Thanks so much for doing this!

Do you have any plans on adding anything around pumps, by chance? I have some ideas on analyzing the relationships between Chlorine output from the salt cell along with the power and speed of the pump, along with how long you run the pump. Obviously, the more water that goes through the cell controls chlorine production just as much as the level the cell is set at. Not to mention the intellitouch will show the wattage of the pump at various speeds. You could associate the cost of power, how much you run your pump and the operation of the salt cell. If you are tracking your Liquid Chlorine and Power Costs, you actually could optimize your Pump and Chlorinator usage so that it is the most cost effective settings possible. If you are using an AI to determine seasonal normalcy, you could dynamically set your equipment as the season changes.

parnic commented 4 years ago

Generally-speaking, I'm all for adding more functionality to the library. Part of the difficulty there is that I'm restricted to what the Pentair android app can do since the API of communicating with the controller is not openly available. I'm working off a decompiled version of the apk which you can pull yourself with apkpure.com and jadx, or from https://www.mediafire.com/file/z2bteu3dunh6wm5/com.app.pentair.zip/file (edit: dead link) . If it supports setting pump speed, I can probably add it to the library.

Feel free to open a new issue for that.

tomblevins commented 4 years ago

Thanks for sharing this. I am happy to do my own research on this. I wasn't sure how you were going about reviewing the API. Thanks I will take a look and will post when I have something.

Thanks again for all your work on this! Nicely done.

parnic commented 4 years ago

It looks like the slconfig app can do some sort of pump speed control but I'm not sure if it's what you need or not. You can pull it from apkpure.com as well.

mikemucc commented 4 years ago

@tomblevins You may want to to look at https://github.com/ceisenach/screenlogic_over_ip/blob/master/protocol_document/protocol_document.pdf (if you haven't already found that). He lists some offsets for pump info, but I've never been able to get anything meaningful back from those calls.

tomblevins commented 4 years ago

Thanks Mike! I had not found this. I think this will help quite a bit.

mikemucc commented 4 years ago

Glad to help. I'm also going to plug my API that is using parnic's library if you'd like some code examples: https://github.com/mikemucc/screenlogic-api.

Please feel free to reach out with questions.