Hayward Omnilogic Pool Automation Binding

@matchews Howdy! Seems like a lot of good work here. Running stable OH 3.3.0. Installed this binding fine, but when I put in my creds it says unable to login to hayward servers. Anything with the API link or other things I should know about? Where can I get logs/telemetry for this binding?

Make sure you are entering your username, not your email address associated with the Hayward account. The endpoint url should be set to its default:

https://www.haywardomnilogic.com/HAAPI/HomeAutomation/API.ashx

Here is the console command to set the logging level:

log:set TRACE org.openhab.binding.haywardomnilogic

That’s what I was doing. The API is reporting a message format failure. See below. Any ideas?

16:23:25.824 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'haywardomnilogic:bridge:8621af6d78' changed from UNINITIALIZED to INITIALIZING
16:23:27.157 [TRACE] [internal.handler.HaywardBridgeHandler] - Hayward Connection thing:  login Hayward http command: <?xml version="1.0" encoding="utf-8"?><Request><Name>Login</Name><Parameters><Parameter name="UserName" dataType="String">g*******7</Parameter><Parameter name="Password" dataType="String">*******</Parameter></Parameters></Request>
16:23:27.163 [TRACE] [internal.handler.HaywardBridgeHandler] - Hayward Connection thing:  login Hayward http response: The message format is wrong. <Response><Name>Unknown</Name><Parameters><Parameter dataType="int" name="Status">1</Parameter><Parameter dataType="int" name="StatusMessage">The message format is wrong.</Parameter></Parameters></Response>
16:23:27.173 [DEBUG] [internal.handler.HaywardBridgeHandler] - Hayward Connection thing: Login XML response: <Response><Name>Unknown</Name><Parameters><Parameter dataType="int" name="Status">1</Parameter><Parameter dataType="int" name="StatusMessage">The message format is wrong.</Parameter></Parameters></Response>
16:23:27.185 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'haywardomnilogic:bridge:8621af6d78' changed from INITIALIZING to OFFLINE (COMMUNICATION_ERROR): Unable to Login to Hayward's server```

Greg,
The outgoing login http command is identical to mine (except the username and password). What version of the binding are you running? Which exact Hayward controller do you have? What firmware are running on the Hayward controller? Are there any special characters in your username or password?

Thanks

@matchews Ok. First thanks for the PM, I actually really appreciate the responsiveness, and hope I can match you in attention.

So to answer your questions:

  1. Version of binding: I can’t check this at the moment because I’m actually in the process of rebuilding openhab for another reason, but it’s the version from the repository for a stable, vanilla openhab 3.3 install on a raspberry pi according to the apt-package instructions on the website. Next time I have it up and running I’ll grab the version
  2. I have the OG Omnilogic Panel (HLBASE) connected via ethernet.
  3. I’m running MSP firmware 3.1.0-b35069 and MP firmware 3.0.0.
  4. Yes there are two underscores in my username. FWIW omnilogic website login works fine, although it nags me to login with email when I log into the portal.

Looks like Hayward has firmware version up to 3.2.0 for MP and 4.4.1 for MSP. I can upgrade if needed, but honestly I think it’s the call to the website itself, as there seems to be a login error in the API, but you’d know better than me.

I tried to add some underscores into my username and was not able to reproduce your login response. However, I was able to reproduce your response message (The message format is wrong) by adding an ampersand to the password. I ask again, do you have any special characters in your password? Please note that the API I am using is different than the API the Hayward application uses. This could easily be an oversight in this API and would explain why the Hayward application/API is working.

Let me know when you have your OpenHab instance back online and if the problem reproduces with a clean password. I’m also wondering if there was some underlying issue in your old OpenHab instance that was causing this. Yes, I’m reaching.

Here is my Login Request compared to yours. They are identical (other than the username and password).

10:32:15.897 [TRACE] [internal.handler.HaywardBridgeHandler] - Hayward Connection thing:  login Hayward http command: <?xml version="1.0" encoding="utf-8"?><Request><Name>Login</Name><Parameters><Parameter name="UserName" dataType="String">********</Parameter><Parameter name="Password" dataType="String">**********</Parameter></Parameters></Request>
16:23:27.157 [TRACE] [internal.handler.HaywardBridgeHandler] - Hayward Connection thing:  login Hayward http command: <?xml version="1.0" encoding="utf-8"?><Request><Name>Login</Name><Parameters><Parameter name="UserName" dataType="String">g******7</Parameter><Parameter name="Password" dataType="String">**********</Parameter></Parameters></Request>

Thanks

Thank you so much for the response. There is indeed an ampersand in my password. I will change it and try again as my Openhab has now been rebuilt. Any ideas which special chars are not allowed?

@matchews Hi there. It was the ampersand in my password causing the issue. After I removed them it worked great. Thanks for helping out! I appreciate it.

@matchews I hope you’re doing well. I noticed a few months ago that at some point a software upgrade on the omnilogic controller and app allow adjustment of brightness of the pool lights and was wondering if you’ve incorporated this into a thing/channel in the binding.

Here’s the applicable part of my getTelemetryData response:

<ColorLogic-Light systemId="8" lightState="1" currentShow="10" speed="4" brightness="4" />

No worries if not, I know you’re busy, but didn’t want to be missing out if the binding is updated since the one I have. I have binding version 3.4.0.202207231406, and it’s manually loaded, acquired from you, not from the binding library. Thank you!

Here is my getMSPconfig:

