Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HeatPump support #48

Open
dacarson opened this issue Mar 9, 2023 · 12 comments
Open

HeatPump support #48

dacarson opened this issue Mar 9, 2023 · 12 comments
Labels
enhancement New feature or request

Comments

@dacarson
Copy link

dacarson commented Mar 9, 2023

Hi,
I have a Pentair Heat Pump attached to my system, as well as a Pentair Gas Heater. The way Pentair recommend configuring it is to configure it as Solar. In their app, sometimes it shows it as a HeatPump and in other places it shows it as Solar. I assume that that is because they haven't updated the app everywhere. For example, in the Main page on the iPad it has four heating options: Off, Heater, H.Pump Pref, 'H.Pump Only'. But when you go to the History page to see when items were on or off, it shows Solar and Heat.
I am wondering how it knows it is a heat pump attached. Looking through the full JSON output I don't see anything to indicate a Heat Pump installed.

@dieselrabbit
Copy link
Owner

dieselrabbit commented Mar 9, 2023

There is a configuration setting in the official ScreenLogic desktop app (SLConfig on mobile) "Solar is a heat pump". The value for this is exposed to the apps and to screenlogicpy as a flag within the "equipment_flags" value. (0x2)
That said, currently neither this lib nor the Home Assistant integration are set up to rename the solar labels as HeatPump.

@dacarson
Copy link
Author

dacarson commented Mar 9, 2023

My equipment flags has:
"equipment_flags": 8223,
which is 0x201F. To find out if a heat pump exists, so I AND the equipment_flags with 0x2? aka (pseudo code)

if (0x201F & 0x2): 
    print('has heat pump') 
else:
    print('no heat pump')

@dieselrabbit
Copy link
Owner

dieselrabbit commented Mar 9, 2023

Yup. In Python, you can even bitwise AND against the original int:

if 8223 & 0x2:
    print("has heat pump")
else:
    print("no heat pump")

@dacarson
Copy link
Author

dacarson commented Mar 9, 2023

Thanks. I found the definitions in the const.py file
So I could do
data['config']['equipment_flags'] & EQUIPMENT. FLAG_SOLAR_AS_HEAT_PUMP

Looking at the flags defined:
0x1 - Solar - TRUE for me (correct)
0x2 - H.Pump as Solar - TRUE for me (correct)
0x4 - Chlorinator - TRUE for me (correct)
0x20 - Spa remote - FALSE for me (correct)

0x800 - Cooling - FALSE for me. The Heat Pump that I have works to heat or cool the pool. Is this false because there is a separate pool cooler that I don't have, and it is assumed that all Heat Pumps can also cool the pool?

0x8000 - Intellichem - FALSE from me (correct)

The other three bits that are set, aka:
0x8
0x10
0x2000
any ideas what they mean?

@dieselrabbit
Copy link
Owner

Not sure on the cooling. There is a separate config setting in the apps to specify "Has cooling". Maybe that's not set for your pool? No idea if that should or shouldn't be set for your configuration.

I haven't identified what the other 3 bits are.
0x8 and 0x10 have been present in every configuration I have seen thus far (admittedly, not a lot), with only one exception for 0x8.
I have never come across a config with 0x2000 until now.

My pool also has bits 0x10000 through 0x80000000 set, which I haven't seen in any other config. No idea if that means something or if equipment_flags should really be a short instead of an int.

@dacarson
Copy link
Author

dacarson commented Mar 9, 2023

Thanks. I am remote from my pool at the moment, and it seems that the SLConfig app only wants to connect locally. Remote it reports an error.
When I am near my pool again, I can check the configuration. Though as I can set a "Heat" and a "Cool" temperature for the pool (though not for the spa), I suspect that "Has cooling" is enabled.

@dacarson
Copy link
Author

dacarson commented Mar 9, 2023

Maybe just close this, and I can create a new one for what I find about Cooling.

@dieselrabbit
Copy link
Owner

There's a separate setting labeled "UltraTemp or ThermalFlo". Is your Heat pump one of those? Maybe that setting takes care of it?

Actually, sounds like "cooling" is not whether the heat pump supports cooling, but something called Night Cooling.
From the EasyTouch setup guide:

ENABLE NIGHT COOLING: Select Yes or No to enable nocturnal cooling. Night cooling enabled (YES), will
circulate water through the system to lower the temperature during the night hours. Set the temperature in the Heat
menu.

@dacarson
Copy link
Author

Yes, I have the UltraTemp 120 H/C.

Interesting about Night Cooling option. Thank you for sharing.

@dieselrabbit
Copy link
Owner

So a little update on this, I now have a complete(?) list of all the equipment flag bits:

solar	                                   0001
solar is heat pump                         0010
chlorinator                                0100
intellibright                              1000
intelliflo 0                          0001 0000
intelliflo 1                          0010 0000
intelliflo 2                          0100 0000
intelliflo 3                          1000 0000
intelliflo 4                     0001 0000 0000
intelliflo 5                     0010 0000 0000
intelliflo 6                     0100 0000 0000
intelliflo 7                     1000 0000 0000
no special lights           0001 0000 0000 0000
heat pump has cooling       0010 0000 0000 0000
magic stream                0100 0000 0000 0000
IntelliChem                 1000 0000 0000 0000
hybrid ht (UltraTemp)  0001 0000 0000 0000 0000

It seems your original set bit of 0x2000 indicates that your heat pump supports cooling. As for the bit at 0x10000 listed as 'hybrid ht', I don't know if that is correct or not.

@dieselrabbit dieselrabbit added the enhancement New feature or request label Jul 27, 2023
@ColtonIdle
Copy link

side question: Do yall have an easy way to inspect SLConfig traffic? are you just using wireshark? i tried myself, but i get bogged down by all of the other traffic going on on the network.

@EdDuran
Copy link

EdDuran commented Oct 9, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants