2 * Copyright (c) 2010-2020 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.ecobee.action;
15 import java.util.Date;
18 import javax.measure.quantity.Temperature;
20 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import org.eclipse.jdt.annotation.Nullable;
22 import org.openhab.core.library.types.QuantityType;
25 * The {@link IEcobeeActions} defines the interface for all thing actions supported by the binding.
26 * These methods, parameters, and return types are explained in {@link EcobeeActions}.
28 * @author Mark Hilbush - Initial contribution
31 public interface IEcobeeActions {
33 public Boolean acknowledge(@Nullable String ackRef, @Nullable String ackType, @Nullable Boolean remindMeLater);
35 public Boolean controlPlug(@Nullable String plugName, @Nullable String plugState, @Nullable Date startDateTime,
36 @Nullable Date endDateTime, @Nullable String holdType, @Nullable Number holdHours);
38 public Boolean sendMessage(@Nullable String text);
40 public Boolean createVacation(@Nullable String name, @Nullable QuantityType<Temperature> coolHoldTemp,
41 @Nullable QuantityType<Temperature> heatHoldTemp, @Nullable Date startDateTime, @Nullable Date endDateTime,
42 @Nullable String fan, @Nullable Number fanMinOnTime);
44 public Boolean deleteVacation(@Nullable String name);
46 public Boolean resetPreferences();
48 public Boolean resumeProgram(@Nullable Boolean resumeAll);
50 public Boolean setHold(@Nullable QuantityType<Temperature> coolHoldTemp,
51 @Nullable QuantityType<Temperature> heatHoldTemp);
53 public Boolean setHold(@Nullable QuantityType<Temperature> coolHoldTemp,
54 @Nullable QuantityType<Temperature> heatHoldTemp, @Nullable Number holdHours);
56 public Boolean setHold(@Nullable String holdClimateRef);
58 public Boolean setHold(@Nullable String holdClimateRef, @Nullable Number holdHours);
60 public Boolean setHold(@Nullable QuantityType<Temperature> coolHoldTemp,
61 @Nullable QuantityType<Temperature> heatHoldTemp, @Nullable String holdClimateRef,
62 @Nullable Date startDateTime, @Nullable Date endDateTime, @Nullable String holdType,
63 @Nullable Number holdHours);
65 public Boolean setHold(@Nullable Map<String, Object> params, @Nullable String holdType, @Nullable Number holdHours,
66 @Nullable Date startDateTime, @Nullable Date endDateTime);
68 public Boolean setOccupied(@Nullable Boolean occupied, @Nullable Date startDateTime, @Nullable Date endDateTime,
69 @Nullable String holdType, @Nullable Number holdHours);
71 public Boolean updateSensor(@Nullable String name, @Nullable String deviceId, @Nullable String sensorId);
73 public @Nullable String getAlerts();
75 public @Nullable String getEvents();
77 public @Nullable String getClimates();