2023-03-28 21:07:38.941 [TRACE] [nternal.handler.HaywardBridgeHandler] - Hayward Connection thing:  getMspConfig Hayward http response: OK <Response><MSPConfig><System><Msp-Vsp-Speed-Format>Percent</Msp-Vsp-Speed-Format><Msp-Time-Format>12 Hour Format</Msp-Time-Format><Units>Standard</Units><Msp-Chlor-Display>Salt</Msp-Chlor-Display><Msp-Language>English</Msp-Language><UI-Display-Mode>standard</UI-Display-Mode><UI-MoodColor-Enabled>Yes</UI-MoodColor-Enabled><UI-Heater-SimpleMode>Yes</UI-Heater-SimpleMode><UI-Filter-SimpleMode>Yes</UI-Filter-SimpleMode><UI-Lights-SimpleMode>Yes</UI-Lights-SimpleMode></System><Backyard>
        MSP Configuration
        <System-Id>0</System-Id><Name>Backyard</Name><Service-Mode-Timeout>0</Service-Mode-Timeout><Sensor><System-Id>17</System-Id><Name>AirSensor</Name><Type>SENSOR_AIR_TEMP</Type><Units>UNITS_FAHRENHEIT</Units></Sensor><Body-of-water>
            01
            <System-Id>1</System-Id><Name>Pool</Name><Type>BOW_POOL</Type><Shared-Type>BOW_SHARED_EQUIPMENT</Shared-Type><Shared-Priority>SHARED_EQUIPMENT_LOW_PRIORITY</Shared-Priority><Shared-Equipment-System-ID>2</Shared-Equipment-System-ID><Supports-Spillover>no</Supports-Spillover><Size-In-Gallons>0</Size-In-Gallons><Filter><System-Id>3</System-Id><Name>Filter Pump</Name><Shared-Type>BOW_SHARED_EQUIPMENT</Shared-Type><Filter-Type>FMT_VARIABLE_SPEED_PUMP</Filter-Type><Max-Pump-Speed>100</Max-Pump-Speed><Min-Pump-Speed>50</Min-Pump-Speed><Max-Pump-RPM>3450</Max-Pump-RPM><Min-Pump-RPM>1725</Min-Pump-RPM><Priming-Enabled>no</Priming-Enabled><Vsp-Low-Pump-Speed>50</Vsp-Low-Pump-Speed><Vsp-Medium-Pump-Speed>75</Vsp-Medium-Pump-Speed><Vsp-High-Pump-Speed>100</Vsp-High-Pump-Speed><Vsp-Custom-Pump-Speed>65</Vsp-Custom-Pump-Speed><Freeze-Protect-Override-Interval>7200</Freeze-Protect-Override-Interval></Filter><Heater><System-Id>4</System-Id><Shared-Type>BOW_SHARED_EQUIPMENT</Shared-Type><Enabled>no</Enabled><Current-Set-Point>68</Current-Set-Point><Max-Water-Temp>104</Max-Water-Temp><Min-Settable-Water-Temp>55</Min-Settable-Water-Temp><Max-Settable-Water-Temp>104</Max-Settable-Water-Temp><Operation>
                    PEO_HEATER_EQUIPMENT
                    <Heater-Equipment><System-Id>5</System-Id><Name>HEATER</Name><Type>PET_HEATER</Type><Heater-Type>HTR_GAS</Heater-Type><Enabled>yes</Enabled><Priority>HTR_PRIORITY_1</Priority><Run-For-Priority>HTR_MAINTAINS_PRIORITY_FOR_AS_LONG_AS_VALID</Run-For-Priority><Shared-Equipment-System-ID>13</Shared-Equipment-System-ID></Heater-Equipment></Operation></Heater><Chlorinator><System-Id>6</System-Id><Name>Chlorinator</Name><Shared-Type>BOW_SHARED_EQUIPMENT</Shared-Type><Enabled>yes</Enabled><Mode>CHLOR_OP_MODE_TIMED</Mode><Timed-Percent>65</Timed-Percent><SuperChlor-Timeout>36</SuperChlor-Timeout><Cell-Type>CELL_TYPE_T15</Cell-Type><Dispenser-Type>SALT_DISPENSING</Dispenser-Type><Operation>
                    PEO_CHLORINATOR_EQUIPMENT
                    <Chlorinator-Equipment><System-Id>7</System-Id><Name>Chlorinator1</Name><Type>PET_CHLORINATOR</Type><Chlorinator-Type>CHLOR_TYPE_MAIN_PANEL</Chlorinator-Type><Enabled>yes</Enabled></Chlorinator-Equipment></Operation></Chlorinator><ColorLogic-Light><System-Id>8</System-Id><Name>LIGHTS</Name><Type>COLOR_LOGIC_UCL</Type><V2-Active>yes</V2-Active></ColorLogic-Light><Pump><System-Id>9</System-Id><Name>FOUNTAINS</Name><Type>PMP_VARIABLE_SPEED_PUMP</Type><Function>PMP_LAMINARS</Function><Priming-Enabled>no</Priming-Enabled><Max-Pump-RPM>2500</Max-Pump-RPM><Min-Pump-RPM>1200</Min-Pump-RPM><Min-Pump-Speed>48</Min-Pump-Speed><Max-Pump-Speed>75</Max-Pump-Speed><Vsp-Medium-Pump-Speed>50</Vsp-Medium-Pump-Speed><Vsp-Custom-Pump-Speed>0</Vsp-Custom-Pump-Speed><Vsp-High-Pump-Speed>75</Vsp-High-Pump-Speed><Vsp-Low-Pump-Speed>48</Vsp-Low-Pump-Speed></Pump><Sensor><System-Id>18</System-Id><Name>WaterSensor</Name><Type>SENSOR_WATER_TEMP</Type><Units>UNITS_FAHRENHEIT</Units></Sensor><Sensor><System-Id>20</System-Id><Name>FlowSensor</Name><Type>SENSOR_FLOW</Type><Units>UNITS_ACTIVE_INACTIVE</Units></Sensor></Body-of-water><Body-of-water>
            02
            <System-Id>2</System-Id><Name>Spa</Name><Type>BOW_SPA</Type><Shared-Type>BOW_SHARED_EQUIPMENT</Shared-Type><Shared-Priority>SHARED_EQUIPMENT_HIGH_PRIORITY</Shared-Priority><Shared-Equipment-System-ID>1</Shared-Equipment-System-ID><Supports-Spillover>no</Supports-Spillover><Size-In-Gallons>0</Size-In-Gallons><Filter><System-Id>11</System-Id><Name>Filter Pump</Name><Shared-Type>BOW_SHARED_EQUIPMENT</Shared-Type><Filter-Type>FMT_VARIABLE_SPEED_PUMP</Filter-Type><Max-Pump-Speed>100</Max-Pump-Speed><Min-Pump-Speed>50</Min-Pump-Speed><Max-Pump-RPM>3450</Max-Pump-RPM><Min-Pump-RPM>1725</Min-Pump-RPM><Priming-Enabled>no</Priming-Enabled><Vsp-Low-Pump-Speed>50</Vsp-Low-Pump-Speed><Vsp-Medium-Pump-Speed>75</Vsp-Medium-Pump-Speed><Vsp-High-Pump-Speed>100</Vsp-High-Pump-Speed><Vsp-Custom-Pump-Speed>100</Vsp-Custom-Pump-Speed><Freeze-Protect-Override-Interval>7200</Freeze-Protect-Override-Interval></Filter><Heater><System-Id>12</System-Id><Shared-Type>BOW_SHARED_EQUIPMENT</Shared-Type><Enabled>no</Enabled><Current-Set-Point>70</Current-Set-Point><SolarSetPoint>99</SolarSetPoint><Max-Water-Temp>104</Max-Water-Temp><Min-Settable-Water-Temp>55</Min-Settable-Water-Temp><Max-Settable-Water-Temp>104</Max-Settable-Water-Temp><Operation>
                    PEO_HEATER_EQUIPMENT
                    <Heater-Equipment><System-Id>13</System-Id><Name>HEATER</Name><Type>PET_HEATER</Type><Heater-Type>HTR_GAS</Heater-Type><Enabled>yes</Enabled><Priority>HTR_PRIORITY_1</Priority><Run-For-Priority>HTR_MAINTAINS_PRIORITY_FOR_AS_LONG_AS_VALID</Run-For-Priority><Shared-Equipment-System-ID>5</Shared-Equipment-System-ID></Heater-Equipment></Operation></Heater><Chlorinator><System-Id>14</System-Id><Name>Chlorinator</Name><Shared-Type>BOW_SHARED_EQUIPMENT</Shared-Type><Enabled>yes</Enabled><Mode>CHLOR_OP_MODE_TIMED</Mode><Timed-Percent>5</Timed-Percent><SuperChlor-Timeout>24</SuperChlor-Timeout><Cell-Type>CELL_TYPE_T15</Cell-Type><Dispenser-Type>SALT_DISPENSING</Dispenser-Type><Operation>
                    PEO_CHLORINATOR_EQUIPMENT
                    <Chlorinator-Equipment><System-Id>15</System-Id><Name>Chlorinator1</Name><Type>PET_CHLORINATOR</Type><Chlorinator-Type>CHLOR_TYPE_MAIN_PANEL</Chlorinator-Type><Enabled>yes</Enabled></Chlorinator-Equipment></Operation></Chlorinator><Pump><System-Id>16</System-Id><Name>SPA JETS</Name><Type>PMP_SINGLE_SPEED</Type><Function>PMP_LAMINARS</Function><Priming-Enabled>no</Priming-Enabled><Max-Pump-RPM>3450</Max-Pump-RPM><Min-Pump-RPM>600</Min-Pump-RPM><Min-Pump-Speed>18</Min-Pump-Speed><Max-Pump-Speed>100</Max-Pump-Speed><Vsp-Medium-Pump-Speed>100</Vsp-Medium-Pump-Speed><Vsp-Custom-Pump-Speed>100</Vsp-Custom-Pump-Speed><Vsp-High-Pump-Speed>100</Vsp-High-Pump-Speed><Vsp-Low-Pump-Speed>100</Vsp-Low-Pump-Speed></Pump><Sensor><System-Id>19</System-Id><Name>WaterSensor</Name><Type>SENSOR_WATER_TEMP</Type><Units>UNITS_FAHRENHEIT</Units></Sensor><Sensor><System-Id>21</System-Id><Name>FlowSensor</Name><Type>SENSOR_FLOW</Type><Units>UNITS_ACTIVE_INACTIVE</Units></Sensor></Body-of-water></Backyard><Schedules><sche><bow-system-id>1</bow-system-id><equipment-id>6</equipment-id><schedule-system-id>38</schedule-system-id><event>164</event><data>100</data><enabled>1</enabled><start-minute>0</start-minute><start-hour>8</start-hour><end-minute>0</end-minute><end-hour>17</end-hour><days-active>21</days-active><recurring>1</recurring></sche><sche><bow-system-id>1</bow-system-id><equipment-id>3</equipment-id><schedule-system-id>39</schedule-system-id><event>164</event><data>65</data><enabled>1</enabled><start-minute>0</start-minute><start-hour>7</start-hour><end-minute>0</end-minute><end-hour>22</end-hour><days-active>127</days-active><recurring>1</recurring></sche></Schedules><Favorites><Favorite><System-Id>28</System-Id><Index-Id>1</Index-Id><EquipmentID-Or-ThemeID>9</EquipmentID-Or-ThemeID><Sequence>0</Sequence><Data>0</Data><SimpleModeEnabled>1</SimpleModeEnabled></Favorite><Favorite><System-Id>33</System-Id><Index-Id>2</Index-Id><EquipmentID-Or-ThemeID>11</EquipmentID-Or-ThemeID><Sequence>1</Sequence><Data>268435440</Data><SimpleModeEnabled>1</SimpleModeEnabled></Favorite><Favorite><System-Id>35</System-Id><Index-Id>3</Index-Id><EquipmentID-Or-ThemeID>34</EquipmentID-Or-ThemeID><Sequence>2</Sequence><Data>268435455</Data><SimpleModeEnabled>1</SimpleModeEnabled></Favorite><Favorite><System-Id>37</System-Id><Index-Id>4</Index-Id><EquipmentID-Or-ThemeID>36</EquipmentID-Or-ThemeID><Sequence>3</Sequence><Data>268435455</Data><SimpleModeEnabled>1</SimpleModeEnabled></Favorite></Favorites><Groups><Group><System-Id>34</System-Id><Name>Pool, Low</Name><Icon-Id>0</Icon-Id><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="EquipmentID" dataType="int">3</Parameter><Parameter name="Data" dataType="int">50</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request><Request><Name>SetHeaterScheduleCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">4</Parameter><Parameter name="Temp" dataType="int">80</Parameter><Parameter name="IsCountDownTimer" dataType="bool">0</Parameter><Parameter name="StartTimeHours" dataType="int">0</Parameter><Parameter name="StartTimeMinutes" dataType="int">0</Parameter><Parameter name="EndTimeHours" dataType="int">0</Parameter><Parameter name="EndTimeMinutes" dataType="int">0</Parameter><Parameter name="DaysActive" dataType="int">0</Parameter><Parameter name="Recurring" dataType="bool">0</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterPriorityCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID1" dataType="int">5</Parameter><Parameter name="HeaterID2" dataType="int">-1</Parameter><Parameter name="HeaterID3" dataType="int">-1</Parameter><Parameter name="HeaterID4" dataType="int">-1</Parameter><Parameter name="HeaterID5" dataType="int">-1</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterMaintainPriorityCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">4</Parameter><Parameter name="Priority1MaintainFor" dataType="byte">24</Parameter><Parameter name="Priority2MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority3MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority4MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority5MaintainFor" dataType="byte">255</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterEnable</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">4</Parameter><Parameter name="Enabled" dataType="int">0</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterEnable</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">5</Parameter><Parameter name="Enabled" dataType="int">1</Parameter></Parameters></Request><Request><Name>SetSolarScheduleCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">4</Parameter><Parameter name="Temp" dataType="int">81</Parameter><Parameter name="IsCountDownTimer" dataType="bool">0</Parameter><Parameter name="StartTimeHours" dataType="int">0</Parameter><Parameter name="StartTimeMinutes" dataType="int">0</Parameter><Parameter name="EndTimeHours" dataType="int">0</Parameter><Parameter name="EndTimeMinutes" dataType="int">0</Parameter><Parameter name="DaysActive" dataType="int">0</Parameter><Parameter name="Recurring" dataType="bool">0</Parameter></Parameters></Request><Request><Name>SetUISuperCHLORCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="EquipmentID" dataType="int">6</Parameter><Parameter name="IsOn" dataType="int">0</Parameter></Parameters></Request><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="EquipmentID" dataType="int">8</Parameter><Parameter name="Data" dataType="int">263171</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="EquipmentID" dataType="int">9</Parameter><Parameter name="Data" dataType="int">0</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="EquipmentID" dataType="int">11</Parameter><Parameter name="Data" dataType="int">0</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request><Request><Name>SetHeaterScheduleCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">12</Parameter><Parameter name="Temp" dataType="int">75</Parameter><Parameter name="IsCountDownTimer" dataType="bool">0</Parameter><Parameter name="StartTimeHours" dataType="int">0</Parameter><Parameter name="StartTimeMinutes" dataType="int">0</Parameter><Parameter name="EndTimeHours" dataType="int">0</Parameter><Parameter name="EndTimeMinutes" dataType="int">0</Parameter><Parameter name="DaysActive" dataType="int">0</Parameter><Parameter name="Recurring" dataType="bool">0</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterPriorityCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID1" dataType="int">13</Parameter><Parameter name="HeaterID2" dataType="int">-1</Parameter><Parameter name="HeaterID3" dataType="int">-1</Parameter><Parameter name="HeaterID4" dataType="int">-1</Parameter><Parameter name="HeaterID5" dataType="int">-1</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterMaintainPriorityCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">12</Parameter><Parameter name="Priority1MaintainFor" dataType="byte">24</Parameter><Parameter name="Priority2MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority3MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority4MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority5MaintainFor" dataType="byte">255</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterEnable</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">12</Parameter><Parameter name="Enabled" dataType="int">1</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterEnable</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">13</Parameter><Parameter name="Enabled" dataType="int">1</Parameter></Parameters></Request><Request><Name>SetSolarScheduleCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">12</Parameter><Parameter name="Temp" dataType="int">100</Parameter><Parameter name="IsCountDownTimer" dataType="bool">0</Parameter><Parameter name="StartTimeHours" dataType="int">0</Parameter><Parameter name="StartTimeMinutes" dataType="int">0</Parameter><Parameter name="EndTimeHours" dataType="int">0</Parameter><Parameter name="EndTimeMinutes" dataType="int">0</Parameter><Parameter name="DaysActive" dataType="int">0</Parameter><Parameter name="Recurring" dataType="bool">0</Parameter></Parameters></Request><Request><Name>SetUISuperCHLORCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="EquipmentID" dataType="int">14</Parameter><Parameter name="IsOn" dataType="int">0</Parameter></Parameters></Request><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="EquipmentID" dataType="int">16</Parameter><Parameter name="Data" dataType="int">0</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request></Group><Group><System-Id>36</System-Id><Name>Pool, Med</Name><Icon-Id>0</Icon-Id><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="EquipmentID" dataType="int">3</Parameter><Parameter name="Data" dataType="int">75</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request><Request><Name>SetHeaterScheduleCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">4</Parameter><Parameter name="Temp" dataType="int">80</Parameter><Parameter name="IsCountDownTimer" dataType="bool">0</Parameter><Parameter name="StartTimeHours" dataType="int">0</Parameter><Parameter name="StartTimeMinutes" dataType="int">0</Parameter><Parameter name="EndTimeHours" dataType="int">0</Parameter><Parameter name="EndTimeMinutes" dataType="int">0</Parameter><Parameter name="DaysActive" dataType="int">0</Parameter><Parameter name="Recurring" dataType="bool">0</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterPriorityCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID1" dataType="int">5</Parameter><Parameter name="HeaterID2" dataType="int">-1</Parameter><Parameter name="HeaterID3" dataType="int">-1</Parameter><Parameter name="HeaterID4" dataType="int">-1</Parameter><Parameter name="HeaterID5" dataType="int">-1</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterMaintainPriorityCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">4</Parameter><Parameter name="Priority1MaintainFor" dataType="byte">24</Parameter><Parameter name="Priority2MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority3MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority4MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority5MaintainFor" dataType="byte">255</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterEnable</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">4</Parameter><Parameter name="Enabled" dataType="int">0</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterEnable</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">5</Parameter><Parameter name="Enabled" dataType="int">1</Parameter></Parameters></Request><Request><Name>SetSolarScheduleCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="HeaterID" dataType="int">4</Parameter><Parameter name="Temp" dataType="int">81</Parameter><Parameter name="IsCountDownTimer" dataType="bool">0</Parameter><Parameter name="StartTimeHours" dataType="int">0</Parameter><Parameter name="StartTimeMinutes" dataType="int">0</Parameter><Parameter name="EndTimeHours" dataType="int">0</Parameter><Parameter name="EndTimeMinutes" dataType="int">0</Parameter><Parameter name="DaysActive" dataType="int">0</Parameter><Parameter name="Recurring" dataType="bool">0</Parameter></Parameters></Request><Request><Name>SetUISuperCHLORCmd</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="EquipmentID" dataType="int">6</Parameter><Parameter name="IsOn" dataType="int">0</Parameter></Parameters></Request><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="EquipmentID" dataType="int">8</Parameter><Parameter name="Data" dataType="int">263171</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">1</Parameter><Parameter name="EquipmentID" dataType="int">9</Parameter><Parameter name="Data" dataType="int">0</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="EquipmentID" dataType="int">11</Parameter><Parameter name="Data" dataType="int">0</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request><Request><Name>SetHeaterScheduleCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">12</Parameter><Parameter name="Temp" dataType="int">75</Parameter><Parameter name="IsCountDownTimer" dataType="bool">0</Parameter><Parameter name="StartTimeHours" dataType="int">0</Parameter><Parameter name="StartTimeMinutes" dataType="int">0</Parameter><Parameter name="EndTimeHours" dataType="int">0</Parameter><Parameter name="EndTimeMinutes" dataType="int">0</Parameter><Parameter name="DaysActive" dataType="int">0</Parameter><Parameter name="Recurring" dataType="bool">0</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterPriorityCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID1" dataType="int">13</Parameter><Parameter name="HeaterID2" dataType="int">-1</Parameter><Parameter name="HeaterID3" dataType="int">-1</Parameter><Parameter name="HeaterID4" dataType="int">-1</Parameter><Parameter name="HeaterID5" dataType="int">-1</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterMaintainPriorityCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">12</Parameter><Parameter name="Priority1MaintainFor" dataType="byte">24</Parameter><Parameter name="Priority2MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority3MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority4MaintainFor" dataType="byte">255</Parameter><Parameter name="Priority5MaintainFor" dataType="byte">255</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterEnable</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">12</Parameter><Parameter name="Enabled" dataType="int">1</Parameter></Parameters></Request><Request><Name>SetUITemporaryHeaterEnable</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">13</Parameter><Parameter name="Enabled" dataType="int">1</Parameter></Parameters></Request><Request><Name>SetSolarScheduleCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="HeaterID" dataType="int">12</Parameter><Parameter name="Temp" dataType="int">100</Parameter><Parameter name="IsCountDownTimer" dataType="bool">0</Parameter><Parameter name="StartTimeHours" dataType="int">0</Parameter><Parameter name="StartTimeMinutes" dataType="int">0</Parameter><Parameter name="EndTimeHours" dataType="int">0</Parameter><Parameter name="EndTimeMinutes" dataType="int">0</Parameter><Parameter name="DaysActive" dataType="int">0</Parameter><Parameter name="Recurring" dataType="bool">0</Parameter></Parameters></Request><Request><Name>SetUISuperCHLORCmd</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="EquipmentID" dataType="int">14</Parameter><Parameter name="IsOn" dataType="int">0</Parameter></Parameters></Request><Request><Name>TurnOnOffForGroup</Name><Parameters><Parameter name="PoolID" dataType="int">2</Parameter><Parameter name="EquipmentID" dataType="int">16</Parameter><Parameter name="Data" dataType="int">0</Parameter><Parameter name="LightState" dataType="int">0</Parameter></Parameters></Request></Group></Groups><Terminals><Terminal><Name>Spa</Name><Type>TRM_SPA_SIDE_SIX_BUTTON</Type><Filter><System-Id>11</System-Id></Filter><Heater><System-Id>12</System-Id></Heater><Button><Button-Id>0</Button-Id><System-Id>16</System-Id><Button-CtrlType>CTRL_TYPE_EQUIP</Button-CtrlType></Button><Button><Button-Id>1</Button-Id><System-Id>28</System-Id><Button-CtrlType>CTRL_TYPE_FAVORITE</Button-CtrlType></Button><Button><Button-Id>2</Button-Id><System-Id>-1</System-Id><Button-CtrlType>CTRL_TYPE_UNCONFIGURED</Button-CtrlType></Button></Terminal></Terminals></MSPConfig><MSPAPI version="0.4" latestversion="0.4"><Device-APIs><API System-Id="34" OpType="ON_OFF" ref="RunGroupCmd" ThemeID="34" IsOn="API::STATUS::Group::groupState" /><API System-Id="36" OpType="ON_OFF" ref="RunGroupCmd" ThemeID="36" IsOn="API::STATUS::Group::groupState" /><API System-Id="3" OpType="ON_OFF" ref="SetUIEquipmentCmd" EquipmentID="3" IsOn="API::STATUS::Filter::filterSpeed" /><API System-Id="4" OpType="ON_OFF" ref="SetHeaterEnable" HeaterID="4" /><API System-Id="4" OpType="SETPOINT" ref="SetUIHeaterCmd" HeaterID="4" Temp="API::STATUS::VirtualHeater::Current-Set-Point" /><API System-Id="6" OpType="ON_OFF" ref="SetCHLOREnable" Enabled="API::CONFIG::Chlorinator::Enabled" /><API System-Id="6" OpType="CHL_PARAMETERS" ref="SetCHLORParams" ChlorID="6" OpMode="API::CONFIG::Chlorinator::Mode" CellType="API::CONFIG::Chlorinator::Cell-Type" TimedPercent="API::CONFIG::Chlorinator::Timed-Percent" SCTimeout="API::CONFIG::Chlorinator::SuperChlor-Timeout" ORPTimout="API::CONFIG::Chlorinator::ORPTimout" /><API System-Id="9" OpType="ON_OFF_SETPOINT" ref="SetUIEquipmentCmd" EquipmentID="9" IsOn="API::STATUS::Pump::pumpSpeed" /><API System-Id="8" OpType="ON_OFF" ref="SetUIEquipmentCmd" EquipmentID="8" IsOn="API::STATUS::ColorLogic-Light::lightState" /><API System-Id="8" OpType="ON_SETPOINT" ref="SetStandAloneLightShowV2" LightID="8" Show="API::STATUS::ColorLogic-Light::currentShow" Speed="API::STATUS::ColorLogic-Light::speed" Brightness="API::STATUS::ColorLogic-Light::brightness" /><API System-Id="0" OpType="CSAD_MODE" ref="UISetCSADMode" CSADID="0" Mode="API::STATUS::CSAD::mode" /><API System-Id="0" OpType="CSAD_CALIBRATION" ref="UISetCSADTargetValue" CSADID="0" Mode="API::STATUS::CSAD::ph" /><API System-Id="11" OpType="ON_OFF" ref="SetUIEquipmentCmd" EquipmentID="11" IsOn="API::STATUS::Filter::filterSpeed" /><API System-Id="12" OpType="ON_OFF" ref="SetHeaterEnable" HeaterID="12" /><API System-Id="12" OpType="SETPOINT" ref="SetUIHeaterCmd" HeaterID="12" Temp="API::STATUS::VirtualHeater::Current-Set-Point" /><API System-Id="14" OpType="ON_OFF" ref="SetCHLOREnable" Enabled="API::CONFIG::Chlorinator::Enabled" /><API System-Id="14" OpType="CHL_PARAMETERS" ref="SetCHLORParams" ChlorID="14" OpMode="API::CONFIG::Chlorinator::Mode" CellType="API::CONFIG::Chlorinator::Cell-Type" TimedPercent="API::CONFIG::Chlorinator::Timed-Percent" SCTimeout="API::CONFIG::Chlorinator::SuperChlor-Timeout" ORPTimout="API::CONFIG::Chlorinator::ORPTimout" /><API System-Id="16" OpType="ON_OFF_SETPOINT" ref="SetUIEquipmentCmd" EquipmentID="16" IsOn="API::STATUS::Pump::pumpSpeed" /><API System-Id="0" OpType="CSAD_MODE" ref="UISetCSADMode" CSADID="0" Mode="API::STATUS::CSAD::mode" /><API System-Id="0" OpType="CSAD_CALIBRATION" ref="UISetCSADTargetValue" CSADID="0" Mode="API::STATUS::CSAD::ph" /></Device-APIs><Favorite-APIs><API Favorite-Id="34" ref="RunGroupCmd" OpType="ON_OFF" ThemeID="34" IsOn="API::STATUS::Group::groupState" /><API Favorite-Id="36" ref="RunGroupCmd" OpType="ON_OFF" ThemeID="36" IsOn="API::STATUS::Group::groupState" /><API Favorite-Id="3" ref="SetUIEquipmentCmd" OpType="ON_OFF" EquipmentID="3" IsOn="API::STATUS::Filter::filterState" /><API Favorite-Id="4" ref="API::GOTOFEATURE" /><API Favorite-Id="1" ref="SetHeaterEnable" HeaterID="4" /><API Favorite-Id="6" ref="SetCHLORParams" OpType="CHL_PARAMETERS" ChlorID="6" OpMode="API::CONFIG::Chlorinator::Mode" CellType="API::CONFIG::Chlorinator::Cell-Type" TimedPercent="API::CONFIG::Chlorinator::Timed-Percent" SCTimeout="API::CONFIG::Chlorinator::SuperChlor-Timeout" ORPTimout="API::CONFIG::Chlorinator::ORPTimout" /><API Favorite-Id="6" ref="API::GOTOFEATURE" /><API Favorite-Id="9" ref="SetUIEquipmentCmd" OpType="ON_OFF" EquipmentID="9" /><API Favorite-Id="9" ref="API::GOTOFEATURE" /><API Favorite-Id="8" ref="SetStandAloneLightShowV2" OpType="ON_SETPOINT" LightID="8" Show="API::CONFIG::Favorite::Data" Speed="API::CONFIG::Favorite::Data2" Brightness="API::CONFIG::Favorite::Data3" /><API Favorite-Id="0" ref="API::GOTOFEATURE" /><API Favorite-Id="11" ref="SetUIEquipmentCmd" OpType="ON_OFF" EquipmentID="11" IsOn="API::STATUS::Filter::filterState" /><API Favorite-Id="12" ref="API::GOTOFEATURE" /><API Favorite-Id="2" ref="SetHeaterEnable" HeaterID="12" /><API Favorite-Id="14" ref="SetCHLORParams" OpType="CHL_PARAMETERS" ChlorID="14" OpMode="API::CONFIG::Chlorinator::Mode" CellType="API::CONFIG::Chlorinator::Cell-Type" TimedPercent="API::CONFIG::Chlorinator::Timed-Percent" SCTimeout="API::CONFIG::Chlorinator::SuperChlor-Timeout" ORPTimout="API::CONFIG::Chlorinator::ORPTimout" /><API Favorite-Id="14" ref="API::GOTOFEATURE" /><API Favorite-Id="16" ref="SetUIEquipmentCmd" OpType="ON_OFF" EquipmentID="16" /><API Favorite-Id="0" ref="API::GOTOFEATURE" /></Favorite-APIs><Schedule-APIs><API System-Id="34" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="34" Data="1" ActionID="317" /><API System-Id="34" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="1" ActionID="317" /><API System-Id="34" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="36" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="36" Data="1" ActionID="317" /><API System-Id="36" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="1" ActionID="317" /><API System-Id="36" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="3" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="3" Data="API::STATUS::Filter::filterSpeed" ActionID="164" /><API System-Id="3" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::STATUS::Filter::filterSpeed" ActionID="164" /><API System-Id="3" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="4" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="4" Data="API::STATUS::VirtualHeater::Current-Set-Point" ActionID="315" /><API System-Id="4" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::STATUS::VirtualHeater::Current-Set-Point" ActionID="315" /><API System-Id="4" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="6" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="6" Data="API::CONFIG::Chlorinator::Timed-Percent" ActionID="164" /><API System-Id="6" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::CONFIG::Chlorinator::Timed-Percent" ActionID="164" /><API System-Id="6" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="9" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="9" Data="API::STATUS::Pump::pumpSpeed" ActionID="164" /><API System-Id="9" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::STATUS::Pump::pumpSpeed" ActionID="164" /><API System-Id="9" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="8" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleAltCmd" EquipmentID="8" Show="API::STATUS::ColorLogic-Light::currentShow" Speed="API::STATUS::ColorLogic-Light::speed" Brightness="API::STATUS::ColorLogic-Light::brightness" Data4="0" ActionID="308" /><API System-Id="8" OpType="EDIT_SCHEDULE" ref="EditUIScheduleAltCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Show="API::STATUS::ColorLogic-Light::currentShow" Speed="API::STATUS::ColorLogic-Light::speed" Brightness="API::STATUS::ColorLogic-Light::brightness" Data4="0" ActionID="308" /><API System-Id="8" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="11" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="11" Data="API::STATUS::Filter::filterSpeed" ActionID="164" /><API System-Id="11" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::STATUS::Filter::filterSpeed" ActionID="164" /><API System-Id="11" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="12" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="12" Data="API::STATUS::VirtualHeater::Current-Set-Point" ActionID="315" /><API System-Id="12" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::STATUS::VirtualHeater::Current-Set-Point" ActionID="315" /><API System-Id="12" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="14" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="14" Data="API::CONFIG::Chlorinator::Timed-Percent" ActionID="164" /><API System-Id="14" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::CONFIG::Chlorinator::Timed-Percent" ActionID="164" /><API System-Id="14" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="16" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="16" Data="API::STATUS::Pump::pumpSpeed" ActionID="164" /><API System-Id="16" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::STATUS::Pump::pumpSpeed" ActionID="164" /><API System-Id="16" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /></Schedule-APIs></MSPAPI></Response>

