Skip to content

Commit b0c69a7

Browse files
committed
initial commit
1 parent f899b88 commit b0c69a7

41 files changed

Lines changed: 3020 additions & 1 deletion

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

bom/openhab-addons/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,11 @@
771771
<artifactId>org.openhab.binding.haywardomnilogic</artifactId>
772772
<version>${project.version}</version>
773773
</dependency>
774-
<dependency>
774+
<dependency>
775+
<groupId>org.openhab.addons.bundles</groupId>
776+
<artifactId>org.openhab.binding.haywardomnilogiclocal</artifactId>
777+
<version>${project.version}</version>
778+
</dependency> <dependency>
775779
<groupId>org.openhab.addons.bundles</groupId>
776780
<artifactId>org.openhab.binding.hccrubbishcollection</artifactId>
777781
<version>${project.version}</version>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
This content is produced and maintained by the openHAB project.
3+
4+
* Project home: https://www.openhab.org
5+
6+
== Declared Project Licenses
7+
8+
This program and the accompanying materials are made available under the terms
9+
of the Eclipse Public License 2.0 which is available at
10+
https://www.eclipse.org/legal/epl-2.0/.
11+
12+
== Source Code
13+
14+
https://github.com/openhab/openhab-addons
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
# Hayward Omnilogic Binding
2+
3+
The Hayward Omnilogic binding integrates the Omnilogic pool controller using the Hayward API.
4+
5+
The Hayward Omnilogic API interacts with Hayward's cloud server requiring a connection with the Internet for sending and receiving information.
6+
7+
## Supported Things
8+
9+
The table below lists the Hayward OmniLogic binding thing types:
10+
11+
| Things | Description | Thing Type |
12+
|------------------------------|---------------------------------------------------------------------------------|---------------|
13+
| Hayward OmniLogix Connection | Connection to Hayward's Server | bridge |
14+
| Backyard | Backyard | backyard |
15+
| Body of Water | Body of Water | bow |
16+
| Chlorinator | Chlorinator | chlorinator |
17+
| Colorlogic Light | Colorlogic Light | colorlogic |
18+
| Filter | Filter control | filter |
19+
| Heater Equipment | Actual heater (i.e. gas, solar, electric) | heater |
20+
| Pump | Auxillary pump control (i.e. spillover) | pump |
21+
| Relay | Accessory relay control (deck jet sprinklers, lights, etc.) | relay |
22+
| Virtaul Heater | A Virtual Heater that can control all of the heater equipment based on priority | virtualHeater |
23+
24+
## Discovery
25+
26+
The binding will automatically discover the Omnilogic pool things from the cloud server using your Hayward Omnilogic credentials.
27+
28+
## Thing Configuration
29+
30+
Hayward OmniLogic Connection Parameters:
31+
32+
| Property | Default | Required | Description |
33+
|----------------------|------------------------------------------------------------------|----------|----------------------------------------------|
34+
| Host Name | <https://app1.haywardomnilogic.com/HAAPI/HomeAutomation/API.ash> | Yes | Host name of the Hayward API server |
35+
| User Name | None | Yes | Your Hayward User Name (not email address) |
36+
| Password | None | Yes | Your Hayward User Password |
37+
| Telemetry Poll Delay | 3 | Yes | Telemetry Poll Delay (2-60 seconds) |
38+
| Alarm Poll Delay | 10 | Yes | Alarm Poll Delay (0-120 seconds, 0 disabled) |
39+
40+
## Channels
41+
42+
### Backyard Channels
43+
44+
| Channel Type ID | Item Type | Description | Read Write |
45+
|-----------------|--------------------|----------------------------------|:----------:|
46+
| backyardAirTemp | Number:Temperature | Backyard air temp sensor reading | R |
47+
| backyardStatus | String | Backyard status | R |
48+
| backyardState | String | Backyard state | R |
49+
| backyardAlarm1 | String | Backyard alarm #1 | R |
50+
| backyardAlarm2 | String | Backyard alarm #2 | R |
51+
| backyardAlarm3 | String | Backyard alarm #3 | R |
52+
| backyardAlarm4 | String | Backyard alarm #4 | R |
53+
| backyardAlarm5 | String | Backyard alarm #5 | R |
54+
55+
### Body of Water Channels
56+
57+
| Channel Type ID | Item Type | Description | Read Write |
58+
|-----------------|--------------------|------------------------------------|:----------:|
59+
| bowFlow | Switch | Body of Water flow sensor feedback | R |
60+
| bowWaterTemp | Number:Temperature | Body of Water temperature | R |
61+
62+
### Chlorinator Channels
63+
64+
| Channel Type ID | Item Type | Description | Read Write |
65+
|-----------------------|----------------------|----------------------------------------------------------|:----------:|
66+
| chlorEnable | Switch | Chlorinator enable | R/W |
67+
| chlorOperatingMode | String | Chlorinator operating mode | R |
68+
| chlorTimedPercent | Number:Dimensionless | Chlorinator salt output (%) | R/W |
69+
| chlorOperatingState | Number | Chlorinator operating state | R |
70+
| chlorScMode | String | Chlorinator super chlorinate mode | R |
71+
| chlorError | String | Chlorinator error bit array | R |
72+
| chlorAlert | String | Chlorinator alert bit array | R |
73+
| chlorAvgSaltLevel | Number:Dimensionless | Chlorinator average salt level in Part per Million (ppm) | R |
74+
| chlorInstantSaltLevel | Number:Dimensionless | Chlorinator instant salt level in Part per Million (ppm) | R |
75+
| chlorStatus | String | Chlorinator status bit array | R |
76+
77+
### Chlorinator Error Bit Array
78+
79+
| Bits | Value | Description |
80+
|-------|---------------------------------------------------------|--------------------|
81+
| 1:0 | 00 = OK, 01 = Short, 10 = Open | Current Sensor |
82+
| 3:2 | 00 = OK, 01 = Short, 10 = Open | Voltage Sensor |
83+
| 5:4 | 00 = OK, 01 = Short, 10 = Open | Cell Temp Sensor |
84+
| 7:6 | 00 = OK, 01 = Short, 10 = Open | Board Temp Sensor |
85+
| 9:8 | 00 = OK, 01 = Short, 10 = Open | K1 Relay |
86+
| 11:10 | 00 = OK, 01 = Short, 10 = Open | K2 Relay |
87+
| 13:12 | 00 = OK, 01 = Type, 10 = Authentication, 11 = Comm Loss | Cell Errors |
88+
| 14 | 0 | Aquarite PCB Error |
89+
90+
### Chlorinator Alert Bit Array
91+
92+
| Bits | Value | Description |
93+
|-------|----------------------------------------------|-----------------------|
94+
| 1:0 | 00 = OK, 01 = Salt Low, 10 = Salt too Low | Low salt |
95+
| 2 | 0 = OK, 1 = High | High Current |
96+
| 3 | 0 = OK, 1 = Low | Low Voltage |
97+
| 5:4 | 00 = OK, 01 = Low, 10 = Scaleback, 11 = High | Cell Water Temp |
98+
| 7:6 | 00 = OK, 01 = High, 10 = Clearing | Board Temp |
99+
| 8 | 0 | Not Used |
100+
| 10:9 | 0 | Not Used |
101+
| 12:11 | 00 = OK, 01 = Clean | Cell Cleaning/Runtime |
102+
103+
### Chlorinator Status Bit Array
104+
105+
|Bits |Value |Description |
106+
|------|--------------------------------------------------------------|-------------------------------|
107+
|0 |0 = OK, 1 = Error Present |Error Present |
108+
|1 |0 = OK, 1 = Alert Present |Alert Present |
109+
|2 |0 = Standy, 1 = Generating |Generating |
110+
|3 |0 = Not Paused, 1 = Paused |Paused |
111+
|4 |0 = Local Not Paused, 1 = Local Paused |Local Pause |
112+
|5 |0 = Not Authenticated, 1 = Authenticated |T-Cell Authenticated |
113+
|6 |0 = K1 Relay Off, 1 = K1 Relay On |K1 Relay Active |
114+
|7 |0 = K2 Relay Off, 1 = K2 Relay On |K2 Relay Active |
115+
116+
### Colorlogic Light Channels
117+
118+
| Channel Type ID | Item Type | Description | Read Write |
119+
|----------------------------|-----------|-------------------------------|:----------:|
120+
| colorLogicLightEnable | Switch | Colorlogic Light enable | R/W |
121+
| colorLogicLightState | String | Colorlogic Light state | R |
122+
| colorLogicLightCurrentShow | String | Colorlogic Light current show | R/W |
123+
| colorLogicLightBrightness | String | Colorlogic Light brightness | R/W |
124+
| colorLogicLightSpeed | String | Colorlogic Light speed | R/W |
125+
126+
**Note:** Brightness and speed channels only available on Hayward V2 lights
127+
128+
### Filter Channels
129+
130+
| Channel Type ID | Item Type | Description | Read Write |
131+
|---------------------|----------------------|------------------------|:----------:|
132+
| filterEnable | Switch | Filter enable | R/W |
133+
| filterValvePosition | String | Filter valve position | R |
134+
| filterSpeedPercent | Number:Dimensionless | Filter speed (%) | R/W |
135+
| filterSpeedRpm | Number:Frequency | Filter speed (rpm) | R/W |
136+
| filterSpeedSelect | String | Filter speed presets | R/W |
137+
| filterState | String | Filter state | R |
138+
| filterLastSpeed | Number:Dimensionless | Filter last speed (%) | R |
139+
140+
### Heater Channels
141+
142+
| Channel Type ID | Item Type | Description | Read Write |
143+
|-----------------|-----------|---------------|:----------:|
144+
| heaterState | String | Heater state | R |
145+
| heaterEnable | Switch | Heater enable | R |
146+
147+
### Pump Channels
148+
149+
| Channel Type ID | Item Type | Description | Read Write |
150+
|------------------|----------------------|----------------------|:----------:|
151+
| pumpEnable | Switch | Pump enable | R/W |
152+
| pumpSpeedPercent | Number:Dimensionless | Pump speed (%) | R/W |
153+
| pumpSpeedRpm | Number: Frequency | Pump speed in rpm | R/W |
154+
| pumpSpeedSelect | String | Pump speed presets | R/W |
155+
| pumpState | String | Pump state | R |
156+
| pumpLastSpeed | Number:Dimensionless | Pump last speed (%) | R |
157+
158+
### Relay Channels
159+
160+
| Channel Type ID | Item Type | Description | Read Write |
161+
|-----------------|-----------|-------------|:----------:|
162+
| relayState | Switch | Relay state | R/W |
163+
164+
### Virtual Heater Channels
165+
166+
| Channel Type ID | Item Type | Description | Read Write |
167+
|-----------------------|--------------------|-------------------------|:----------:|
168+
| heaterEnable | Switch | Heater enable | R |
169+
| heaterCurrentSetpoint | Number:Temperature | Heater Current Setpoint | R/W |
170+
171+
**Item Types Number:Dimensionless should have the units (i.e. %, ppm) defined in the Unit metadata
172+
173+
## Full Example
174+
175+
After installing the binding, you will need to manually add the Hayward Connection thing and enter your credentials.
176+
All pool items can be automatically discovered by scanning the bridge.
177+
Goto the inbox and add the things.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<parent>
8+
<groupId>org.openhab.addons.bundles</groupId>
9+
<artifactId>org.openhab.addons.reactor.bundles</artifactId>
10+
<version>5.1.0-SNAPSHOT</version>
11+
</parent>
12+
13+
<artifactId>org.openhab.binding.haywardomnilogiclocal</artifactId>
14+
15+
<name>openHAB Add-ons :: Bundles :: Hayward OmniLogic Binding</name>
16+
17+
</project>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<features name="org.openhab.binding.haywardomnilogic-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">
3+
<repository>mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features</repository>
4+
5+
<feature name="openhab-binding-haywardomnilogic" description="Hayward OmniLogic Binding" version="${project.version}">
6+
<feature>openhab-runtime-base</feature>
7+
<bundle start-level="80">mvn:org.openhab.addons.bundles/org.openhab.binding.haywardomnilogic/${project.version}</bundle>
8+
</feature>
9+
</features>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* Copyright (c) 2010-2024 Contributors to the openHAB project
3+
*
4+
* See the NOTICE file(s) distributed with this work for additional
5+
* information.
6+
*
7+
* This program and the accompanying materials are made available under the
8+
* terms of the Eclipse Public License 2.0 which is available at
9+
* http://www.eclipse.org/legal/epl-2.0
10+
*
11+
* SPDX-License-Identifier: EPL-2.0
12+
*/
13+
package org.openhab.binding.haywardomnilogiclocal.internal;
14+
15+
import org.eclipse.jdt.annotation.NonNullByDefault;
16+
17+
/**
18+
*
19+
* @author Matt Myers - Initial contribution
20+
*/
21+
@NonNullByDefault
22+
public class GetTelemetry {
23+
// @SerializedName(value = "")
24+
public String xmlns = "http://nextgen.hayward.com/api";
25+
public String Name = "RequestTelemetryData";
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* Copyright (c) 2010-2025 Contributors to the openHAB project
3+
*
4+
* See the NOTICE file(s) distributed with this work for additional
5+
* information.
6+
*
7+
* This program and the accompanying materials are made available under the
8+
* terms of the Eclipse Public License 2.0 which is available at
9+
* http://www.eclipse.org/legal/epl-2.0
10+
*
11+
* SPDX-License-Identifier: EPL-2.0
12+
*/
13+
package org.openhab.binding.haywardomnilogiclocal.internal;
14+
15+
import org.eclipse.jdt.annotation.NonNullByDefault;
16+
17+
/**
18+
* The {@link HaywardAccount} class contains fields mapping thing configuration parameters.
19+
*
20+
* @author Matt Myers - Initial contribution
21+
*/
22+
23+
@NonNullByDefault
24+
public class HaywardAccount {
25+
public String token = "";
26+
public String mspSystemID = "";
27+
public String userID = "";
28+
public String backyardName = "";
29+
public String address = "";
30+
public String firstName = "";
31+
public String lastName = "";
32+
public String roleType = "";
33+
public String units = "";
34+
public String vspSpeedFormat = "";
35+
}

0 commit comments

Comments
 (0)