(Some) equipFlags meanings
mikemucc opened this issue · 3 comments
Not so much an issue, but interesting findings that I thought anybody working on this would find useful.
I'm in the middle of creating a UI in Angular, and needed the ability to programmatically determine the heater/cooler configuration so I did a little research with my EasyTouch/ScreenLogic II today to figure out what equipFlags really means.
Here are the results:
24: No Solar (Heat Pump Present) - Baseline
25: Solar Present (+1)
27: Solar Is Heat Pump (+2)
27: UltraTemp or ThermaFlo (Turns on Solar & Solar Is Heat Pump)
28: Chlorinator Present (+4)
29: Chlorinator + Solar
31: Chlorinator + Solar is Heat Pump
--- Cooling Present
8219: Has Cooling (+8192 (Turns on Solar Present (+1), Solar Is HP (+2), UltraTemp or ThermaFlo))
8223: Has Cooling + Chlorinator Present (Turns on Solar Present, Solar Is HP, UltraTemp or ThermaFlo)
--- IntelliChem Present
32792: IntelliChem Present (+32768)
32793: IC + Solar
32795: IC + Solar + Solar Is heatpump
32796: IntelliChem + Chlorinator
32797: IntelliChem + Chlorinator + Solar
32799 : IntelliChem + Chlorinator + Solar + Solar is HP
40991 : IntelliChem + Chlorinator + Solar + Cooling
Binary Representations:
Setting | Binary | Notes |
---|---|---|
Heater | 0000000000011000 | Baseline |
+ Solar | 0000000000011001 | |
+ Solar + Solar is HP | 0000000000011011 | |
+ Chlorinator | 0000000000011100 | |
+ Chlorinator + Solar | 0000000000011101 | |
+ Ch + So + SoisHP | 0000000000011111 | |
+ Cooling (+ So + SoisHP) | 00100000011011 | |
+ Cooling + Ch | 00100000011111 | |
IntelliChem + Ch + Cooling + Solar | 1010000000011111 |
JSON representation:
{
"24": {
"Heater": true,
"Solar": false,
"Solar is Heater": false,
"Chlorinator": false,
"Cooler": false,
"IntelliChem": false
},
"25": {
"Heater": true,
"Solar": true,
"Solar is Heater": false,
"Chlorinator": false,
"Cooler": false,
"IntelliChem": false
},
"27": {
"Heater": true,
"Solar": true,
"Solar is Heater": true,
"Chlorinator": false,
"Cooler": false,
"IntelliChem": false
},
"28": {
"Heater": true,
"Solar": false,
"Solar is Heater": false,
"Chlorinator": true,
"Cooler": false,
"IntelliChem": false
},
"29": {
"Heater": true,
"Solar": true,
"Solar is Heater": false,
"Chlorinator": true,
"Cooler": false,
"IntelliChem": false
},
"31": {
"Heater": true,
"Solar": true,
"Solar is Heater": true,
"Chlorinator": true,
"Cooler": false,
"IntelliChem": false
},
"8219": {
"Heater": true,
"Solar": true,
"Solar is Heater": true,
"Chlorinator": false,
"Cooler": true,
"IntelliChem": false
},
"8223": {
"Heater": true,
"Solar": true,
"Solar is Heater": true,
"Chlorinator": true,
"Cooler": true,
"IntelliChem": false
},
"32792": {
"Heater": true,
"Solar": false,
"Solar is Heater": false,
"Chlorinator": false,
"Cooler": false,
"IntelliChem": true
},
"32793": {
"Heater": true,
"Solar": true,
"Solar is Heater": false,
"Chlorinator": false,
"Cooler": false,
"IntelliChem": true
},
"32795": {
"Heater": true,
"Solar": true,
"Solar is Heater": true,
"Chlorinator": false,
"Cooler": false,
"IntelliChem": true
},
"32796": {
"Heater": true,
"Solar": false,
"Solar is Heater": false,
"Chlorinator": true,
"Cooler": false,
"IntelliChem": true
},
"32797": {
"Heater": true,
"Solar": true,
"Solar is Heater": false,
"Chlorinator": true,
"Cooler": false,
"IntelliChem": true
},
"32799":{
"Heater": true,
"Solar": true,
"Solar is Heater": true,
"Chlorinator": true,
"Cooler": false,
"IntelliChem": true
},
"40991": {
"Heater": true,
"Solar": true,
"Solar is Heater": true,
"Chlorinator": true,
"Cooler": true,
"IntelliChem": true
}
}
Very cool, thanks for sharing!
So:
Solar 0x1
Solar-is-heatpump 0x2
Chlorinator 0x4
Cooling 0x800
Intellichem 0x8000
And we can just OR them together to interpret the flags. I appreciate it!
Indeed. Sorry if GitHub spammed you, I had some mistakes in my initial findings, mainly because my API only refreshes every 5 seconds and it was late. I also jacked up my pool automation figuring this out (but a quick powercycle fixed it... :-) ).