Hayward Omnilogic Pool Automation Binding

For anyone interested, I finally got the code pushed. It’s in review now.

1 Like

Jar file can be found here…

https://drive.google.com/drive/folders/1LuRMR0iikHuqRljzpGA2WN6luj4x4i9X?usp=sharing

Updated PR for OH3

Matt,

I hope you are doing well in these crazy times.

I am writing because I recently upgraded to OpenHAB 3.0.0 and will be setting up the pool controller again. I was wondering whether you have made any updates to this binding, and also whether you could tell me in which folder the .jar should be placed.

Thank you,

Mauro

I have updated the binding to 3.0. I have one last change to make and it should be merged into the OH3 add-ons. If you don’t see it in the next couple days, reach back out and I’ll get you a jar.

That is great! Thank you Matt.

Matt,

I download and created a clean OH3 install on my RPi 4. I can’t find the Hayward OmniLogic binding among the available add ons. What am I missing?

Thanks,

Mauro

Update your OpenHab to the latest milestone build. It was added in milestone 3.1.

Matt,

I installed the latest milestone build (3.1.0.M3) and I still cannot find the binding. It does not show on the list of available bindings to be installed and I also could not find it after downloading the addon .kar file and expanding it to search for its contents. What is strange is that it is shown in the openhab.org site as an available binding. I also looked at the github repository to see if I could download a .jar file from there, but no luck. I am at a loss here… I must be missing something basic and could use some help when you have a min.

Thank you.

I’ll look into that. Here is a link to the jar. Drop it in your add-ons folder and reboot.

https://drive.google.com/file/d/1CJGZ55HLWh5PcqucQJtM9ltgOSGbWo0D/view?usp=sharing

Matt, thank you very much. It is working fine now!

Glad to hear it. Let me know if you run into any issues.

Hey @matchews, I just installed this binding but I can’t seem to make it work. I added a bridge thing using my username and password from haywardomnilogic.com but it’s not discovering anything. I changed the log level for this binding to DEBUG and restarted the binding, and I see lots of messages in the logs, ending with this one:

2021-07-12 00:03:50.593 [DEBUG] [nternal.handler.HaywardBridgeHandler] - Succesfully opened connection to Hayward's server: https://www.haywardomnilogic.com/HAAPI/HomeAutomation/API.ashx Username:xxx

Then nothing after that. I can see with netstat that it’s holding a connection open to the server, but I can’t tell any more than that.

Do you have any idea why it might get stuck here?

Which version of the binding are you running? Which version of OH? The latest version of the binding is currently deployed with OH 3.1.0.M5. I suggest running that version. What is your telemetry poll delay set too? Alarm poll delay? Make sure those are default of 12s and 60s respectively. You can try going into the inbox and starting a manual discovery as well.

Thanks

Ah thank you, that did it. I’m on 3.1.0 final with all of the default settings and nothing was auto-discovered. But I went into Things, clicked the blue plus sign, Hayward, then clicked the Scan button. Then they all popped up.

Oops, I spoke to soon. I was able to add the Things and define some Channels but they’re never getting values. In the logs I see this:

2021-07-12 13:45:54.504 [DEBUG] [nternal.handler.HaywardBridgeHandler] - Succesfully opened connection to Hayward's server: https://www.haywardomnilogic.com/HAAPI/HomeAutomation/API.ashx Username:xxx
2021-07-12 13:45:54.605 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
        at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[?:?]
        at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[?:?]
        at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) ~[?:?]
        at java.util.Objects.checkIndex(Objects.java:372) ~[?:?]
        at java.util.ArrayList.get(ArrayList.java:459) ~[?:?]
        at org.openhab.binding.haywardomnilogic.internal.handler.HaywardFilterHandler.getTelemetry(HaywardFilterHandler.java:66) ~[?:?]
        at org.openhab.binding.haywardomnilogic.internal.handler.HaywardBridgeHandler.getTelemetryData(HaywardBridgeHandler.java:318) ~[?:?]
        at org.openhab.binding.haywardomnilogic.internal.handler.HaywardBridgeHandler.lambda$1(HaywardBridgeHandler.java:351) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:829) [?:?]

Please send me the results of the getTelemetry command from the logs.

