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;
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;
// 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);
}
}
}
+ 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
--- /dev/null
+/**
+ * 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);
+}