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