]> git.basschouten.com Git - openhab-addons.git/blob
7cf497e66c86da582c69982d8545dffaeff8ad4e
[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.netatmo.internal.api.data;
14
15 import java.util.List;
16
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18
19 /**
20  * This enum describes sub events in relation to a given event
21  *
22  * @author GaĆ«l L'hopital - Initial contribution
23  */
24 @NonNullByDefault
25 public enum EventSubType {
26     // SD Card sub events
27     SD_CARD_MISSING(1, EventType.SD),
28     SD_CARD_INSERTED(2, EventType.SD),
29     SD_CARD_FORMATTED(3, EventType.SD),
30     SD_CARD_WORKING(4, EventType.SD),
31     SD_CARD_DEFECTIVE(5, EventType.SD),
32     SD_CARD_INCOMPATIBLE_SPEED(6, EventType.SD),
33     SD_CARD_INSUFFICIENT_SPACE(7, EventType.SD),
34
35     // Power sub events
36     ALIM_INCORRECT_POWER(1, EventType.ALIM),
37     ALIM_CORRECT_POWER(2, EventType.ALIM),
38
39     // Smoke detector sub events
40     DETECTION_CHAMBER_CLEAN(0, EventType.DETECTION_CHAMBER_STATUS),
41     DETECTION_CHAMBER_DIRTY(1, EventType.DETECTION_CHAMBER_STATUS),
42     BATTERY_LOW(0, EventType.BATTERY_STATUS),
43     BATTERY_VERY_LOW(1, EventType.BATTERY_STATUS),
44     SMOKE_CLEARED(0, EventType.SMOKE),
45     SMOKE_DETECTED(1, EventType.SMOKE),
46     SOUND_TEST_OK(0, EventType.SOUND_TEST),
47     SOUND_TEST_ERROR(1, EventType.SOUND_TEST),
48     DETECTOR_READY(0, EventType.TAMPERED),
49     DETECTOR_TAMPERED(1, EventType.TAMPERED),
50
51     // Carbon Monoxide Alarm
52     CO_OK(0, EventType.CO_DETECTED),
53     CO_PRE_ALARM(1, EventType.CO_DETECTED),
54     CO_ALARM(2, EventType.CO_DETECTED),
55
56     WIFI_STATUS_OK(1, EventType.WIFI_STATUS),
57     WIFI_STATUS_ERROR(0, EventType.WIFI_STATUS),
58
59     // Artificially implemented by the binding subtypes
60     PERSON_ARRIVAL(1, EventType.PERSON, EventType.PERSON_HOME),
61     PERSON_SEEN(2, EventType.PERSON),
62     PERSON_DEPARTURE(1, EventType.PERSON_AWAY),
63     MOVEMENT_HUMAN(1, EventType.MOVEMENT, EventType.HUMAN),
64     MOVEMENT_VEHICLE(2, EventType.MOVEMENT),
65     MOVEMENT_ANIMAL(3, EventType.MOVEMENT, EventType.ANIMAL);
66
67     public final List<EventType> types;
68     public final int subType;
69
70     EventSubType(int i, EventType... types) {
71         this.types = List.of(types);
72         this.subType = i;
73     }
74 }