Hayward OmniLogic smartapp
With only a few weeks left in the pool season, I’ve completed the first release of my integration for Hayward OmniLogic pool controllers.
The main goal of the integration is to be able to control pool equipment using Google Assistant and the Google Home app. Hayward only has a very basic and hard to use built-in integration with Google Assistant. With this smartapp you can control your pool equipment from your pool or spa, without having to touch anything with your wet hands (provided you have a Google Assistant enabled phone or speaker nearby).
Of course you’ll also be able to control the equipment using your hub’s app or website if you prefer.
Examples of things you can say
Depending on device names:
Hey Google, turn on Pool Filter
Hey Google, set Pool Filter to 90%
Hey Google, what is the Pool temperature?
Hey Google, set Spa Heater to heat
Hey Google, set Spa Heater to 98 degrees
Hey Google, what is the Spa Heater temperature?
Hey Google, set Chlorinator to 50%
Hey Google, turn on Super Chlorinator
Hey Google, what is the Pool temperature?
Hey Google, turn on Pool Cleaner
Hey Google, turn on Spa Spillover
Note: Light and Relay devices have not been tested. I put my pool light on a zigbee switch last year so I haven’t been able to try it out. If you use either of these devices, please let me know if they work.
If haven’t tested this with Amazon Echo devices since I don’t own any, but I’m curious to hear what works and what doesn’t.
The integration consists of a Smartapp to handle communication with the Hayward OmniLogic API and 8 device handlers to control individual devices.
Source code: GitHub - maartenvantjonger/omnilogic-smartapp: Hayward Omnilogic Smartapp for use with Samsung Smartthings and Hubitat
Log in to https://consigliere-regional.api.smartthings.com
Go to My SmartApps and click New SmartApp
Click the From Code tab and copy/paste the contents of the OmniLogic smartapp.
Click Create and then Publish → For Me
Go to My Device Handlers and click Create New Device Handler and perform the same steps for all device handlers
After installation you can add the OmniLogic smartapp and fill in your OmniLogic username and password. The MSP ID can be found in your OmnoLogic display or in the OmniLogic app in the About popup.
Go to Devices in the OmniLogic smartapp. The app gathers your OmniLogic configuration and will show you a list of available devices to choose from. Select the ones you would like to control, and they will be added to your hub as individual devices.
Make sure Google Home integration is enabled for you hub, and synchronize the devices you’ve just created.
The smartapp updates device statuses every 15 minutes. During those 15 minutes, device on/off statuses may show incorrectly in case you have your pool equipment on a schedule or if you’re using the Hayward app or website to control the equipment on the side.
In the Google Home app, thermostats cannot be set beyond 90 degrees Fahrenheit. To get around this limitation, you can still say Hey Google, set Spa Heater to 104 degrees.
Another workaround is to set the temperature in the Hub’s app or website or in the Hayward OmniLogic app, and only using Google Home to turn the heater on and off.
I’m open to all feedback and suggestion. For developers: All pull requests into the develop branch of the git repository will be considered.
Tried this and im not a dev or know the techincals and just followed your directions.
I’m using OmniPL:
colorlogic light function works and works fast asking google to turn on or off. Have not tried to ask it to change color
I have valve actuator for water feature. It shows up in smartthings, and when asking google to turn it on, it confirms doing so but valve/feature doesnt turn on. Works on my Omni app on phone. Now while its on, if I ask google to turn off the feature, IT WORKS. So not sure why it doesnt turn on, but it will work to turn off.
In smart things, the air temp sensor works.
However Pool water temp sensor has been reading 0
Turning on and off pool pump works, did not try yet to set speed
Thanks for trying it out and sorry it’s not fully working for you yet. Could you send me a screenshot of the Telemetry page in the Omnilogic smartapp? That would help me figure out what’s wrong, and get it fixed.
Also let me know the name of your water feature device if you can.
I was looking at the omnilogic smartapp and where is the Telemetry page? I’m on android
I’m an Android too! You should see the Omnilogic app when you go to the Automations tab in the Smartthings app:
When you click on Omnilogic, one of the options will be the Telemetry page:
It’ll look something like this:
Thank you for showing me step by step. I just DM you the screen shot of it. Also the name of my water feature is called “Waterfalls”
Thanks for the screenshot. I think I fixed the problem in the Relay device driver.
Try installing the updated version from: omnilogic-smartapp/omnilogic-relay.groovy at main · maartenvantjonger/omnilogic-smartapp · GitHub
Don’t forget to click Publish → For Me
I’m not sure yet why the pool temperature sensor does not work.
Could you create a screenshot of the Telemetry page while the pool filter pump is running? Maybe wait a couple of minutes so it can get a temperature reading.
And more importantly, I would like to see the pool device page at https://consigliere-regional.api.smartthings.com/
It would be in the My Devices tab and then Pool, or whatever the name of your pool is. Mine looks like this:
As you can see I won’t be swimming anytime soon…
I can confirm water feature now works and can turn on or off via google home. THANKS! Looks like you got that fixed.
I DM you both the screen shots you requested. I see some difference on my pool device compared to yours and maybe why its not showing up.
I have 2 temp sensors. I have an ambient air temp sensor and of course the water temp. On the list of devices I have 2 OmniLogic Temperature Sensor listed. One is the air temp outside which is reading correctly, then the pool device one which i sent you a screenshot which is at 0, but i see sensortype says air when its supposed to be water on that one. I can confirm on the official omnilogic app both sensors are working. Hope this helps.
Great, I’m happy that the relay works now.
I DMed you about the the temperature sensor. We’ll get to the bottom of this!
Good eye on the sensorType. That is indeed the problem.
Hey eugenile, I fixed the temperature sensor issue. Please update the driver with the code below and remove the pool temperature sensor device and re-add it. That should resolve the problem. Thanks for your help debugging this!
IT WORKS! Awesome! Thanks for troubleshooting. If there are any things you want me to test on this in the future just let me know.
I’m struggling to mount/use/import your repo (vs code copy paste) and can’t for the life of me get the app to add/show up in my Android ST app… any help appreciated
what was the deal on air temp and water temp? My water temp didn’t read in ST until i turned on the pump
Stupid smartthings had hidden new SmartApps in discovery
Hey Steve! Sorry for the late response. I can’t figure out how to get notifications when a new message is posted. Glad you figured out the installation issue.
The water temperature sensor is usually between the pump and the filter, so It’ll need water to flow through to be able to measure the temperature. The smartapp does remember the last measured temperature, so when you turn off the pump and ask for the temperature again, it’ll give you the last temperature that was measured before the pump was turned off.
Maarten van Tjonger a couple of asks or ideas
- make bubblers and jets show using the Irrigation tile
- Make pump speed show as RPM vs on/off and a pump icon
- Make heater show as water heater icon
- Make both air and water temp show as temperature icons vs generic
- Make VSP show as ‘pump speed’ or pump % vs fan speed
There are 4 low voltage relays along with 4 high voltage (one for lights) in my system, right now, it’s not picking up all four
- LIghts - my Hayward lights have multiple other settings, color shows, timers, show change speed and brightness - any chance of getting those?
Hi Steve, thanks for the bug reports and feature requests!
Are you referring to the icons as they show up in Google Home or in the Smartthings app? Google Home is pretty rigid in the way devices appear so I probably won’t be able to change much there.
I may be able to change the icons for the devices in the Smartthings app. There’s an
ocfDeviceType property for device handlers that seems to define which icon is used.
As for your low voltage relays: I think I’ll need to see your MSP Config to see what the name of the device type is.
Only then can I enumerate the devices and assign the Relay driver to them (assuming they work the same way as regular relays).
Same for the heater temperature reading issue you reported.
Let’s continue the convo in your Github tickets. I’ll let you know how to get the MSP Config there.
Oh and about your Hayward lights: I did include a custom command in the Light device handler to set the light show, speed and brightness, but I’m not sure how to make that show up in the app. I’ll try to figure that out. If I can’t, I’ll at least allow you to set the brightness.
Hi @mvtjonger awesome set of device handlers. I have noticed a couple of things…
The Smartapp can get in a looped state, if you get an network error mesage in the app you get stuck in lop and you need to close Smartthings.
The heater handler does not work at all, if I use the hayward app and tun the heater on there is no update to the SmartApp, The heater app is showing 80.0C even when it is off is that as per design?
The Pool Chlorinator status is not refected in the smartApp.
I have added a number of device handlers and the show up in Smatthings but now they dont show in the Omnilogic app under devices it says no devices found.
This great work and your help to fix my issues would be appreciated
Thanks. Would love to partner up with you’re here… Wanna learn groovy, I kinda get it… I do mostly powershell coding.
Struggling to learn the architecture and objects and such in Groovy