Skip to content

Commit

Permalink
Updated 2.5.x with local changes.
Browse files Browse the repository at this point in the history
* Integrated the "feature" support in to new controller groups.
* Implemented controller schedules (both read and write) implementation Various other fixes
* Addressed many warning/errors and cleanup
* Added support for units on temperatures, power, etc.
* Added intelliflo gpm fixed spelling error added intelliflo status
* Added direct support for motor (when controller is not present or in service mode)
* Removed apache.commons dependency
* Removed gnu.io dependency. Reworked some of the state changes in the basebridgehandler.
* Added auto discovery

Finished schedule implementation
Various other fixes

Addressed many warning/errors

More cleanup

Updated README with changes.
Added support for UOM

Added intelliflo gpm
fixed spelling error
added intelliflo status

Removed apache.commons import

Removed gnu.io dependency. Reworked some of the state changes in the basebridgehandler.

Added auto discovery
  • Loading branch information
jsjames committed Jun 2, 2020
1 parent 9de05ae commit 80f1878
Show file tree
Hide file tree
Showing 29 changed files with 3,271 additions and 1,136 deletions.
267 changes: 155 additions & 112 deletions bundles/org.openhab.binding.pentair/README.md

Large diffs are not rendered by default.

4 changes: 0 additions & 4 deletions bundles/org.openhab.binding.pentair/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,4 @@

<name>openHAB Add-ons :: Bundles :: Pentair Binding</name>

<properties>
<bnd.importpackage>gnu.io;version="[3.12,6)"</bnd.importpackage>
</properties>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/**
* Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*/
package org.openhab.binding.pentair.internal;

import java.util.HashMap;
import java.util.Map;

import org.eclipse.jdt.annotation.NonNullByDefault;