And, here is the portion of the API response that deals with brightness, if you want me to post the entire API response, please let me know.

            <Brightness>
                <Key name="0">CL_20_PERCENT</Key>
                <Key name="1">CL_40_PERCENT</Key>
                <Key name="2">CL_60_PERCENT</Key>
                <Key name="3">CL_80_PERCENT</Key>
                <Key name="4">CL_100_PERCENT</Key>
            </Brightness>

Hi Phil. Glad to see you are still using the binding. It’s the off season here in Ohio, but will fire mine up soon. Which Hayward panel do you have? OmniLogix or the newer OmniPL? I’ll share a little history on the OmniLogix lights. The getMSP response included a brightness variable back when I originally developed the binding. The getTelemetry variable is in fact new. Regardless, from what I understand in talking with the Hayward engineers a few years ago, the original OmniLogix hardware does not support networked lights that allow brightness and color changes using communications over the power line and they had no intention of adding it (which contradicted a Hayward brochure that advertised this functionality). The older ProLogix systems have a modem that can be installed to handle these communications. A quick google search isn’t turning up any new hardware for the OmniLogix to control these lights. Mine are wired into a relay that opens and closes a specific number of times to reset the light and select a certain color or light show. How are yours wired up? If you have the PL panel, this should work, and I’ll be happy to add it in the upcoming weeks.

