LightMode 11 Default Brightness
Using 2.6.3 and LightMode 11, it is not clear what brightness it should default to when the button is clicked with a short press from the off setting. Currently, it does not turn on the lights, but simply reverts back to the off position.
If the lights are on, you can successfully change the brightness using the aqualinkd web interface. However, if you use the web interface to turn them off (with a short click), you won't be able to turn them back on.
In fact, the only way to turn them on from the off setting, is by using the iAqualink interface. Of note, that interface does require you to set a brightness when you turn them on.
I did try to turn them on using a long-press in the web interface (that would bring up the selection of duration and brightness), but that doesn't work either.
Any thoughts?
With a simple on/off click, AqualinkD will simply send the on/off to the panel. (ie no % brightness). The panel should turn on to the last % (ie 100% if there isn't one). Obviously this isn't working in your case, let me see if I can reproduce the problem you are facing.
When you turn off the light in HomeKit, I think it sets the brightness to zero. That might be the problem.
Also, I played with iAquaLink and if you click to turn it on in the app or through their web interface, it does prompt you for the brightness. There is no simple click on behavior, so it might be an expectation that it is required.
The behavior you describe used to be how it worked in iAquaLink, but doesn’t seem to be any more.
On Apr 26, 2025 at 9:49 AM -0500, sfeakes @.***>, wrote:
sfeakes left a comment (aqualinkd/AqualinkD#408) With a simple on/off click, AqualinkD will simply send the on/off to the panel. (ie no % brightness). The panel should turn on to the last % (ie 100% if there isn't one). Obviously this isn't working in your case, let me see if I can reproduce the problem you are facing. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
I made some changes in v2.6.4 that may help this. Please try and let me know results.
Tested with 2.6.5. Clicking the light tile via the web view of auqalinkd turns the tile on momentarily then back off once it polls and sees that the lights are not on. Bottom line, it does not turn on the lights.
Also, I can confirm that both in the IOS app and the web view of iAqualink (the zodiac site), if you just flip the switch for the light, it will prompt you for what brightness you want. You can't simply turn them on to the previous setting (it used to be this way, but not anymore).
If the lights are on, clicking the tile will turn them off. Also, if the lights are on and you want to change the brightness, it works as expected. It is simply the off -> on behavior, regardless of whether it is a short or long press. Long press + selection of brightness does not work in aqualinkd interface.
Can you let me know your panel rev, and post your aqualinkd.conf. I can't seem to replicate this issue at all, providing that info may help.
One other thing to try. Make sure the light is off, then turn it on by running the following command on the Pi / machine running AqualinkD. (Change Aux_5 to the actual aux/button you have the light on)
curl -X PUT -d value=40 "localhost/api/Aux_5/brightness/set"
That will use a different command sequence, just wondering of that works.
One other thing to try. Make sure the light is off, then turn it on by running the following command on the Pi / machine running AqualinkD. (Change
Aux_5to the actual aux/button you have the light on)curl -X PUT -d value=40 "localhost/api/Aux_5/brightness/set"That will use a different command sequence, just wondering of that works.
pi@aqualink:~ $ curl -v -X PUT -d value=40 "localhost/api/Aux_2/brightness/set"
- Trying ::1:80...
- connect to ::1 port 80 failed: Connection refused
- Trying 127.0.0.1:80...
- Connected to localhost (127.0.0.1) port 80 (#0)
PUT /api/Aux_2/brightness/set HTTP/1.1 Host: localhost User-Agent: curl/7.74.0 Accept: / Content-Length: 8 Content-Type: application/x-www-form-urlencoded
- upload completely sent off: 8 out of 8 bytes
- Mark bundle as not supporting multiuse < HTTP/1.1 400 Bad Request < Server: Mongoose/6.18 < Content-Type: text/plain < Content-Length: 15 <
- Connection #0 to host localhost left intact Unknown command
Can you let me know your panel rev, and post your aqualinkd.conf. I can't seem to replicate this issue at all, providing that info may help.
Aqualinkd 2.6.5 B0029226 REV T.2 RS-8 Only
socket_port=80 serial_port=/dev/ttyUSB0
log_level=NOTICE
web_directory=/var/www/aqualinkd/
panel_type=RS-8 Only (Pool or Spa)
device_id=0x08 rssa_device_id=0x48 extended_device_id=0x30 enable_iaqualink=NO
mqtt_address=localhost:1883 #mqtt_user= #mqtt_passwd= mqtt_aq_topic=aqualinkd mqtt_ha_discover_topic=homeassistant mqtt_ha_discover_use_mac=YES mqtt_timed_update=YES mqtt_convert_temp_to_c=YES #mqtt_dz_sub_topic= #mqtt_dz_pub_topic=
#dzidx_air_temp= #dzidx_pool_water_temp= #dzidx_spa_water_temp= #dzidx_SWG_percent= #dzidx_SWG_PPM= #dzidx_SWG_Status= dz_convert_temp_to_c=YES
light_programming_mode=0.001000 light_programming_initial_on=0 light_programming_initial_off=0
read_RS485_swg=NO read_RS485_ePump=YES read_RS485_vsfPump=NO read_RS485_JXi=NO read_RS485_LX=NO read_RS485_Chem=NO read_RS485_iAqualink=NO read_RS485_HeatPump=NO
force_swg=NO force_ps_setpoints=NO force_frzprotect_setpoints=YES force_chem_feeder=NO force_chiller=NO
enable_scheduler=NO event_check_use_scheduler_times=NO event_poweron_check_pump=NO event_freezeprotectoff_check_pump=NO event_boostoff_check_pump=NO event_check_pumpon_hour=0 event_check_pumpoff_hour=0 #event_booston_check_device=
ftdi_low_latency=YES
rs485_frame_delay=0
sync_panel_time=YES
display_warnings_in_web=YES
override_freeze_protect=NO
report_zero_spa_temp=NO report_zero_pool_temp=NO
pda_sleep_mode=YES
button_01_label=Filter Pump button_01_pumpIndex=1 button_01_pumpID=0x78 button_01_pumpType=JANDY ePUMP
button_02_label=Cleaner
button_03_label=Pool Lights button_03_lightMode=11
button_04_label=Sheer Descent
button_05_label=NONE
button_06_label=NONE
button_07_label=NONE
button_08_label=NONE
button_09_label=Pool Heater
button_10_label=NONE
button_11_label=NONE
Are you running in a docker?
AqualinkD will not refuse a command on HTTP, so either you are not on the local machine when you ran that command, or you are not using the default port 80.
One other thing to try. Make sure the light is off, then turn it on by running the following command on the Pi / machine running AqualinkD. (Change
Aux_5to the actual aux/button you have the light on)curl -X PUT -d value=40 "localhost/api/Aux_5/brightness/set"That will use a different command sequence, just wondering of that works.pi@aqualink:~ $ curl -v -X PUT -d value=40 "localhost/api/Aux_2/brightness/set"
- Trying ::1:80...
- connect to ::1 port 80 failed: Connection refused
- Trying 127.0.0.1:80...
- Connected to localhost (127.0.0.1) port 80 (#0)
PUT /api/Aux_2/brightness/set HTTP/1.1 Host: localhost User-Agent: curl/7.74.0 Accept: / Content-Length: 8 Content-Type: application/x-www-form-urlencoded
- upload completely sent off: 8 out of 8 bytes
- Mark bundle as not supporting multiuse < HTTP/1.1 400 Bad Request < Server: Mongoose/6.18 < Content-Type: text/plain < Content-Length: 15 <
- Connection #0 to host localhost left intact Unknown command
You can ignore the reply. AqualinkD should have tried to execute the command. If you go to aqmanager and turn on NetServices under DebugMasks you should see AqualinkD received the command and tried to execute it.
So I'm assuming it didn't turn the light on.
Thanks for posting the config. Let me see if I can replicate the issue on a T.2 panel.
switched to using the hostname just to demonstrate. See the second command below.
curl -v -X PUT -d value=40 "aqualink.local/api/Aux_2/brightness/set"
- Trying 192.168.86.232:80...
- Connected to aqualink.local (192.168.86.232) port 80 (#0)
PUT /api/Aux_2/brightness/set HTTP/1.1 Host: aqualink.local User-Agent: curl/7.74.0 Accept: / Content-Length: 8 Content-Type: application/x-www-form-urlencoded
- upload completely sent off: 8 out of 8 bytes
- Mark bundle as not supporting multiuse < HTTP/1.1 400 Bad Request < Server: Mongoose/6.18 < Content-Type: text/plain < Content-Length: 15 <
- Connection #0 to host aqualink.local left intact Unknown command
curl aqualink.local | head -n 10 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
Are you running in a docker? AqualinkD will not refuse a command on HTTP, so either you are not on the local machine when you ran that command, or you are not using the default port 80.
No. I ran the command from the host. I reran using the hostname instead of localhost. See the other comment.
You can ignore the reply. AqualinkD should have tried to execute the command. If you go to aqmanager and turn on
NetServicesunderDebugMasksyou should see AqualinkD received the command and tried to execute it. So I'm assuming it didn't turn the light on.
It did not. But I think the command is running.
Debug: NetService:Started AqualinkD Manager Debug: NetService:API: URI Request 'Aux_2/brightness/set': value 40.00 Info: NetService:Message body:'value=40' Info: NetService:URI request: : '/api/Aux_2/brightness/set '
Thanks for confirming. This may take longer to debug, I was hoping the command sequence AqualinkD would have run using the curl command would have worked.
I've been noticing that the iAqualink setting that allows you to set whether you are using a dimmer seems to randomly revert to non-dimmable.
It never happened before attempting to use the new Lightmode 11. I mention it because any time I want to test the dimmer (which sometimes works if the light is already on), I need to periodically reset this panel setting.
Thanks for the update. I have tested this on many panel versions (including T.2) and can't replicate it. I'm still looking into the issue and will update when I find something.
I've been playing with it some more and I've noticed that if you turn off the lights using IOS Home, you have to slide down the brightness to 0 (there's no ability to click off). This is what causes most of the problems because the lights will no longer respond to turning them on or setting their brightness (you have to use the iAqualink app).
If instead you turn them off with the switch (say from iAqualink), then try to turn them on from Home.app, it will work. Also, setting the brightness will work if they are on.
In HomeKit click the icon and not the button, that will turn the dimmer on / off without having to use the % slider.
Either way, with the latest software, setting the dimmer to 0 is the same as clicking the icon / turning it off directly as long as you move the % quickly enough.
I'm still looking into why this is happening for you, but still can't replicate it.
I use Home.app scenes to set the brightness at different times.
Sunset -> 100% 10 pm -> 33% 12 pm -> Off
The current behavior is that the lights some on at Sunset at 33%.
Now, if I manually set the brightness or turn them off by setting the brightness to 0, all bets are off. At sunset, they’ll probably stay off.
I’ve noticed that the iAqualink web interface behavior is such that when you turn it on and it prompts you for the brightness, it turns them on to 100% before you make your selection (then it sets them to what you selected).
Perhaps there is missing step here.
Jason On Jun 16, 2025 at 6:40 PM -0500, sfeakes @.***>, wrote:
sfeakes left a comment (aqualinkd/AqualinkD#408) In HomeKit click the icon and not the button, that will turn the dimmer on / off without having to use the % slider. Either way, with the latest software, setting the dimmer to 0 is the same as clicking the icon / turning it off directly as long as you move the % quickly enough. I'm still looking into why this is happening for you, but still can't replicate it. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
browned I've been playing with it some more and I've noticed that if you turn off the lights using IOS Home, you have to slide down the brightness to 0 (there's no ability to click off).
sfeakes In HomeKit click the icon and not the button, that will turn the dimmer on / off without having to use the % slider.
Did you try this ? In the previous reply you were saying that sliding the slider to 0 to turn off caused the problem, and that's the only way you can turn them off. You DON'T have to do that in the Home.app, you can turn them off without touching the % slider.
BTW, AqualinkD sets the brightness to 100 to turn them on, then sets to the request %. It just does it a LOT faster than iAqualink.
So you said HomeKit, but I think you meant Homebridge. I tested it repeatedly through its web UI and while it seemed to work, after several cycles it stops cycling the lights and incorrectly reports that they are on when they aren’t.
In the IOS Home.app (HomeKit) there is no way to turn on a dimmable switch without first setting the brightness.
This is also the behavior of the web and IOS versions of iAquaLink.
The behavior is fairly inconsistent. I tested several times and I can also get it into a state where Homebridge reports the lights are off when they are on.
I then decided to eliminate the middleman and went straight to the Aqualinkd web UI. Same behavior. Once it gets into a bad state, the lights stop responding. It doesn’t seem to suffer from misreporting the state, but it will eventually lose the ability to cycle the lights.
The only way to clear the condition is to cycle the lights with the iAquaLink interface.
Jason On Jun 17, 2025 at 5:32 PM -0500, sfeakes @.***>, wrote:
sfeakes left a comment (aqualinkd/AqualinkD#408)
browned I've been playing with it some more and I've noticed that if you turn off the lights using IOS Home, you have to slide down the brightness to 0 (there's no ability to click off). sfeakes In HomeKit click the icon and not the button, that will turn the dimmer on / off without having to use the % slider. Did you try this ? In the previous reply you were saying that sliding the slider to 0 to turn off caused the problem, and that's the only way you can turn them off. You DON'T have to do that in the Home.app, you can turn them off without touching the % slider. BTW, AqualinkD sets the brightness to 100 to turn them on, then sets to the request %. It just does it a LOT faster than iAqualink. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
In the IOS Home.app (HomeKit) there is no way to turn on a dimmable switch without first setting the brightness.
I meant HomeKit (The default iOS Home app). There is a way to do this as I mentioned previously. click the icon not the tile. (Ie the bulb if that's what the icon is, not the text with white background)
You are correct. I did not know you could do that in HomeKit. On Jun 17, 2025 at 7:04 PM -0500, sfeakes @.***>, wrote:
sfeakes left a comment (aqualinkd/AqualinkD#408)
In the IOS Home.app (HomeKit) there is no way to turn on a dimmable switch without first setting the brightness. I meant HomeKit (The default iOS Home app). There is a way to do this as I mentioned previously. click the icon not the tile. (Ie the bulb if that's what the icon is, not the text with white background) Screenshot.2025-06-17.at.6.49.43.PM.png (view on web) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
Same issue. After repeated cycling and playing with brightness you lose the ability to cycle. Clicking the bulb icon sets it to the previous brightness but then reverts to off after piolling. If you try this several times, it will eventually just stay lit even through the lights are off.
Jason On Jun 17, 2025 at 5:32 PM -0500, sfeakes @.***>, wrote:
sfeakes left a comment (aqualinkd/AqualinkD#408)
browned I've been playing with it some more and I've noticed that if you turn off the lights using IOS Home, you have to slide down the brightness to 0 (there's no ability to click off). sfeakes In HomeKit click the icon and not the button, that will turn the dimmer on / off without having to use the % slider. Did you try this ? In the previous reply you were saying that sliding the slider to 0 to turn off caused the problem, and that's the only way you can turn them off. You DON'T have to do that in the Home.app, you can turn them off without touching the % slider. BTW, AqualinkD sets the brightness to 100 to turn them on, then sets to the request %. It just does it a LOT faster than iAqualink. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
Same issue. After repeated cycling and playing with brightness you lose the ability to cycle. Clicking the bulb icon sets it to the previous brightness but then reverts to off after piolling. If you try this several times, it will eventually just stay lit even through the lights are off.
Tested in 2.6.9 - same result.
Thanks for testing / letting me know the changes didn’t work. I’ll add some other changes in the next release.
@brownjd I think I've finally found the issue. Looks like Jandy Panel Rev T.2 (maybe others) has a bug for the light dimmers when using the RS serial protocol. AqualinkD can now detect a "stuck" light, reset it and continue as normal. It will be slightly slower turning ON a light than previously, and since it now uses AllButton protocol to turn on the light, it will only turn on to 25/50/75/100, then change to selected value if not one of those 25% increments.
Thanks!
I did some limited testing with HomeKit scenes that automate turning them on and off with various brightness settings.
Short version - way more reliable. I’ll keep testing, but so far so good. I am able to set the brightness outside of the 25% increments using HomeKit, 77% for example.
The turn on switch vs specifying the brightness behavior does not always seem to pick up the last setting, but I’ll keep testing to make sure.
How did you know about the hardware bug without being able to test on any hardware?
Jason On Aug 31, 2025 at 5:39 PM -0500, sfeakes @.***>, wrote:
sfeakes left a comment (aqualinkd/AqualinkD#408) @brownjd I think I've finally found the issue. Looks like Jandy Panel Rev T.2 (maybe others) has a bug for the light dimmers when using the RS serial protocol. AqualinkD can now detect a "stuck" light, reset it and continue as normal. It will be slightly slower turning ON a light than previously, and since it now uses AllButton protocol to turn on the light, it will only turn on to 25/50/75/100, then change to selected value if not one of those 25% increments. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>
Thanks, the code needs a LOT of cleanup, but wanted to see if this fixed it for you first.
When it doesn't pick the last brightness, look in the log for the following line.
AllButton: Light Programming detected Jandy panel light% bug, re-setting to 100%
It may have had to re-set the light, if which case it will loose the last setting and defaults to 100%
If that's the case, I could make it default to the closest 25% increment to the last setting if that's in AqualinkD's history (ie AqualinkD hasn't been restarted).
I did some research and it looks like there is also a bug with preserving the dimmer setting if it is set through iAqualink. I've noticed it will lose the setting that indicates that lights are on a dimmer. It seems to be pretty random, but I'm wondering if it happens with momentary power outages. The suggested fix is to make the setting with a wired controller (All Button or OneTouch/Touch) or use a Jandy Service tool. Does aqualinkd have an ability to simulate a wired controller? If so, here is what I need to do:
At the controller:
- Press Menu → System Setup.
- Enter the service code (6666).
- Go to Assign Circuit Functions (sometimes under “Circuit Setup”).
- Pick the AUX circuit wired to your pool light.
- Set its function = Dimmer.
- Exit and save — that writes the config back to the RS board.
Can I do this with aqualinkd?
The only instructions I have with using the Jandy tool are:
- This is a handheld programmer your pool tech plugs into the RS board’s red 4-pin RS485 service port.
- It exposes all configuration menus, including assigning circuits as Dimmer.
- You navigate through text menus on the service tool and save the config.
From my diagnosis The bug seems to be with the Jandy panel firmware rev T (maybe some others). So not surprising iAqualink has a similar issue.
When this happens from iAqualink, if you turn the light on with AqualinkD see if it detects the light is stuck and fixes it for you. I believe it will.
-
Yes AqualinkD simulates wired controllers, look at the simulator page.
-
BTW I don’t think you don’t need to go through the steps you mentioned to reset the light, the Allbutton protocol can do that quicker and easier. (Press the light button-> should display 0 or negative number if stuck-> press left or right to get the % you want -> hit enter. That should reset far quicker than the method you mentioned.
Edit. The above will only work with the all button keypad (or protocol), and if when you first press the light button you get a number other than 0 or negative, then it’s either not stuck or a different bug.