]> git.basschouten.com Git - openhab-addons.git/blob
643352e0f291e923460cf12b2cbd3a2549a6ac77
[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.surepetcare.internal;
14
15 import java.time.LocalDate;
16 import java.time.LocalTime;
17 import java.time.ZonedDateTime;
18 import java.util.Arrays;
19 import java.util.HashSet;
20 import java.util.Set;
21
22 import org.eclipse.jdt.annotation.NonNullByDefault;
23 import org.openhab.binding.surepetcare.internal.utils.GsonLocalDateTypeAdapter;
24 import org.openhab.binding.surepetcare.internal.utils.GsonLocalTimeTypeAdapter;
25 import org.openhab.binding.surepetcare.internal.utils.GsonZonedDateTimeTypeAdapter;
26 import org.openhab.core.thing.ThingTypeUID;
27
28 import com.google.gson.FieldNamingPolicy;
29 import com.google.gson.Gson;
30 import com.google.gson.GsonBuilder;
31
32 /**
33  * The {@link SurePetcareConstants} class defines common constants, which are used across the whole binding.
34  *
35  * @author Rene Scherer - Initial contribution
36  */
37 @NonNullByDefault
38 public class SurePetcareConstants {
39
40     public static final String BINDING_ID = "surepetcare";
41
42     // List all Thing Type UIDs, related to the binding
43     public static final ThingTypeUID THING_TYPE_BRIDGE = new ThingTypeUID(BINDING_ID, "bridge");
44     public static final ThingTypeUID THING_TYPE_HOUSEHOLD = new ThingTypeUID(BINDING_ID, "household");
45     public static final ThingTypeUID THING_TYPE_PET = new ThingTypeUID(BINDING_ID, "pet");
46     public static final ThingTypeUID THING_TYPE_HUB_DEVICE = new ThingTypeUID(BINDING_ID, "hubDevice");
47     public static final ThingTypeUID THING_TYPE_FLAP_DEVICE = new ThingTypeUID(BINDING_ID, "flapDevice");
48     public static final ThingTypeUID THING_TYPE_FEEDER_DEVICE = new ThingTypeUID(BINDING_ID, "feederDevice");
49
50     public static final Set<ThingTypeUID> BRIDGE_THING_TYPES_UIDS = Set.of(THING_TYPE_BRIDGE);
51     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = new HashSet<>(Arrays.asList(THING_TYPE_HOUSEHOLD,
52             THING_TYPE_PET, THING_TYPE_HUB_DEVICE, THING_TYPE_FLAP_DEVICE, THING_TYPE_FEEDER_DEVICE));
53
54     public static final long DEFAULT_REFRESH_INTERVAL_TOPOLOGY = 36000; // 10 hours
55     public static final long DEFAULT_REFRESH_INTERVAL_STATUS = 300; // 5 mins
56     public static final int DEFAULT_HTTP_TIMEOUT = 8;
57
58     public static final String PROPERTY_NAME_ID = "id";
59
60     public static final int FLAP_MAX_NUMBER_OF_CURFEWS = 4;
61     public static final int BOWL_ID_ONE_BOWL_USED = 1;
62     public static final int BOWL_ID_TWO_BOWLS_USED = 4;
63
64     public static final Gson GSON = new GsonBuilder()
65             .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
66             .registerTypeAdapter(ZonedDateTime.class, new GsonZonedDateTimeTypeAdapter())
67             .registerTypeAdapter(LocalDate.class, new GsonLocalDateTypeAdapter())
68             .registerTypeAdapter(LocalTime.class, new GsonLocalTimeTypeAdapter()).create();
69
70     // Bridge Channel Names
71     public static final String BRIDGE_CHANNEL_REFRESH = "refresh";
72
73     // Household Channel Names
74     public static final String HOUSEHOLD_CHANNEL_ID = "id";
75     public static final String HOUSEHOLD_CHANNEL_NAME = "name";
76     public static final String HOUSEHOLD_CHANNEL_TIMEZONE_ID = "timezoneId";
77
78     // Device Channel Names
79     public static final String DEVICE_CHANNEL_ID = "id";
80     public static final String DEVICE_CHANNEL_NAME = "name";
81     public static final String DEVICE_CHANNEL_PRODUCT = "product";
82     public static final String DEVICE_CHANNEL_LED_MODE = "ledMode";
83     public static final String DEVICE_CHANNEL_PAIRING_MODE = "pairingMode";
84     public static final String DEVICE_CHANNEL_ONLINE = "online";
85     public static final String DEVICE_CHANNEL_CURFEW_BASE = "curfew";
86     public static final String DEVICE_CHANNEL_CURFEW_ENABLED = DEVICE_CHANNEL_CURFEW_BASE + "Enabled";
87     public static final String DEVICE_CHANNEL_CURFEW_LOCK_TIME = DEVICE_CHANNEL_CURFEW_BASE + "LockTime";
88     public static final String DEVICE_CHANNEL_CURFEW_UNLOCK_TIME = DEVICE_CHANNEL_CURFEW_BASE + "UnlockTime";
89     public static final String DEVICE_CHANNEL_LOCKING_MODE = "lockingMode";
90     public static final String DEVICE_CHANNEL_BATTERY_VOLTAGE = "batteryVoltage";
91     public static final String DEVICE_CHANNEL_BATTERY_LEVEL = "batteryLevel";
92     public static final String DEVICE_CHANNEL_LOW_BATTERY = "lowBattery";
93     public static final String DEVICE_CHANNEL_DEVICE_RSSI = "deviceRSSI";
94     public static final String DEVICE_CHANNEL_HUB_RSSI = "hubRSSI";
95     public static final String DEVICE_CHANNEL_BOWLS_FOOD = "bowlsFood";
96     public static final String DEVICE_CHANNEL_BOWLS_TARGET = "bowlsTarget";
97     public static final String DEVICE_CHANNEL_BOWLS_FOOD_LEFT = "bowlsFoodLeft";
98     public static final String DEVICE_CHANNEL_BOWLS_TARGET_LEFT = "bowlsTargetLeft";
99     public static final String DEVICE_CHANNEL_BOWLS_FOOD_RIGHT = "bowlsFoodRight";
100     public static final String DEVICE_CHANNEL_BOWLS_TARGET_RIGHT = "bowlsTargetRight";
101     public static final String DEVICE_CHANNEL_BOWLS = "bowls";
102     public static final String DEVICE_CHANNEL_BOWLS_CLOSE_DELAY = "bowlsCloseDelay";
103     public static final String DEVICE_CHANNEL_BOWLS_TRAINING_MODE = "bowlsTrainingMode";
104
105     // Pet Channel Names
106     public static final String PET_CHANNEL_ID = "id";
107     public static final String PET_CHANNEL_NAME = "name";
108     public static final String PET_CHANNEL_COMMENT = "comment";
109     public static final String PET_CHANNEL_GENDER = "gender";
110     public static final String PET_CHANNEL_BREED = "breed";
111     public static final String PET_CHANNEL_SPECIES = "species";
112     public static final String PET_CHANNEL_PHOTO = "photo";
113     public static final String PET_CHANNEL_LOCATION = "location";
114     public static final String PET_CHANNEL_LOCATION_CHANGED = "locationChanged";
115     public static final String PET_CHANNEL_LOCATION_TIMEOFFSET = "locationTimeoffset";
116     public static final String PET_CHANNEL_LOCATION_CHANGED_THROUGH = "locationChangedThrough";
117     public static final String PET_CHANNEL_DATE_OF_BIRTH = "dateOfBirth";
118     public static final String PET_CHANNEL_WEIGHT = "weight";
119     public static final String PET_CHANNEL_TAG_IDENTIFIER = "tagIdentifier";
120     public static final String PET_CHANNEL_FEEDER_DEVICE = "feederDevice";
121     public static final String PET_CHANNEL_FEEDER_LASTFEEDING = "feederLastFeeding";
122     public static final String PET_CHANNEL_FEEDER_LAST_CHANGE = "feederLastChange";
123     public static final String PET_CHANNEL_FEEDER_LAST_CHANGE_LEFT = "feederLastChangeLeft";
124     public static final String PET_CHANNEL_FEEDER_LAST_CHANGE_RIGHT = "feederLastChangeRight";
125 }