2 * Copyright (c) 2010-2024 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
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
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.haywardomnilogic.internal;
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.openhab.core.thing.ThingTypeUID;
21 * The {@link HaywardBindingConstants} class defines common constants, which are
22 * used across the whole binding.
24 * @author Matt Myers - Initial contribution
27 public class HaywardBindingConstants {
29 private static final String BINDING_ID = "haywardomnilogic";
31 // List of all Thing Type UIDs
32 public static final ThingTypeUID THING_TYPE_BACKYARD = new ThingTypeUID(BINDING_ID, "backyard");
33 public static final ThingTypeUID THING_TYPE_BOW = new ThingTypeUID(BINDING_ID, "bow");
34 public static final ThingTypeUID THING_TYPE_BRIDGE = new ThingTypeUID(BINDING_ID, "bridge");
35 public static final ThingTypeUID THING_TYPE_CHLORINATOR = new ThingTypeUID(BINDING_ID, "chlorinator");
36 public static final ThingTypeUID THING_TYPE_COLORLOGIC = new ThingTypeUID(BINDING_ID, "colorlogic");
37 public static final ThingTypeUID THING_TYPE_FILTER = new ThingTypeUID(BINDING_ID, "filter");
38 public static final ThingTypeUID THING_TYPE_HEATER = new ThingTypeUID(BINDING_ID, "heater");
39 public static final ThingTypeUID THING_TYPE_PUMP = new ThingTypeUID(BINDING_ID, "pump");
40 public static final ThingTypeUID THING_TYPE_RELAY = new ThingTypeUID(BINDING_ID, "relay");
41 public static final ThingTypeUID THING_TYPE_SENSOR = new ThingTypeUID(BINDING_ID, "sensor");
42 public static final ThingTypeUID THING_TYPE_VIRTUALHEATER = new ThingTypeUID(BINDING_ID, "virtualHeater");
44 public static final Set<ThingTypeUID> BRIDGE_THING_TYPES_UIDS = Set.of(THING_TYPE_BRIDGE);
46 public static final Set<ThingTypeUID> THING_TYPES_UIDS = Set.of(HaywardBindingConstants.THING_TYPE_BACKYARD,
47 HaywardBindingConstants.THING_TYPE_BOW, HaywardBindingConstants.THING_TYPE_BRIDGE,
48 HaywardBindingConstants.THING_TYPE_CHLORINATOR, HaywardBindingConstants.THING_TYPE_COLORLOGIC,
49 HaywardBindingConstants.THING_TYPE_FILTER, HaywardBindingConstants.THING_TYPE_HEATER,
50 HaywardBindingConstants.THING_TYPE_PUMP, HaywardBindingConstants.THING_TYPE_RELAY,
51 HaywardBindingConstants.THING_TYPE_SENSOR, HaywardBindingConstants.THING_TYPE_VIRTUALHEATER);
53 // List of all Channel ids (bridge)
56 // List of all Channel ids (backyard)
57 public static final String CHANNEL_BACKYARD_AIRTEMP = "backyardAirTemp";
58 public static final String CHANNEL_BACKYARD_STATUS = "backyardStatus";
59 public static final String CHANNEL_BACKYARD_STATE = "backyardState";
61 // List of all Channel ids (bow)
62 public static final String CHANNEL_BOW_WATERTEMP = "bowWaterTemp";
63 public static final String CHANNEL_BOW_FLOW = "bowFlow";
65 public static final String PROPERTY_BOW_TYPE = "type";
66 public static final String PROPERTY_BOW_SHAREDTYPE = "sharedType";
67 public static final String PROPERTY_BOW_SHAREDPRIORITY = "sharedPriority";
68 public static final String PROPERTY_BOW_SHAREDEQUIPID = "sharedEquipmentSystemID";
69 public static final String PROPERTY_BOW_SUPPORTSSPILLOVER = "supportsSpillover";
70 public static final String PROPERTY_BOW_SIZEINGALLONS = "sizeInGallons";
72 // List of all Channel ids (chlorinator)
73 public static final String CHANNEL_CHLORINATOR_ENABLE = "chlorEnable";
74 public static final String CHANNEL_CHLORINATOR_OPERATINGMODE = "chlorOperatingMode";
75 public static final String CHANNEL_CHLORINATOR_TIMEDPERCENT = "chlorTimedPercent";
76 public static final String CHANNEL_CHLORINATOR_SCMODE = "chlorScMode";
77 public static final String CHANNEL_CHLORINATOR_ERROR = "chlorError";
78 public static final String CHANNEL_CHLORINATOR_ALERT = "chlorAlert";
79 public static final String CHANNEL_CHLORINATOR_AVGSALTLEVEL = "chlorAvgSaltLevel";
80 public static final String CHANNEL_CHLORINATOR_INSTANTSALTLEVEL = "chlorInstantSaltLevel";
81 public static final String CHANNEL_CHLORINATOR_STATUS = "chlorStatus";
83 public static final String PROPERTY_CHLORINATOR_SHAREDTYPE = "chlorSharedType";
84 public static final String PROPERTY_CHLORINATOR_MODE = "chlorMode";
85 public static final String PROPERTY_CHLORINATOR_CELLTYPE = "cellType";
86 public static final String PROPERTY_CHLORINATOR_DISPENSERTYPE = "dispenserType";
88 // List of all Channel ids (colorlogic)
89 public static final String CHANNEL_COLORLOGIC_ENABLE = "colorLogicLightEnable";
90 public static final String CHANNEL_COLORLOGIC_LIGHTSTATE = "colorLogicLightState";
91 public static final String CHANNEL_COLORLOGIC_CURRENTSHOW = "colorLogicLightCurrentShow";
93 public static final String PROPERTY_COLORLOGIC_TYPE = "colorlogicType";
95 // List of all Channel ids (filter)
96 public static final String CHANNEL_FILTER_ENABLE = "filterEnable";
97 public static final String CHANNEL_FILTER_VALVEPOSITION = "filterValvePosition";
98 public static final String CHANNEL_FILTER_SPEEDPERCENT = "filterSpeedPercent";
99 public static final String CHANNEL_FILTER_SPEEDRPM = "filterSpeedRpm";
100 public static final String CHANNEL_FILTER_SPEEDSELECT = "filterSpeedSelect";
101 public static final String CHANNEL_FILTER_STATE = "filterState";
102 public static final String CHANNEL_FILTER_LASTSPEED = "filterLastSpeed";
104 public static final String PROPERTY_FILTER_SHAREDTYPE = "filterSharedType";
105 public static final String PROPERTY_FILTER_FILTERTYPE = "filterType";
106 public static final String PROPERTY_FILTER_PRIMINGENABLED = "primingEnabled";
107 public static final String PROPERTY_FILTER_MINSPEED = "minFilterPercent";
108 public static final String PROPERTY_FILTER_MAXSPEED = "maxFilterPercent";
109 public static final String PROPERTY_FILTER_MINRPM = "minFilterRPM";
110 public static final String PROPERTY_FILTER_MAXRPM = "maxFilterRPM";
111 public static final String PROPERTY_FILTER_LOWSPEED = "lowFilterSpeed";
112 public static final String PROPERTY_FILTER_MEDSPEED = "mediumFilterSpeed";
113 public static final String PROPERTY_FILTER_HIGHSPEED = "highFilterSpeed";
114 public static final String PROPERTY_FILTER_CUSTOMSPEED = "customFilterSpeed";
115 public static final String PROPERTY_FILTER_FREEZEPROTECTOVERRIDEINTERVAL = "freezeProtectOverrideInterval";
117 // List of all Channel ids (heater)
118 public static final String CHANNEL_HEATER_STATE = "heaterState";
119 public static final String CHANNEL_HEATER_TEMP = "heaterTemp";
120 public static final String CHANNEL_HEATER_ENABLE = "heaterEnable";
122 public static final String PROPERTY_HEATER_TYPE = "type";
123 public static final String PROPERTY_HEATER_HEATERTYPE = "heaterType";
124 public static final String PROPERTY_HEATER_SHAREDEQUIPID = "sharedEquipmentSystemID";
126 // List of all Channel ids (pump)
127 public static final String CHANNEL_PUMP_ENABLE = "pumpEnable";
128 public static final String CHANNEL_PUMP_SPEEDPERCENT = "pumpSpeedPercent";
129 public static final String CHANNEL_PUMP_SPEEDRPM = "pumpSpeedRpm";
130 public static final String CHANNEL_PUMP_SPEEDSELECT = "pumpSpeedSelect";
131 public static final String CHANNEL_PUMP_STATE = "pumpState";
132 public static final String CHANNEL_PUMP_LASTSPEED = "pumpLastSpeed";
134 public static final String PROPERTY_PUMP_TYPE = "pumpType";
135 public static final String PROPERTY_PUMP_FUNCTION = "pumpFunction";
136 public static final String PROPERTY_PUMP_PRIMINGENABLED = "pumpPrimingEnabled";
137 public static final String PROPERTY_PUMP_MINSPEED = "minPumpPercent";
138 public static final String PROPERTY_PUMP_MAXSPEED = "maxPumpPercent";
139 public static final String PROPERTY_PUMP_MINRPM = "minPumpRPM";
140 public static final String PROPERTY_PUMP_MAXRPM = "maxPumpRPM";
141 public static final String PROPERTY_PUMP_LOWSPEED = "lowPumpSpeed";
142 public static final String PROPERTY_PUMP_MEDSPEED = "mediumPumpSpeed";
143 public static final String PROPERTY_PUMP_HIGHSPEED = "highPumpSpeed";
144 public static final String PROPERTY_PUMP_CUSTOMSPEED = "customPumpSpeed";
146 // List of all Channel ids (relay)
147 public static final String CHANNEL_RELAY_STATE = "relayState";
149 public static final String PROPERTY_RELAY_TYPE = "relayType";
150 public static final String PROPERTY_RELAY_FUNCTION = "relayFunction";
152 // List of all Channel ids (sensor)
153 public static final String CHANNEL_SENSOR_DATA = "sensorData";
155 public static final String PROPERTY_SENSOR_TYPE = "sensorType";
156 public static final String PROPERTY_SENSOR_UNITS = "sensorUnits";
158 // List of all Channel ids (virtualHeater)
159 public static final String CHANNEL_VIRTUALHEATER_CURRENTSETPOINT = "virtualHeaterCurrentSetpoint";
160 public static final String CHANNEL_VIRTUALHEATER_ENABLE = "virtualHeaterEnable";
162 public static final String PROPERTY_VIRTUALHEATER_SHAREDTYPE = "sharedType";
163 public static final String PROPERTY_VIRTUALHEATER_MINSETTABLEWATERTEMP = "minSettableWaterTemp";
164 public static final String PROPERTY_VIRTUALHEATER_MAXSETTABLEWATERTEMP = "maxSettableWaterTemp";
165 public static final String PROPERTY_VIRTUALHEATER_MAXWATERTEMP = "maxWaterTemp";
167 // The properties associated with all things
168 public static final String PROPERTY_SYSTEM_ID = "systemID";
169 public static final String PROPERTY_TYPE = "thingType";
170 public static final String PROPERTY_BOWNAME = "bowName";
171 public static final String PROPERTY_BOWID = "bowID";
173 // Hayward Command html
174 public static final String COMMAND_PARAMETERS = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Request>";
176 public static final String COMMAND_SCHEDULE = """
177 <Parameter name="IsCountDownTimer" dataType="bool">false</Parameter>\
178 <Parameter name="StartTimeHours" dataType="int">0</Parameter>\
179 <Parameter name="StartTimeMinutes" dataType="int">0</Parameter>\
180 <Parameter name="EndTimeHours" dataType="int">0</Parameter>\
181 <Parameter name="EndTimeMinutes" dataType="int">0</Parameter>\
182 <Parameter name="DaysActive" dataType="int">0</Parameter>\
183 <Parameter name="Recurring" dataType="bool">false</Parameter>\