]> git.basschouten.com Git - openhab-addons.git/blob
e2eb10f3fce4038aad049de930e5f5491322471c
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.radiothermostat.internal;
14
15 import java.util.Set;
16
17 import javax.measure.Unit;
18 import javax.measure.quantity.Dimensionless;
19 import javax.measure.quantity.Temperature;
20 import javax.measure.quantity.Time;
21
22 import org.eclipse.jdt.annotation.NonNullByDefault;
23 import org.openhab.core.library.unit.ImperialUnits;
24 import org.openhab.core.library.unit.Units;
25 import org.openhab.core.thing.ThingTypeUID;
26
27 /**
28  * The {@link RadioThermostatBindingConstants} class defines common constants, which are
29  * used across the whole binding.
30  *
31  * @author Michael Lobstein - Initial contribution
32  */
33 @NonNullByDefault
34 public class RadioThermostatBindingConstants {
35
36     public static final String BINDING_ID = "radiothermostat";
37     public static final String LOCAL = "local";
38     public static final String PROPERTY_IP = "hostName";
39     public static final String PROPERTY_ISCT80 = "isCT80";
40     public static final String JSON_TIME = "{\"day\":%s,\"hour\":%s,\"minute\":%s}";
41     public static final String JSON_PMA = "{\"line\":1,\"message\":\"%s\"}";
42     public static final String BLANK = "";
43
44     public static final String KEY_ERROR = "error";
45
46     // List of JSON resources
47     public static final String DEFAULT_RESOURCE = "tstat";
48     public static final String RUNTIME_RESOURCE = "tstat/datalog";
49     public static final String HUMIDITY_RESOURCE = "tstat/humidity";
50     public static final String REMOTE_TEMP_RESOURCE = "tstat/remote_temp";
51     public static final String TIME_RESOURCE = "tstat/time";
52     public static final String HEAT_PROGRAM_RESOURCE = "tstat/program/heat";
53     public static final String COOL_PROGRAM_RESOURCE = "tstat/program/cool";
54     public static final String PMA_RESOURCE = "tstat/pma";
55
56     // List of all Thing Type UIDs
57     public static final ThingTypeUID THING_TYPE_RTHERM = new ThingTypeUID(BINDING_ID, "rtherm");
58
59     // List of all Channel id's
60     public static final String TEMPERATURE = "temperature";
61     public static final String HUMIDITY = "humidity";
62     public static final String MODE = "mode";
63     public static final String FAN_MODE = "fan_mode";
64     public static final String PROGRAM_MODE = "program_mode";
65     public static final String SET_POINT = "set_point";
66     public static final String OVERRIDE = "override";
67     public static final String HOLD = "hold";
68     public static final String STATUS = "status";
69     public static final String FAN_STATUS = "fan_status";
70     public static final String DAY = "day";
71     public static final String HOUR = "hour";
72     public static final String MINUTE = "minute";
73     public static final String DATE_STAMP = "dt_stamp";
74     public static final String TODAY_HEAT_RUNTIME = "today_heat_runtime";
75     public static final String TODAY_COOL_RUNTIME = "today_cool_runtime";
76     public static final String YESTERDAY_HEAT_RUNTIME = "yesterday_heat_runtime";
77     public static final String YESTERDAY_COOL_RUNTIME = "yesterday_cool_runtime";
78     public static final String REMOTE_TEMP = "remote_temp";
79     public static final String MESSAGE = "message";
80
81     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_RTHERM);
82
83     public static final Set<String> SUPPORTED_CHANNEL_IDS = Set.of(TEMPERATURE, HUMIDITY, MODE, FAN_MODE, PROGRAM_MODE,
84             SET_POINT, OVERRIDE, HOLD, STATUS, FAN_STATUS, DAY, HOUR, MINUTE, DATE_STAMP, TODAY_HEAT_RUNTIME,
85             TODAY_COOL_RUNTIME, YESTERDAY_HEAT_RUNTIME, YESTERDAY_COOL_RUNTIME, REMOTE_TEMP, MESSAGE);
86
87     public static final Set<String> NO_UPDATE_CHANNEL_IDS = Set.of(REMOTE_TEMP, MESSAGE);
88
89     // Units of measurement of the data delivered by the API
90     public static final Unit<Temperature> API_TEMPERATURE_UNIT = ImperialUnits.FAHRENHEIT;
91     public static final Unit<Dimensionless> API_HUMIDITY_UNIT = Units.PERCENT;
92     public static final Unit<Time> API_MINUTES_UNIT = Units.MINUTE;
93 }