Thx

I don’t see that it logged any output… here’s the complete log from restarting the binding:

2021-07-12 13:45:53.019 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Querying state active
2021-07-12 13:45:53.028 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Deactivating component
2021-07-12 13:45:53.029 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : registration change queue [unregistered]
2021-07-12 13:45:53.097 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Querying state active
2021-07-12 13:45:53.098 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : getting deactivate: deactivate
2021-07-12 13:45:53.099 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Locating method deactivate in class org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory
2021-07-12 13:45:53.099 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Declared Method org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory.deactivate([interface org.osgi.service.component.ComponentContext]) not found
2021-07-12 13:45:53.100 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Locating method deactivate in class org.openhab.core.thing.binding.BaseThingHandlerFactory
2021-07-12 13:45:53.100 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Found deactivate method: protected void org.openhab.core.thing.binding.BaseThingHandlerFactory.deactivate(org.osgi.service.component.ComponentContext)
2021-07-12 13:45:53.100 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : invoking deactivate: deactivate: parameters [org.apache.felix.scr.impl.manager.ComponentContextImpl]
2021-07-12 13:45:53.102 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : invoked deactivate: deactivate
2021-07-12 13:45:53.103 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : DependencyManager: $000 close component unbinding from org.apache.felix.scr.impl.manager.ComponentContextImpl@7d089bea at tracking count 1 refpairs: [[RefPair: ref: [{org.openhab.core.io.net.http.HttpClientFactory, org.openhab.core.io.net.http.WebSocketFactory}={service.id=272, service.bundleid=178, service.scope=bundle, component.name=org.openhab.core.io.net.http.internal.WebClientFactoryImpl, component.id=135}] service: [org.openhab.core.io.net.http.internal.WebClientFactoryImpl@101b2b0f]]]
2021-07-12 13:45:53.103 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Unset and deconfigured implementation object for component in deleteComponent for reason Unspecified
2021-07-12 13:45:53.103 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Changed state from active to satisfied
2021-07-12 13:45:53.105 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Deactivating dependency managers
2021-07-12 13:45:53.107 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Disabling dependency managers
2021-07-12 13:45:53.108 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : unregistering service listener for dependency $000
2021-07-12 13:45:53.108 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Querying state satisfied
2021-07-12 13:45:53.109 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Changed state from satisfied to disposed
2021-07-12 13:45:53.109 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(302)] : Disposing component (reason: 6)
2021-07-12 13:45:53.123 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory] : BundleComponentActivator : ComponentHolder created.
2021-07-12 13:45:53.124 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory] : Dependency Manager created $000interface=org.openhab.core.io.net.http.HttpClientFactory, filter=null, policy=static, cardinality=1..1, bind=null, unbind=null, updated=null, field=null, field-option=null, collection-type=null, parameter=0
2021-07-12 13:45:53.124 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory] : Component created: DS=DS14, implementation=org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory, immediate=false, default-enabled=true, factory=null, configuration-policy=optional, activate=activate, deactivate=deactivate, modified=null configuration-pid=[binding.haywardomnilogic]
2021-07-12 13:45:53.125 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory] : Component Services: scope=singleton, services=[org.openhab.core.thing.binding.ThingHandlerFactory]
2021-07-12 13:45:53.125 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory] : Component Properties: {}
2021-07-12 13:45:53.125 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory] : Querying state disabled
2021-07-12 13:45:53.126 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory] : Querying state disabled
2021-07-12 13:45:53.126 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory] : Component can not be activated since it is in state disabled
2021-07-12 13:45:53.126 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory] : Querying state disabled
2021-07-12 13:45:53.126 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Updating target filters
2021-07-12 13:45:53.127 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : No change in target property for dependency $000: currently registered: false
2021-07-12 13:45:53.127 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] :  No existing service listener to unregister for dependency $000
2021-07-12 13:45:53.127 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Setting target property for dependency $000 to null
2021-07-12 13:45:53.128 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : New service tracker for $000, initial active: false, previous references: {}, classFilter: (objectClass=org.openhab.core.io.net.http.HttpClientFactory), initialReferenceFilter (objectClass=org.openhab.core.io.net.http.HttpClientFactory)
2021-07-12 13:45:53.128 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : dm $000 tracker reset (closed)
2021-07-12 13:45:53.129 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : dm $000 tracking 1 SingleStatic added {org.openhab.core.io.net.http.HttpClientFactory, org.openhab.core.io.net.http.WebSocketFactory}={service.id=272, service.bundleid=178, service.scope=bundle, component.name=org.openhab.core.io.net.http.internal.WebClientFactoryImpl, component.id=135} (enter)
2021-07-12 13:45:53.129 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : dm $000 tracking 1 SingleStatic active: false trackerOpened: false optional: false
2021-07-12 13:45:53.130 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : dm $000 tracking 1 SingleStatic added {org.openhab.core.io.net.http.HttpClientFactory, org.openhab.core.io.net.http.WebSocketFactory}={service.id=272, service.bundleid=178, service.scope=bundle, component.name=org.openhab.core.io.net.http.internal.WebClientFactoryImpl, component.id=135} (exit)
2021-07-12 13:45:53.130 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : dm $000 tracker opened
2021-07-12 13:45:53.130 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : registering service listener for dependency $000
2021-07-12 13:45:53.130 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Changed state from disabled to unsatisfiedReference
2021-07-12 13:45:53.131 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Component enabled
2021-07-12 13:45:53.131 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : ActivateInternal
2021-07-12 13:45:53.131 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Querying state unsatisfiedReference
2021-07-12 13:45:53.131 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Querying state unsatisfiedReference
2021-07-12 13:45:53.131 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Activating component from state unsatisfiedReference
2021-07-12 13:45:53.131 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Querying state unsatisfiedReference
2021-07-12 13:45:53.132 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Querying state unsatisfiedReference
2021-07-12 13:45:53.132 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Changed state from unsatisfiedReference to satisfied
2021-07-12 13:45:53.132 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : registration change queue [registered]
2021-07-12 13:45:53.133 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Checking constructor public org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(org.openhab.core.io.net.http.HttpClientFactory)
2021-07-12 13:45:53.133 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : getReferenceClass: Looking for interface class org.openhab.core.io.net.http.HttpClientFactory through loader of org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory
2021-07-12 13:45:53.133 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : getParameterClass: Found class org.openhab.core.io.net.http.HttpClientFactory
2021-07-12 13:45:53.133 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Found constructor with 1 arguments : public org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(org.openhab.core.io.net.http.HttpClientFactory)
2021-07-12 13:45:53.134 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : This thread collected dependencies
2021-07-12 13:45:53.134 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : getService (single component manager) dependencies collected.
2021-07-12 13:45:53.134 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Querying state satisfied
2021-07-12 13:45:53.134 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Querying state satisfied
2021-07-12 13:45:53.134 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : For dependency $000, optional: false; to bind: [[RefPair: ref: [{org.openhab.core.io.net.http.HttpClientFactory, org.openhab.core.io.net.http.WebSocketFactory}={service.id=272, service.bundleid=178, service.scope=bundle, component.name=org.openhab.core.io.net.http.internal.WebClientFactoryImpl, component.id=135}] service: [null]]]
2021-07-12 13:45:53.135 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : getting activate: activate
2021-07-12 13:45:53.135 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Locating method activate in class org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory
2021-07-12 13:45:53.135 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Declared Method org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory.activate([interface org.osgi.service.component.ComponentContext]) not found
2021-07-12 13:45:53.135 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Locating method activate in class org.openhab.core.thing.binding.BaseThingHandlerFactory
2021-07-12 13:45:53.135 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Found activate method: protected void org.openhab.core.thing.binding.BaseThingHandlerFactory.activate(org.osgi.service.component.ComponentContext)
2021-07-12 13:45:53.136 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : invoking activate: activate: parameters [org.apache.felix.scr.impl.manager.ComponentContextImpl]
2021-07-12 13:45:53.136 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : invoked activate: activate
2021-07-12 13:45:53.136 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Set implementation object for component
2021-07-12 13:45:53.136 [DEBUG] [logic.internal.HaywardHandlerFactory] - bundle org.openhab.binding.haywardomnilogic:3.1.0 (253)[org.openhab.binding.haywardomnilogic.internal.HaywardHandlerFactory(303)] : Changed state from satisfied to active
2021-07-12 13:45:54.504 [DEBUG] [nternal.handler.HaywardBridgeHandler] - Succesfully opened connection to Hayward's server: https://www.haywardomnilogic.com/HAAPI/HomeAutomation/API.ashx Username:xxx
2021-07-12 13:45:54.605 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
        at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[?:?]
        at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[?:?]
        at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) ~[?:?]
        at java.util.Objects.checkIndex(Objects.java:372) ~[?:?]
        at java.util.ArrayList.get(ArrayList.java:459) ~[?:?]
        at org.openhab.binding.haywardomnilogic.internal.handler.HaywardFilterHandler.getTelemetry(HaywardFilterHandler.java:66) ~[?:?]
        at org.openhab.binding.haywardomnilogic.internal.handler.HaywardBridgeHandler.getTelemetryData(HaywardBridgeHandler.java:318) ~[?:?]
        at org.openhab.binding.haywardomnilogic.internal.handler.HaywardBridgeHandler.lambda$1(HaywardBridgeHandler.java:351) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:829) [?:?]

