2 * Copyright (c) 2010-2024 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.nibeuplink.internal;
15 import java.util.Collections;
17 import java.util.concurrent.TimeUnit;
18 import java.util.stream.Collectors;
19 import java.util.stream.Stream;
21 import org.eclipse.jdt.annotation.NonNullByDefault;
22 import org.openhab.core.thing.ThingTypeUID;
25 * The {@link NibeUplinkBindingConstants} class defines common constants, which are
26 * used across the whole binding.
28 * @author Alexander Friese - initial contribution
31 public final class NibeUplinkBindingConstants {
33 private static final String BINDING_ID = "nibeuplink";
35 // List of main device types
36 public static final String DEVICE_VVM320 = "vvm320";
37 public static final String DEVICE_VVM310 = "vvm310";
38 public static final String DEVICE_F730 = "f730";
39 public static final String DEVICE_F750 = "f750";
40 public static final String DEVICE_F1145 = "f1145";
41 public static final String DEVICE_F1155 = "f1155";
43 // List of all Thing Type UIDs
44 public static final ThingTypeUID THING_TYPE_VVM320 = new ThingTypeUID(BINDING_ID, DEVICE_VVM320);
45 public static final ThingTypeUID THING_TYPE_VVM310 = new ThingTypeUID(BINDING_ID, DEVICE_VVM310);
46 public static final ThingTypeUID THING_TYPE_F730 = new ThingTypeUID(BINDING_ID, DEVICE_F730);
47 public static final ThingTypeUID THING_TYPE_F750 = new ThingTypeUID(BINDING_ID, DEVICE_F750);
48 public static final ThingTypeUID THING_TYPE_F1145 = new ThingTypeUID(BINDING_ID, DEVICE_F1145);
49 public static final ThingTypeUID THING_TYPE_F1155 = new ThingTypeUID(BINDING_ID, DEVICE_F1155);
51 public static final String VALID_CHANNEL_ID_REGEX = "[1-5][0-9][0-9][0-9][0-9]";
53 public static final String PARAMETER_NAME_WRITE_API_URL = "writeApiUrl";
54 public static final String PARAMETER_NAME_VALIDATION_REGEXP = "validationExpression";
55 public static final String PARAMETER_NAME_OFF_MAPPING = "offMapping";
56 public static final String PARAMETER_NAME_ON_MAPPING = "onMapping";
58 // List of all channel types
59 public static final String CHANNEL_TYPE_NUMBER_UNSCALED = "type-number-unscaled";
60 public static final String CHANNEL_TYPE_NUMBER_SCALE10 = "type-number-scale10";
61 public static final String CHANNEL_TYPE_NUMBER_SCALE100 = "type-number-scale100";
62 public static final String CHANNEL_TYPE_TEMPERATURE = "type-temperature";
63 public static final String CHANNEL_TYPE_SWITCH = "type-switch";
64 public static final String CHANNEL_TYPE_POWER = "type-power";
65 public static final String CHANNEL_TYPE_ENERGY = "type-energy";
66 public static final String CHANNEL_TYPE_ELECTRIC_CURRENT = "type-electric-current";
67 public static final String CHANNEL_TYPE_TIME_UNSCALED = "type-time-unscaled";
68 public static final String CHANNEL_TYPE_TIME_SCALE10 = "type-time-scale10";
69 public static final String CHANNEL_TYPE_FREQUENCY_UNSCALED = "type-frequency-unscaled";
70 public static final String CHANNEL_TYPE_FREQUENCY_SCALE10 = "type-frequency-scale10";
71 public static final String CHANNEL_TYPE_FLOW = "type-flow";
72 public static final String CHANNEL_TYPE_SPEED = "type-speed-percent";
73 public static final String CHANNEL_TYPE_DEFROSTING_STATE = "type-defrosting-state";
74 public static final String CHANNEL_TYPE_HPAC_STATE = "type-hpac-state";
75 public static final String CHANNEL_TYPE_PRESSURE = "type-pressure";
77 public static final String RW_CHANNEL_PREFIX = "rw";
78 public static final String CHANNEL_TYPE_HEAT_OFFSET_RW = "rwtype-heat-offset";
79 public static final String CHANNEL_TYPE_START_COOLING_RW = "rwtype-start-cooling";
80 public static final String CHANNEL_TYPE_STOP_HEATING_RW = "rwtype-stop-heating";
81 public static final String CHANNEL_TYPE_STOP_ADD_HEATING_RW = "rwtype-stop-add-heating";
82 public static final String CHANNEL_TYPE_FILTER_TIME_RW = "rwtype-filter-time";
83 public static final String CHANNEL_TYPE_ROOM_SENSOR_FACTOR_RW = "rwtype-room-sensor-factor";
84 public static final String CHANNEL_TYPE_SWITCH_RW = "rwtype-switch";
85 public static final String CHANNEL_TYPE_DEGREE_MINUTES_RW = "rwtype-degree-minutes";
86 public static final String CHANNEL_TYPE_HW_LUX_RW = "rwtype-hw-lux";
87 public static final String CHANNEL_TYPE_HW_MODE_RW = "rwtype-hw-mode";
88 public static final String CHANNEL_TYPE_FAN_SPEED_RW = "rwtype-fan-speed";
91 public static final String STATUS_INVALID_NIBE_ID = "@text/status.invalid.nibeId";
92 public static final String STATUS_INVALID_CREDENTIALS = "@text/status.invalid.credentials";
95 public static final String LOGIN_URL = "https://www.nibeuplink.com/LogIn";
96 public static final String DATA_API_URL = "https://www.nibeuplink.com/PrivateAPI/QueueValues";
97 public static final String MANAGE_API_BASE_URL = "https://www.nibeuplink.com/System/";
100 public static final String LOGIN_FIELD_PASSWORD = "Password";
101 public static final String LOGIN_FIELD_EMAIL = "Email";
102 public static final String LOGIN_FIELD_RETURN_URL = "returnUrl";
105 public static final String DATA_API_FIELD_LAST_DATE = "currentWebDate";
106 public static final String DATA_API_FIELD_LAST_DATE_DEFAULT_VALUE = "01.01.2017 13:37:42";
107 public static final String DATA_API_FIELD_ID = "hpid";
108 public static final String DATA_API_FIELD_DATA = "variables";
109 public static final String DATA_API_FIELD_DATA_DEFAULT_VALUE = "0";
111 // web request constants
112 public static final long WEB_REQUEST_INITIAL_DELAY = TimeUnit.SECONDS.toMillis(30);
113 public static final long WEB_REQUEST_INTERVAL = TimeUnit.SECONDS.toMillis(5);
114 public static final int WEB_REQUEST_QUEUE_MAX_SIZE = 20;
116 public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections
117 .unmodifiableSet(Stream.of(THING_TYPE_VVM320, THING_TYPE_VVM310, THING_TYPE_F730, THING_TYPE_F750,
118 THING_TYPE_F1145, THING_TYPE_F1155).collect(Collectors.toSet()));