sfeakes / AqualinkD

Daemon to control Jandy Aqualink RS pool equipment from any home automation hub (Alexa, Homekit & Siri, Home Assistant, smartthings, domoticz etc) or web browser.
Other
176 stars 48 forks source link

Pool temp reads as extremely low even though panel shows correct temp #234

Closed jeffreymonroe closed 8 months ago

jeffreymonroe commented 1 year ago

After upgrading to 2.3.1, pool temp reads extremely low even though panel shows the correct temp. The spa and air temp readings are correct and agree with the panel temp. Version 2.2.2a does not have this issue.

sfeakes commented 1 year ago

I assume it’s reading low in the web ui? Can you set logging to debug, let it run for a few minutes and post the log.

jeffreymonroe commented 1 year ago

Correct. The web UI is showing the incorrect pool temp. I will output a log and post here.

jeffreymonroe commented 1 year ago

Just like any good mechanic, the car does not fail when asked to repeat the failure in front of the mechanic.

I looks like it could have been a transitory issue. Once I turned on the logging and restarted the service, the temperature does report properly as compared to the OneTouch panel.

On another note, I have attached the log file because I am getting a lot of "Read BAD PACKET" in the log which I don't get in 2.2.2a. This may be normal, but I thought I would pass along anyway.

aqualinkd.log

Thanks for the quick response!

sfeakes commented 1 year ago

Thanks for the logs. Between 2.2.x and 2.3.x the code that reads the RS485 packets has not changed. I've gone over the code in detail and the only change that might affect checksum errors is the low latency mode that was added. If you put the below in your config, that will turn that off. BUT, after you make that change in the config, it will require a reboot of the PI to reset the serial port driver.

ftdi_low_latency = no

You logs did however highlight a problem with how 2.3.x is handling checksum errors, I've fixed that now. But that won't effect what you were seeing.

jeffreymonroe commented 1 year ago

Let me know if you would like me to test anything given the new configuration.

Cheers.

jeffreymonroe commented 4 months ago

This error has just recurred. I installed 2.3.7 and the pool/spa temperature is reading 2 degrees. When I stop the aqualinkd service, the temperature changes and displays correctly as compared to a floating thermometer.

The 2.2.2a version does not have this issue.

jeffreymonroe commented 4 months ago

Here is the log of the startup. aqualinkd.log

sfeakes commented 4 months ago

Thanks for the log, I can see in their that the control panel is sending pool temp as 2 deg F. So very odd. I also notices that the iAqualink protocol doesn’t seem to be connecting correctly for some reason. Could you please post the full output of serial_logger, I’d like to see what that is telling us. (You’ll need to stop AqualinkD to run serial logger, or run it from the aqmanager interface of aqualinkd).

You could also try using the one touch protocol for extended programming, rather than the iaqualink protocol, that may help. In aqualinkd.conf change the extra_device_id= line from 0x30 to one of the following 0x40, 0x41, 0x42 & 0x43, making sure not to use the ID your jandy one touch panel is using

jeffreymonroe commented 4 months ago

Thanks for the quick response. Attached is the output from serial_logger -d. I will also try the one touch protocol as outlined above.

serial-logger.log

jeffreymonroe commented 4 months ago

@sfeakes to verify. When you state:

"In aqualinkd.conf change the extra_device_id= line from 0x30 to one of the following 0x40, 0x41, 0x42 & 0x43, making sure not to use the ID your jandy one touch panel is using"

Do you mean "extended_device_id" or is there a new setting "extra_device_id".

jeffreymonroe commented 4 months ago

Setting extended_device_id = 0x43 fixed the issue.

If there are any logs you want, just let me know.

sfeakes commented 4 months ago

I'm glad moving to a different protocol fix the issue. On your config/setup, the change will mean that changing the pump RPM/GPM will be a touch slower (maybe ~2 seconds), nothing else will be effected.

I'd like to get your board rev# to understand why the iAqualink protocol is different on your setup though. For some reason the serial logger didn't capture that information. But that could be because it wasn't running long enough.

When you get chance, could you run it for a little longer. serial_logger /dev/ttyUSB0 -p 1000 should do it, no need for the -d output. OR, if the one touch protocol on your board gave the rev#, you can click the AqualinkD text in the webUI, and that should show both AqualinkD version and Board rev#.

sfeakes commented 4 months ago

@sfeakes to verify. When you state:

"In aqualinkd.conf change the extra_device_id= line from 0x30 to one of the following 0x40, 0x41, 0x42 & 0x43, making sure not to use the ID your jandy one touch panel is using"

Do you mean "extended_device_id" or is there a new setting "extra_device_id".

Yes, sorry for that, I was writing from memory on a mobile device. But you caught my mistake. It should be extended_device_id

jeffreymonroe commented 4 months ago

Here is the information on AqualinkD and the control board:

AqualinkD 2.3.7 RS-8 Combo Pool/Spa 6520 REV I

No worries regarding the mix up. I understand keeping up with potential issues. Just know I appreciate your work on this project. Let me know how I can help.

sfeakes commented 4 months ago

Thanks. This somewhat explains the problem. Rev I does not support iAqualink touch protocol, so that's why AqualinkD couldn't connect using that protocol in the extended ID. iAqualink touch protocol came out in Rev Q.

But what's strange is you control panel sending out probe message on the iaqualink touch protocol ID's ( 0x30 to 0x33 ), this is ultimately what confused AqualinkD in thinking your panel supported that protocol. And obviously trying to use those ID's confused the panel into the errors you were getting. I'll have to think about how to change serial_logger to overcome this.

jeffreymonroe commented 4 months ago

I may be an edge case due to the age of my control board. Perhaps a note about pre Rev Q controllers is all that is needed?

twemperor commented 4 months ago

I am also having difficulty setting AqualinkD to use the iAqualink touch protocol IDs, but I think I have different hardware. The label on the hardware is PDA PS8 Combo REV 7.2, which is confirmed by Serial Logger on device_id 0x60. Serial Logger claims that 0x33 is not used, although in debug I see most of the packets to that address.

PDA mode mostly works, but it's a little unreliable when more than one command is sent and I'd love to use the touch protocol. I can help beta test, debug, or otherwise help in any way.

Thanks for working on this, it's a great app!

sfeakes commented 4 months ago

Only a few versions of PDA panels support 0x33 and it’s an ID that AqualinkD does NOT support on PDA mode. So please just use the PDA id 0x60 and no extended id for the moment.

It’s something that I only recently found that some PDA only panels actually support one iAqualink Touch ID at 0x33. I will be moving the PDA mode over to support this in the future.

BTW, PDA only panels will always have issues with speed and setting multiple things at once, there is nothing I can really do about that, which is why their is a disclaimer about PDA panels and always consider this beta software for that.