Sorry it took a while to get back to you. Currently in Dubai so I’m not using my pool either! Well, I’m 95% sure that I have the omni logix panel, and that recently the app updated, as well as the firmware, and now I can control brightness. From what I remember it goes in increments of 20% on the app. But it’s quite nice because the lights were previously too bright (or at least I thought so). I have not cracked open the power/breaker panel to look at the physical wiring, but that hasn’t changed since installation 3 years ago. Here are pics of the panel and controller, but they don’t have any specifics model or part numbers on them.

It looks like you have a OmniPL. It uses the same API as the OmniLogic panel. Without hardware to troubleshoot, this would be extremely difficult for me to implement.

Phil,
I took a stab at this. Give this a try…

You’ll need to remove the light Thing and re-discover it.

Wow, thank you! I am downloading now and will let you know how it works. Hopefully I’ll get to uploading the new file today…

Well, I’ve run into a little problem… it’s been a while since I did this manual installation, and I added the file, deleted the old one, restarted OpenHAB and then Deleted the Light Thing. Once I did that though there was no ability to scan for new things because the Binding is not listed when I go to the “Add Thing” page (Blue Plus Symbol). So, then I thought, maybe I need to delete all of the things, then the connection thing, and start over (I did copy the UID), but after I did that the binding is still not showing up in the list of bindings on the Add page. I have a vague recollection that this is because the binding was manually added… Can you remind me how I scan for things? Or is something not quite right? The new binding does show up in my bundle:list.

