2 * Copyright (c) 2010-2023 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.netatmo.internal.api.data;
15 import java.util.List;
17 import org.eclipse.jdt.annotation.NonNullByDefault;
20 * This enum describes sub events in relation to a given event
22 * @author Gaƫl L'hopital - Initial contribution
25 public enum EventSubType {
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),
36 ALIM_INCORRECT_POWER("1", EventType.ALIM),
37 ALIM_CORRECT_POWER("2", EventType.ALIM),
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 HUSH_ACTIVATED("0", EventType.HUSH),
47 HUSH_DEACTIVATED("1", EventType.HUSH),
48 SOUND_TEST_OK("0", EventType.SOUND_TEST),
49 SOUND_TEST_ERROR("1", EventType.SOUND_TEST),
50 DETECTOR_READY("0", EventType.TAMPERED),
51 DETECTOR_TAMPERED("1", EventType.TAMPERED),
53 // Carbon Monoxide Alarm
54 CO_OK("0", EventType.CO_DETECTED),
55 CO_PRE_ALARM("1", EventType.CO_DETECTED),
56 CO_ALARM("2", EventType.CO_DETECTED),
58 WIFI_STATUS_OK("1", EventType.WIFI_STATUS),
59 WIFI_STATUS_ERROR("0", EventType.WIFI_STATUS),
61 // Artificially implemented by the binding subtypes
62 PERSON_ARRIVAL("1", EventType.PERSON, EventType.PERSON_HOME),
63 PERSON_SEEN("2", EventType.PERSON),
64 PERSON_DEPARTURE("1", EventType.PERSON_AWAY),
65 MOVEMENT_HUMAN("1", EventType.MOVEMENT, EventType.HUMAN),
66 MOVEMENT_VEHICLE("2", EventType.MOVEMENT),
67 MOVEMENT_ANIMAL("3", EventType.MOVEMENT, EventType.ANIMAL),
69 // Weather station events
70 RAIN_ALARM("rain", EventType.ALARM_EVENT),
71 CO2_ALARM("co2", EventType.ALARM_EVENT);
73 public final List<EventType> types;
74 public final String subType;
76 EventSubType(String subType, EventType... types) {
77 this.types = List.of(types);
78 this.subType = subType;