Do you have a salt water generator (chlorinator)? Try setting the logging level to trace and try it again. It’s failing on the chlorinator operating mode data retreival. Send me the getMspConfig and getTelemetry responses.

log:set TRACE org.openhab.binding.haywardomnilogic

Thanks,
Matt

Interesting… I don’t have a Hayward SWG, but I do have an external SWG connected to a smart relay. My pump is a VS 700 Omni which is a VSP and “mini” Omnilogic all in one. It uses the same controller as the Omnilogic but with fewer integration points. I think you get up to two smart relays, two actuators, air and water temperature sensors, and a third sensor for solar… and that’s it. The integrated SWG and other chemistry features aren’t supported.

Here are the traces:

2021-07-12 22:59:36.585 [TRACE] [nternal.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">xxx</Parameter><Parameter name="Password" dataType="String">xxx</Parameter></Parameters></Request>
2021-07-12 22:59:36.586 [TRACE] [nternal.handler.HaywardBridgeHandler] - Hayward Connection thing:  login Hayward http response: Successfully <Response><Name>Login</Name><Parameters><Parameter dataType="int" name="Status">0</Parameter><Parameter dataType="int" name="StatusMessage">Successfully</Parameter><Parameter dataType="int" name="UserID">123</Parameter><Parameter dataType="int" name="Token">xxx</Parameter></Parameters></Response>
2021-07-12 22:59:36.689 [TRACE] [nternal.handler.HaywardBridgeHandler] - Hayward Connection thing:  getSiteList Hayward http command: <?xml version="1.0" encoding="utf-8"?><Request><Name>GetSiteList</Name><Parameters><Parameter name="Token" dataType="String">xxx</Parameter><Parameter name="UserID" dataType="String">123</Parameter></Parameters></Request>
2021-07-12 22:59:36.689 [TRACE] [nternal.handler.HaywardBridgeHandler] - Hayward Connection thing:  getSiteList Hayward http response: Successfully <Response><Name>GetSiteList</Name><Parameters><Parameter dataType="int" name="Status">0</Parameter><Parameter dataType="int" name="StatusMessage">Successfully</Parameter><Parameter dataType="object" name="List"><Item><Property name="MspSystemID" dataType="int">123</Property><Property name="BackyardName" dataType="string">Backyard</Property><Property name="Address" dataType="string">xxx</Property><Property name="Status" dataType="string">1</Property></Item></Parameter></Parameters></Response>
2021-07-12 22:59:36.771 [TRACE] [nternal.handler.HaywardBridgeHandler] - Hayward Connection thing:  getMspConfig Hayward http command: <?xml version="1.0" encoding="utf-8"?><Request><Name>GetMspConfigFile</Name><Parameters><Parameter name="Token" dataType="String">xxx</Parameter><Parameter name="MspSystemID" dataType="int">123</Parameter><Parameter name="Version" dataType="string">0</Parameter>
</Parameters></Request>
2021-07-12 22:59:36.771 [TRACE] [nternal.handler.HaywardBridgeHandler] - Hayward Connection thing:  getMspConfig Hayward http response: OK <Response><MSPConfig><System><Msp-Vsp-Speed-Format>RPM</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>No</UI-Heater-SimpleMode><UI-Filter-SimpleMode>No</UI-Filter-SimpleMode><UI-Lights-SimpleMode>No</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>3</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_NO_EQUIPMENT_SHARED</Shared-Type><Shared-Priority>SHARED_EQUIPMENT_LOW_PRIORITY</Shared-Priority><Shared-Equipment-System-ID>0</Shared-Equipment-System-ID><Supports-Spillover>no</Supports-Spillover><Size-In-Gallons>0</Size-In-Gallons><Filter><System-Id>2</System-Id><Name>Filter Pump</Name><Shared-Type>BOW_NO_EQUIPMENT_SHARED</Shared-Type><Filter-Type>FMT_VARIABLE_SPEED_PUMP</Filter-Type><Max-Pump-Speed>100</Max-Pump-Speed><Min-Pump-Speed>18</Min-Pump-Speed><Max-Pump-RPM>3450</Max-Pump-RPM><Min-Pump-RPM>600</Min-Pump-RPM><Priming-Enabled>no</Priming-Enabled><Vsp-Low-Pump-Speed>32</Vsp-Low-Pump-Speed><Vsp-Medium-Pump-Speed>50</Vsp-Medium-Pump-Speed><Vsp-High-Pump-Speed>100</Vsp-High-Pump-Speed><Vsp-Custom-Pump-Speed>32</Vsp-Custom-Pump-Speed><Freeze-Protect-Override-Interval>7200</Freeze-Protect-Override-Interval></Filter><Sensor><System-Id>4</System-Id><Name>WaterSensor</Name><Type>SENSOR_WATER_TEMP</Type><Units>UNITS_FAHRENHEIT</Units></Sensor><Relay><System-Id>5</System-Id><Name>SWG</Name><Type>RLY_HIGH_VOLTAGE_RELAY</Type><Function>RLY_ACCESSORY</Function><External-Interlock>
                    1
                    <External-Interlock-Enable>yes</External-Interlock-Enable><External-Interlock-Source>ILK_SOURCE_FILTER</External-Interlock-Source><External-Interlock-Source-System-Id>2</External-Interlock-Source-System-Id><External-Interlock-Compare-Type>ILK_COMPARE_EQUAL_TO</External-Interlock-Compare-Type><External-Interlock-ActiveLevel>0</External-Interlock-ActiveLevel><External-Interlock-ActionState>0</External-Interlock-ActionState></External-Interlock></Relay></Body-of-water></Backyard><Schedules><sche><bow-system-id>1</bow-system-id><equipment-id>2</equipment-id><schedule-system-id>7</schedule-system-id><event>164</event><data>32</data><enabled>1</enabled><start-minute>0</start-minute><start-hour>14</start-hour><end-minute>0</end-minute><end-hour>8</end-hour><days-active>127</days-active><recurring>1</recurring></sche><sche><bow-system-id>1</bow-system-id><equipment-id>2</equipment-id><schedule-system-id>8</schedule-system-id><event>164</event><data>50</data><enabled>1</enabled><start-minute>0</start-minute><start-hour>8</start-hour><end-minute>0</end-minute><end-hour>14</end-hour><days-active>127</days-active><recurring>1</recurring></sche><sche><bow-system-id>1</bow-system-id><equipment-id>5</equipment-id><schedule-system-id>9</schedule-system-id><event>164</event><data>1</data><enabled>1</enabled><start-minute>0</start-minute><start-hour>8</start-hour><end-minute>0</end-minute><end-hour>14</end-hour><days-active>127</days-active><recurring>1</recurring></sche></Schedules></MSPConfig><MSPAPI version="0.4" latestversion="0.4"><Device-APIs><API System-Id="2" OpType="ON_OFF" ref="SetUIEquipmentCmd" EquipmentID="2" IsOn="API::STATUS::Filter::filterSpeed" /><API System-Id="0" OpType="ON_OFF" ref="SetHeaterEnable" HeaterID="0" /><API System-Id="0" OpType="SETPOINT" ref="SetUIHeaterCmd" HeaterID="0" Temp="API::STATUS::VirtualHeater::Current-Set-Point" /><API System-Id="5" OpType="ON_OFF" ref="SetUIEquipmentCmd" EquipmentID="5" IsOn="API::STATUS::Relay::relayState" /><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="2" ref="SetUIEquipmentCmd" OpType="ON_OFF" EquipmentID="2" IsOn="API::STATUS::Filter::filterState" /><API Favorite-Id="0" ref="API::GOTOFEATURE" /><API Favorite-Id="1" ref="SetHeaterEnable" HeaterID="0" /><API Favorite-Id="5" ref="SetUIEquipmentCmd" OpType="ON_OFF" EquipmentID="5" /><API Favorite-Id="0" ref="API::GOTOFEATURE" /></Favorite-APIs><Schedule-APIs><API System-Id="2" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="2" Data="API::STATUS::Filter::filterSpeed" ActionID="164" /><API System-Id="2" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::STATUS::Filter::filterSpeed" ActionID="164" /><API System-Id="2" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="0" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="0" Data="API::STATUS::VirtualHeater::Current-Set-Point" ActionID="315" /><API System-Id="0" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="API::STATUS::VirtualHeater::Current-Set-Point" ActionID="315" /><API System-Id="0" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /><API System-Id="5" OpType="CREATE_SCHEDULE" ref="CreateUIScheduleCmd" EquipmentID="5" Data="1" ActionID="164" /><API System-Id="5" OpType="EDIT_SCHEDULE" ref="EditUIScheduleCmd" EquipmentID="API::CONFIG::sche::schedule-system-id" Data="1" ActionID="164" /><API System-Id="5" OpType="REMOVE_SCHEDULE" ref="DeleteUIScheduleCmd" ScheduleSystemID="API::CONFIG::sche::schedule-system-id" /></Schedule-APIs></MSPAPI></Response>
2021-07-12 22:59:36.783 [DEBUG] [nternal.handler.HaywardBridgeHandler] - Succesfully opened connection to Hayward's server: https://www.haywardomnilogic.com/HAAPI/HomeAutomation/API.ashx Username:xxx
2021-07-12 22:59:36.785 [TRACE] [nternal.handler.HaywardBridgeHandler] - Hayward Telemetry polling scheduled
2021-07-12 22:59:36.843 [TRACE] [nternal.handler.HaywardBridgeHandler] - Hayward Connection thing:  getTelemetryData Hayward http command: <?xml version="1.0" encoding="utf-8"?><Request><Name>GetTelemetryData</Name><Parameters><Parameter name="Token" dataType="String">xxx</Parameter><Parameter name="MspSystemID" dataType="int">123</Parameter></Parameters></Request>
2021-07-12 22:59:36.844 [TRACE] [nternal.handler.HaywardBridgeHandler] - Hayward Connection thing:  getTelemetryData Hayward http response: OK <STATUS version="1.0"><Backyard systemId="123" statusVersion="8" airTemp="67" status="1" state="1" configUpdatedTime="2021-07-08T19:51:44.725Z" datetime="2021-07-12T22:59:38.815" /><BodyOfWater systemId="1" flow="255" waterTemp="74" /><Filter systemId="2" valvePosition="1" filterSpeed="32" filterState="1" lastSpeed="32" /><VirtualHeater systemId="0" Current-Set-Point="0" enable="no" /><Relay systemId="5" relayState="0" /><CSAD systemId="0" ph="" orp="" status="0" mode="0" /></STATUS>
2021-07-12 22:59:36.857 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
	at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[?:?]
	at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[?:?]
	at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) ~[?:?]
	at java.util.Objects.checkIndex(Objects.java:372) ~[?:?]
	at java.util.ArrayList.get(ArrayList.java:459) ~[?:?]
	at org.openhab.binding.haywardomnilogic.internal.handler.HaywardFilterHandler.getTelemetry(HaywardFilterHandler.java:66) ~[?:?]
	at org.openhab.binding.haywardomnilogic.internal.handler.HaywardBridgeHandler.getTelemetryData(HaywardBridgeHandler.java:318) ~[?:?]
	at org.openhab.binding.haywardomnilogic.internal.handler.HaywardBridgeHandler.lambda$1(HaywardBridgeHandler.java:351) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]