tagyoureit / nodejs-poolController

An application to control pool equipment from various manufacturers.
GNU Affero General Public License v3.0
323 stars 94 forks source link

Better understanding of heater logic #13

Closed tagyoureit closed 5 years ago

tagyoureit commented 7 years ago

moved from: https://github.com/tagyoureit/nodejs-Pentair/issues/32 There are two places in the status packet (from Intellitouch) that relate to heater status. I don't think they are being decoded correctly, at this time.

rflemming commented 7 years ago

Hey look I'm back :) A couple things since I can't edit the wiki on the new project:

The broadcast message has the wrong byte marked as being pool/spa heat mode. You have it as byte 21, when really it's byte 27. This is of course correct in the code, just not on the wiki. Byte 21 does appear to have something to do with the heater, but the best I can come up with so far is that it changes from 32 to 0 (on my system of course) when the spa mode is set to solar pref or solar. No other mode changes seem to make a difference.

Regarding the heater logic I mentioned this a long time ago, but byte 15 changes for me when the solar turns on. Unfortunately this could also just a valve indicator, but here's what I've seen:

3 - Solar was not running 51 - Solar was running 15 - When pool was set to heater and was running (I don't have a heater)

tagyoureit commented 7 years ago

Welcome back! I updated the wiki. And I do think those numbers are the valves. I've also seen the value of 48. These may be dependent on the configuration of each pool and what the valves mean for that system... more investigation needed here.

rerouted commented 5 years ago

Trying to get this heater logic issue closed. There is a red LED on my IntelliTouch for when the heater is on or off so I do think there is a way to know in the status messages. I played around with this tonight on my system as I really want to track how long my heater runs for to find the sweet spot to set it at for the average temperature.

In an Equipment Status message I was able to test and repeat this multiple times and see the same results. I had my laptop right by the heater so I was able to verify whether the heater was truly on of off.

Here is my findings...

When my heater was on byte 15 was 12. Msg#: 340280 Data: [165,1,15,16,2,29,23,27,44,0,0,0,0,0,0,0,12,0,0,4,65,65,0,0,49,0,0,0,1,0,0,110,32,3,13,2,164]

When I turned the set-point below the pool temp byte 15 immediately changed back to 0. Msg#: 340282 Data: [165,1,15,16,2,29,23,27,44,0,0,0,0,0,0,0,0,0,0,4,65,65,0,0,49,0,0,0,1,0,0,123,30,3,13,2,163]

I was wondering if anyone else could check there system and see if they see similar results?

tagyoureit commented 5 years ago

I'm seeing interesting results, which is why I wasn't able to nail this down previously. On my system, with solar and a heater... dec (binary) 3 (0000011) = anytime solar/heater is on but setpoint < current temp 15 (0011111) = heater is on, setpoint > current temp 51 (0110011) = solar on, setpoint > current temp

In your scenario, 12 (0001100) = heater on 0 (0000000) = heater off

It makes sense that bits, given positions (1234567) (where a=0/1) (aaa45aa) 45 == '11' is heater on, and (a23aaaaa) 23 == '11' = solar on.

I'm not sure why I would have (_____67) 67=11 bits set and you don't. I will implement the masks for the 23/56 bits to be solar/heater on and see if we can go from there, but this is still a bit of a mystery to me.

tagyoureit commented 5 years ago

Ok, I think we've got this one... thanks @rerouted.

Solar on, set point < current temp. 2019-06-01_16-20-29

Solar on, set point > current temp. 2019-06-01_16-20-17

Pics look the same for heater. The only thing still left to check is if the solar setpoint is > current temp but it is cloudy out (eg solar is off even though it would otherwise be on).

tagyoureit commented 5 years ago

Closing this out... seems to work as expected with no sun and the solar set points above/below the current temp.