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 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),
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),
56 WIFI_STATUS_OK(1, EventType.WIFI_STATUS),
57 WIFI_STATUS_ERROR(0, EventType.WIFI_STATUS),
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);
67 public final List<EventType> types;
68 public final int subType;
70 EventSubType(int i, EventType... types) {
71 this.types = List.of(types);