]> git.basschouten.com Git - openhab-addons.git/blob
3c85b30728bd45ad5a0bdc24e8214d4753ccff2f
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2024 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.ecovacs.internal;
14
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.openhab.binding.ecovacs.internal.api.commands.PlaySoundCommand.SoundType;
17 import org.openhab.binding.ecovacs.internal.api.model.CleanMode;
18 import org.openhab.binding.ecovacs.internal.api.model.DeviceCapability;
19 import org.openhab.binding.ecovacs.internal.api.model.MoppingWaterAmount;
20 import org.openhab.binding.ecovacs.internal.api.model.SuctionPower;
21 import org.openhab.binding.ecovacs.internal.util.StateOptionEntry;
22 import org.openhab.binding.ecovacs.internal.util.StateOptionMapping;
23 import org.openhab.core.thing.ThingTypeUID;
24
25 /**
26  * The {@link EcovacsBindingConstants} class defines common constants, which are
27  * used across the whole binding.
28  *
29  * @author Danny Baumann - Initial contribution
30  */
31 @NonNullByDefault
32 public class EcovacsBindingConstants {
33     private static final String BINDING_ID = "ecovacs";
34
35     // Client keys and secrets used for API authentication (extracted from Ecovacs app)
36     public static final String CLIENT_KEY = "1520391301804";
37     public static final String CLIENT_SECRET = "6c319b2a5cd3e66e39159c2e28f2fce9";
38     public static final String AUTH_CLIENT_KEY = "1520391491841";
39     public static final String AUTH_CLIENT_SECRET = "77ef58ce3afbe337da74aa8c5ab963a9";
40
41     // List of all Thing Type UIDs
42     public static final ThingTypeUID THING_TYPE_API = new ThingTypeUID(BINDING_ID, "ecovacsapi");
43     public static final ThingTypeUID THING_TYPE_VACUUM = new ThingTypeUID(BINDING_ID, "vacuum");
44
45     // List of all channel UIDs
46     public static final String CHANNEL_ID_AUTO_EMPTY = "settings#auto-empty";
47     public static final String CHANNEL_ID_BATTERY_LEVEL = "status#battery";
48     public static final String CHANNEL_ID_CLEANING_MODE = "status#current-cleaning-mode";
49     public static final String CHANNEL_ID_CLEANING_TIME = "status#current-cleaning-time";
50     public static final String CHANNEL_ID_CLEANED_AREA = "status#current-cleaned-area";
51     public static final String CHANNEL_ID_CLEANING_PASSES = "settings#cleaning-passes";
52     public static final String CHANNEL_ID_CLEANING_SPOT_DEFINITION = "status#current-cleaning-spot-definition";
53     public static final String CHANNEL_ID_CONTINUOUS_CLEANING = "settings#continuous-cleaning";
54     public static final String CHANNEL_ID_COMMAND = "actions#command";
55     public static final String CHANNEL_ID_DUST_FILTER_LIFETIME = "consumables#dust-filter-lifetime";
56     public static final String CHANNEL_ID_ERROR_CODE = "status#error-code";
57     public static final String CHANNEL_ID_ERROR_DESCRIPTION = "status#error-description";
58     public static final String CHANNEL_ID_LAST_CLEAN_START = "last-clean#last-clean-start";
59     public static final String CHANNEL_ID_LAST_CLEAN_DURATION = "last-clean#last-clean-duration";
60     public static final String CHANNEL_ID_LAST_CLEAN_AREA = "last-clean#last-clean-area";
61     public static final String CHANNEL_ID_LAST_CLEAN_MODE = "last-clean#last-clean-mode";
62     public static final String CHANNEL_ID_LAST_CLEAN_MAP = "last-clean#last-clean-map";
63     public static final String CHANNEL_ID_MAIN_BRUSH_LIFETIME = "consumables#main-brush-lifetime";
64     public static final String CHANNEL_ID_OTHER_COMPONENT_LIFETIME = "consumables#other-component-lifetime";
65     public static final String CHANNEL_ID_SIDE_BRUSH_LIFETIME = "consumables#side-brush-lifetime";
66     public static final String CHANNEL_ID_STATE = "status#state";
67     public static final String CHANNEL_ID_SUCTION_POWER = "settings#suction-power";
68     public static final String CHANNEL_ID_TOTAL_CLEANING_TIME = "total-stats#total-cleaning-time";
69     public static final String CHANNEL_ID_TOTAL_CLEANED_AREA = "total-stats#total-cleaned-area";
70     public static final String CHANNEL_ID_TOTAL_CLEAN_RUNS = "total-stats#total-clean-runs";
71     public static final String CHANNEL_ID_TRUE_DETECT_3D = "settings#true-detect-3d";
72     public static final String CHANNEL_ID_VOICE_VOLUME = "settings#voice-volume";
73     public static final String CHANNEL_ID_WATER_PLATE_PRESENT = "status#water-system-present";
74     public static final String CHANNEL_ID_WATER_AMOUNT = "settings#water-amount";
75     public static final String CHANNEL_ID_WIFI_RSSI = "status#wifi-rssi";
76
77     public static final String CHANNEL_TYPE_ID_CLEAN_MODE = "current-cleaning-mode";
78     public static final String CHANNEL_TYPE_ID_LAST_CLEAN_MODE = "last-clean-mode";
79
80     public static final String CMD_AUTO_CLEAN = "clean";
81     public static final String CMD_PAUSE = "pause";
82     public static final String CMD_RESUME = "resume";
83     public static final String CMD_CHARGE = "charge";
84     public static final String CMD_STOP = "stop";
85     public static final String CMD_SPOT_AREA = "spotArea";
86     public static final String CMD_CUSTOM_AREA = "customArea";
87
88     public static final StateOptionMapping<CleanMode> CLEAN_MODE_MAPPING = StateOptionMapping.of(
89             new StateOptionEntry<>(CleanMode.AUTO, "auto"),
90             new StateOptionEntry<>(CleanMode.EDGE, "edge", DeviceCapability.EDGE_CLEANING),
91             new StateOptionEntry<>(CleanMode.SPOT, "spot", DeviceCapability.SPOT_CLEANING),
92             new StateOptionEntry<>(CleanMode.SPOT_AREA, "spotArea", DeviceCapability.SPOT_AREA_CLEANING),
93             new StateOptionEntry<>(CleanMode.CUSTOM_AREA, "customArea", DeviceCapability.CUSTOM_AREA_CLEANING),
94             new StateOptionEntry<>(CleanMode.SINGLE_ROOM, "singleRoom", DeviceCapability.SINGLE_ROOM_CLEANING),
95             new StateOptionEntry<>(CleanMode.PAUSE, "pause"), new StateOptionEntry<>(CleanMode.STOP, "stop"),
96             new StateOptionEntry<>(CleanMode.WASHING, "washing"), new StateOptionEntry<>(CleanMode.DRYING, "drying"),
97             new StateOptionEntry<>(CleanMode.RETURNING, "returning"));
98
99     public static final StateOptionMapping<MoppingWaterAmount> WATER_AMOUNT_MAPPING = StateOptionMapping.of(
100             new StateOptionEntry<>(MoppingWaterAmount.LOW, "low"),
101             new StateOptionEntry<>(MoppingWaterAmount.MEDIUM, "medium"),
102             new StateOptionEntry<>(MoppingWaterAmount.HIGH, "high"),
103             new StateOptionEntry<>(MoppingWaterAmount.VERY_HIGH, "veryhigh"));
104
105     public static final StateOptionMapping<SuctionPower> SUCTION_POWER_MAPPING = StateOptionMapping.of(
106             new StateOptionEntry<>(SuctionPower.SILENT, "silent", DeviceCapability.EXTENDED_CLEAN_SPEED_CONTROL),
107             new StateOptionEntry<>(SuctionPower.NORMAL, "normal"), new StateOptionEntry<>(SuctionPower.HIGH, "high"),
108             new StateOptionEntry<>(SuctionPower.HIGHER, "higher", DeviceCapability.EXTENDED_CLEAN_SPEED_CONTROL));
109
110     public static final StateOptionMapping<SoundType> SOUND_TYPE_MAPPING = StateOptionMapping.of(
111             new StateOptionEntry<>(SoundType.BEEP, "beep"), new StateOptionEntry<>(SoundType.I_AM_HERE, "iAmHere"),
112             new StateOptionEntry<>(SoundType.STARTUP, "startup"),
113             new StateOptionEntry<>(SoundType.SUSPENDED, "suspended"),
114             new StateOptionEntry<>(SoundType.BATTERY_LOW, "batteryLow"));
115 }