295 │ Active │  80 │ 4.0.0.202305121830     │ openHAB Add-ons :: Bundles :: Hayward OmniLogic Binding

Try upgrading the original binding. You’ll have to move the jar to a sub-directory in the add-ons folder, reinstall the release version of the binding, then upgrade it in the console using the new jar.

Ok, I tried that (by upgrade you just mean drop your new file into the addons folder, correct?), and I now have two Omnilogic Connection Things that are found in the “Add Things” page. Not sure which one to pick. I selected the first one, and it seems to have double some of the things once I put in my login credentials and scan again (some are all CAPS and others are not). I clicked on Hayward Lights, made that thing and it doesn’t appear any different than the old channels that were available. There is a switch and two strings, I don’t seem a dimmer item there. What should I see, and what do I need to do to clean up the two connection/bridge things? Sorry about the trouble. I can send screen shots later if needed.

Take a look at the bundle:update command…

Thanks for sending the info on bundle management. I think I’ve tried just about every permutation possible.

Here is what I’ve tried:

  1. Drop the jar into /addons folder, release binding already installed = multiple instances of the connection thing show up on ‘add thing’ page, both versions show up on bundle:list (This ends up in multiple copies of things when I do scan for things, and does not seem to be a good situation)
  2. Drop the jar into /addons folder, no release binding installed = Binding does not show up on ‘add thing’ page, looks good on the bundle:list
  3. Do bundle:install from my home folder, with no release binding installed = Binding does not show up on ‘add thing’ page, looks good on the bundle:list
  4. Do bundle:upgrade ### from home folder, with release binding installed = Binding does not show up on ‘add thing’ page, looks good on the bundle:list

I don’t know what else to try… it’s like something is keeping it from populating on the ‘Add thing’ page…?