/**
* The {@link PentairBindingConstants} class defines common constants, which are
* used across the whole binding.
*
* @author Jeff James - Initial contribution
*/
@NonNullByDefault
public final class MapUtils {
public static <K, V> Map<K, V> mapOf(Object... keyValues) {
Map<K, V> map = new HashMap<K, V>(keyValues.length / 2);

for (int index = 0; index < keyValues.length / 2; index++) {
map.put((K) keyValues[index * 2], (V) keyValues[index * 2 + 1]);
}

return map;
}

public static <A, B> Map<B, A> invertMap(Map<A, B> map) {
Map<B, A> reverseMap = new HashMap<>();
for (Map.Entry<A, B> entry : map.entrySet()) {
reverseMap.put(entry.getValue(), entry.getKey());
}
return reverseMap;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public class PentairBindingConstants {
public static final String SERIAL_BRIDGE = "serial_bridge";

// List of all Device Types
public static final String EASYTOUCH = "easytouch";
public static final String CONTROLLER = "controller";
public static final String INTELLIFLO = "intelliflo";
public static final String INTELLICHLOR = "intellichlor";

Expand All @@ -46,54 +46,89 @@ public class PentairBindingConstants {

// List of all Thing Type UIDs
public static final ThingTypeUID INTELLIFLO_THING_TYPE = new ThingTypeUID(BINDING_ID, INTELLIFLO);
public static final ThingTypeUID EASYTOUCH_THING_TYPE = new ThingTypeUID(BINDING_ID, EASYTOUCH);
public static final ThingTypeUID CONTROLLER_THING_TYPE = new ThingTypeUID(BINDING_ID, CONTROLLER);
public static final ThingTypeUID INTELLICHLOR_THING_TYPE = new ThingTypeUID(BINDING_ID, INTELLICHLOR);

// List of all Channel ids
public static final String EASYTOUCH_POOLTEMP = "pooltemp";
public static final String EASYTOUCH_SPATEMP = "spatemp";
public static final String EASYTOUCH_AIRTEMP = "airtemp";
public static final String EASYTOUCH_SOLARTEMP = "solartemp";

public static final String EASYTOUCH_SPAHEATMODE = "spaheatmode";
public static final String EASYTOUCH_SPAHEATMODESTR = "spaheatmodestr";
public static final String EASYTOUCH_POOLHEATMODE = "poolheatmode";
public static final String EASYTOUCH_POOLHEATMODESTR = "poolheatmodestr";
public static final String EASYTOUCH_HEATACTIVE = "heatactive";

public static final String EASYTOUCH_POOLSETPOINT = "poolsetpoint";
public static final String EASYTOUCH_SPASETPOINT = "spasetpoint";

public static final String EASYTOUCH_POOL = "pool";
public static final String EASYTOUCH_SPA = "spa";
public static final String EASYTOUCH_AUX1 = "aux1";
public static final String EASYTOUCH_AUX2 = "aux2";
public static final String EASYTOUCH_AUX3 = "aux3";
public static final String EASYTOUCH_AUX4 = "aux4";
public static final String EASYTOUCH_AUX5 = "aux5";
public static final String EASYTOUCH_AUX6 = "aux6";
public static final String EASYTOUCH_AUX7 = "aux7";

public static final String EASYTOUCH_FEATURE1 = "feature1";
public static final String EASYTOUCH_FEATURE2 = "feature2";
public static final String EASYTOUCH_FEATURE3 = "feature3";
public static final String EASYTOUCH_FEATURE4 = "feature4";
public static final String EASYTOUCH_FEATURE5 = "feature5";
public static final String EASYTOUCH_FEATURE6 = "feature6";
public static final String EASYTOUCH_FEATURE7 = "feature7";
public static final String EASYTOUCH_FEATURE8 = "feature8";

public static final String PARAMETER_ID = "id";

// Controller Groups and Items

public static final String CONTROLLER_PROPERTYFWVERSION = "fwversion";

public static final String CONTROLLER_STATUS = "status";

public static final String CONTROLLER_AIRTEMPERATURE = "airtemperature";
public static final String CONTROLLER_SOLARTEMPERATURE = "solartemperature";
public static final String CONTROLLER_LIGHTMODE = "lightmode";
public static final String CONTROLLER_HEATACTIVE = "heatactive";
public static final String CONTROLLER_UOM = "uom";
public static final String CONTROLLER_SERVICEMODE = "servicemode";
public static final String CONTROLLER_SOLARON = "solaron";
public static final String CONTROLLER_HEATERON = "heateron";

public static final String CONTROLLER_POOLCIRCUIT = "pool";
public static final String CONTROLLER_SPACIRCUIT = "spa";
public static final String CONTROLLER_AUX1CIRCUIT = "aux1";
public static final String CONTROLLER_AUX2CIRCUIT = "aux2";
public static final String CONTROLLER_AUX3CIRCUIT = "aux3";
public static final String CONTROLLER_AUX4CIRCUIT = "aux4";
public static final String CONTROLLER_AUX5CIRCUIT = "aux5";
public static final String CONTROLLER_AUX6CIRCUIT = "aux6";
public static final String CONTROLLER_AUX7CIRCUIT = "aux7";
public static final String CONTROLLER_AUX8CIRCUIT = "aux8";

public static final String CONTROLLER_CIRCUITSWITCH = "switch";
public static final String CONTROLLER_CIRCUITMINSRUN = "minsrun";
public static final String CONTROLLER_CIRCUITNAME = "name";
public static final String CONTROLLER_CIRCUITFUNCTION = "function";

public static final String CONTROLLER_FEATURE1 = "feature1";
public static final String CONTROLLER_FEATURE2 = "feature2";
public static final String CONTROLLER_FEATURE3 = "feature3";
public static final String CONTROLLER_FEATURE4 = "feature4";
public static final String CONTROLLER_FEATURE5 = "feature5";
public static final String CONTROLLER_FEATURE6 = "feature6";
public static final String CONTROLLER_FEATURE7 = "feature7";
public static final String CONTROLLER_FEATURE8 = "feature8";

public static final String CONTROLLER_FEATURESWITCH = "switch";

// List of heat group and items
public static final String CONTROLLER_POOLHEAT = "poolheat";
public static final String CONTROLLER_SPAHEAT = "spaheat";

public static final String CONTROLLER_TEMPERATURE = "temperature";
public static final String CONTROLLER_SETPOINT = "setpoint";
public static final String CONTROLLER_HEATMODE = "heatmode";

// List of schedule group and items
public static final String CONTROLLER_SCHEDULE = "schedule%d";

public static final String CONTROLLER_SCHEDULESAVE = "save";
public static final String CONTROLLER_SCHEDULESTRING = "schedule";
public static final String CONTROLLER_SCHEDULETYPE = "type";
public static final String CONTROLLER_SCHEDULECIRCUIT = "circuit";
public static final String CONTROLLER_SCHEDULEDAYS = "days";
public static final String CONTROLLER_SCHEDULESTART = "start";
public static final String CONTROLLER_SCHEDULEEND = "end";

// List of Intellichlor channel ids
public static final String INTELLICHLOR_SALTOUTPUT = "saltoutput";
public static final String INTELLICHLOR_SALINITY = "salinity";

// List of all Intelliflo channel ids
public static final String INTELLIFLO_RUN = "run";
public static final String INTELLIFLO_MODE = "mode";
public static final String INTELLIFLO_DRIVESTATE = "drivestate";
public static final String INTELLIFLO_POWER = "power";
public static final String INTELLIFLO_RPM = "rpm";
public static final String INTELLIFLO_PPC = "ppc";
public static final String INTELLIFLO_GPM = "gpm";
public static final String INTELLIFLO_ERROR = "error";
public static final String INTELLIFLO_STATUS1 = "status1";
public static final String INTELLIFLO_STATUS2 = "status2";
public static final String INTELLIFLO_TIMER = "timer";
public static final String INTELLIFLO_PROGRAM1 = "program1";
public static final String INTELLIFLO_PROGRAM2 = "program2";
public static final String INTELLIFLO_PROGRAM3 = "program3";
public static final String INTELLIFLO_PROGRAM4 = "program4";

public static final String DIAG = "diag";

Expand All @@ -103,6 +138,9 @@ public class PentairBindingConstants {

// Set of all supported Thing Type UIDs
public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections
.unmodifiableSet(Stream.of(IP_BRIDGE_THING_TYPE, SERIAL_BRIDGE_THING_TYPE, EASYTOUCH_THING_TYPE,
.unmodifiableSet(Stream.of(IP_BRIDGE_THING_TYPE, SERIAL_BRIDGE_THING_TYPE, CONTROLLER_THING_TYPE,
INTELLIFLO_THING_TYPE, INTELLICHLOR_THING_TYPE).collect(Collectors.toSet()));

public static final Set<ThingTypeUID> DISCOVERABLE_DEVICE_TYPE_UIDS = Collections.unmodifiableSet(Stream
.of(CONTROLLER_THING_TYPE, INTELLIFLO_THING_TYPE, INTELLICHLOR_THING_TYPE).collect(Collectors.toSet()));
}
Loading

0 comments on commit 80f1878

Please sign in to comment.