[lutron] Explicitly enable proper monitoring types for HomeWorks connections (#11726)

* [lutron] Set default monitoring types for HomeWorks

Signed-off-by: Bob Adair <bob.github@att.net>
This commit is contained in:
Bob A 2021-12-07 15:17:11 -05:00 committed by GitHub
parent fccfae81ee
commit 25bfaa2372
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 74 additions and 8 deletions

View File

@ -33,6 +33,7 @@ import org.openhab.binding.lutron.internal.protocol.LIPCommand;
import org.openhab.binding.lutron.internal.protocol.LutronCommandNew;
import org.openhab.binding.lutron.internal.protocol.lip.LutronCommandType;
import org.openhab.binding.lutron.internal.protocol.lip.LutronOperation;
import org.openhab.binding.lutron.internal.protocol.lip.Monitoring;
import org.openhab.binding.lutron.internal.protocol.lip.TargetType;
import org.openhab.core.thing.Bridge;
import org.openhab.core.thing.ChannelUID;
@ -57,11 +58,6 @@ public class IPBridgeHandler extends LutronBridgeHandler {
private static final String DB_UPDATE_DATE_FORMAT = "MM/dd/yyyy HH:mm:ss";
private static final Integer MONITOR_PROMPT = 12;
private static final Integer MONITOR_SYSVAR = 10;
private static final Integer MONITOR_ENABLE = 1;
private static final Integer MONITOR_DISABLE = 2;
private static final Integer SYSTEM_DBEXPORTDATETIME = 10;
private static final int MAX_LOGIN_ATTEMPTS = 2;
@ -208,8 +204,9 @@ public class IPBridgeHandler extends LutronBridgeHandler {
// Disable prompts
sendCommand(new LIPCommand(TargetType.BRIDGE, LutronOperation.EXECUTE, LutronCommandType.MONITORING, null,
MONITOR_PROMPT, MONITOR_DISABLE));
Monitoring.PROMPT, Monitoring.ACTION_DISABLE));
initMonitoring();
if (requireSysvarMonitoring.get()) {
setSysvarMonitoring(true);
}
@ -457,10 +454,17 @@ public class IPBridgeHandler extends LutronBridgeHandler {
}
}
private void initMonitoring() {
for (Integer monitorType : Monitoring.REQUIRED_SET) {
sendCommand(new LIPCommand(TargetType.BRIDGE, LutronOperation.EXECUTE, LutronCommandType.MONITORING, null,
monitorType, Monitoring.ACTION_ENABLE));
}
}
private void setSysvarMonitoring(boolean enable) {
Integer setting = (enable) ? MONITOR_ENABLE : MONITOR_DISABLE;
Integer setting = (enable) ? Monitoring.ACTION_ENABLE : Monitoring.ACTION_DISABLE;
sendCommand(new LIPCommand(TargetType.BRIDGE, LutronOperation.EXECUTE, LutronCommandType.MONITORING, null,
MONITOR_SYSVAR, setting));
Monitoring.SYSVAR, setting));
}
@Override

View File

@ -0,0 +1,62 @@
/**
* Copyright (c) 2010-2021 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.lutron.internal.protocol.lip;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
* The {@link Monitoring} class defines constants for LIP Monitoring types
*
* @author Bob Adair - Initial contribution
*/
@NonNullByDefault
public class Monitoring {
// Monitoring Actions
public static final Integer ACTION_ENABLE = 1;
public static final Integer ACTION_DISABLE = 2;
// Monitoring Types
public static final Integer DIAG = 1;
public static final Integer EVENT = 2;
public static final Integer BUTTON = 3;
public static final Integer LED = 4;
public static final Integer ZONE = 5;
public static final Integer OCCUPANCY = 6;
public static final Integer PHOTOSENSOR = 7;
public static final Integer SCENE = 8;
public static final Integer TIMECLOCK = 9;
public static final Integer SYSVAR = 10;
public static final Integer REPLY = 11;
public static final Integer PROMPT = 12;
public static final Integer DEVICE = 14;
public static final Integer ADDRESS = 15;
public static final Integer SEQUENCE = 16;
public static final Integer HVAC = 17;
public static final Integer MODE = 18;
public static final Integer PRESET = 19;
public static final Integer L1RUNTIME = 20;
public static final Integer L2RUNTIME = 21;
public static final Integer DIAGERROR = 22;
public static final Integer SHADEGRP = 23;
public static final Integer PARTITION = 24;
public static final Integer SYSTEM = 25;
public static final Integer SENSORGROUP = 26;
public static final Integer TEMPSENSOR = 27;
public static final Integer ALL = 255;
/** Set of monitoring types which must be enabled */
public static final Set<Integer> REQUIRED_SET = Set.of(BUTTON, LED, ZONE, OCCUPANCY, SCENE, TIMECLOCK, REPLY, HVAC,
MODE);
}