supla-device
Loading...
Searching...
No Matches
events.h
1// SPDX-FileCopyrightText: AC SOFTWARE SP. Z O.O.
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#ifndef SRC_SUPLA_EVENTS_H_
5#define SRC_SUPLA_EVENTS_H_
6
7#include <stdint.h>
8
9namespace Supla {
10
11enum Event {
12 // Supla::Control::Button events
13 ON_PRESS, // Triggered on transition to valueOnPress()
14 ON_RELEASE, // Triggered on transition from valueOnPress()
15 ON_CHANGE, // Triggered on all transitions
16 ON_HOLD, // Triggered when button is hold
17 ON_CLICK_1, // ON_MULTI_x is triggered when multiclick is detected
18 ON_CLICK_2,
19 ON_CLICK_3,
20 ON_CLICK_4,
21 ON_CLICK_5,
22 ON_CLICK_6,
23 ON_CLICK_7,
24 ON_CLICK_8,
25 ON_CLICK_9,
26 ON_CLICK_10,
27 ON_CRAZY_CLICKER, // triggered on >= 10 clicks
28 ON_SEQUENCE_MATCH, // triggered by SequenceButton
29 ON_SEQUENCE_DOESNT_MATCH, // triggered by SequenceButton
30 ON_TURN_ON,
31 ON_TURN_OFF,
32 ON_SECONDARY_CHANNEL_CHANGE,
33 ON_LONG_CLICK_0,
34 ON_LONG_CLICK_1,
35 ON_LONG_CLICK_2,
36 ON_LONG_CLICK_3,
37 ON_LONG_CLICK_4,
38 ON_LONG_CLICK_5,
39 ON_LONG_CLICK_6,
40 ON_LONG_CLICK_7,
41 ON_LONG_CLICK_8,
42 ON_LONG_CLICK_9,
43 ON_LONG_CLICK_10,
44 // Conditional events are triggered only when no on_hold was send
45 // and we are not in the middle of muliclick detection.
46 // Otherwise they work as standard events.
47 // Conditional on_press is send on first press in multiclick detection
48 // and on_release is send only after first button release in multiclick
49 // detection (when no on_hold was send)
50 CONDITIONAL_ON_PRESS,
51 CONDITIONAL_ON_RELEASE,
52 CONDITIONAL_ON_CHANGE,
53 ON_HOLD_RELEASE,
54
55 // SuplaDeviceClass events
56 ON_DEVICE_STATUS_CHANGE,
57 ON_IDENTIFY,
58
59 // Html TextCmdInputParameter
60 ON_EVENT_1,
61 ON_EVENT_2,
62 ON_EVENT_3,
63 ON_EVENT_4,
64 ON_EVENT_5,
65 ON_EVENT_6,
66 ON_EVENT_7,
67 ON_EVENT_8,
68 ON_EVENT_9,
69 ON_EVENT_10,
70
71 // RGBW/DIMMER events
72 ON_DIMMER_TURN_ON, // when "brightness" changes from 0 to non-0
73 ON_DIMMER_TURN_OFF, // when "brightness" changes from non-0 to 0
74 ON_DIMMER_BRIGHTNESS_CHANGE, // on every change of "brightness"
75 ON_COLOR_TURN_ON, // when "color brightness" changes from 0 to non-0
76 ON_COLOR_TURN_OFF, // when "color brightness" changes from non-0 to 0
77 ON_COLOR_BRIGHTNESS_CHANGE, // on every change of "color brightness"
78 ON_RED_TURN_ON, // when "red" changes from 0 to non-0
79 ON_RED_TURN_OFF, // when "red" changes from non-0 to 0
80 ON_RED_CHANGE, // on every change of "red"
81 ON_GREEN_TURN_ON, // when "green" changes from 0 to non-0
82 ON_GREEN_TURN_OFF, // when "green" changes from non-0 to 0
83 ON_GREEN_CHANGE, // on every change of "green"
84 ON_BLUE_TURN_ON, // when "blue" changes from 0 to non-0
85 ON_BLUE_TURN_OFF, // when "blue" changes from non-0 to 0
86 ON_BLUE_CHANGE, // on every change of "blue"
87 ON_WHITE_TEMPERATURE_CHANGE, // on every change of "white temperature"
88
89 ON_CHANNEL_OFFLINE,
90 ON_CHANNEL_ONLINE,
91 ON_CHANNEL_FUNCTION_CHANGE,
92
93 ON_HVAC_HEATING,
94 ON_HVAC_COOLING,
95 ON_HVAC_STANDBY,
96 ON_HVAC_WEEKLY_SCHEDULE_ENABLED,
97 ON_HVAC_WEEKLY_SCHEDULE_DISABLED,
98 ON_HVAC_MODE_OFF,
99 ON_HVAC_MODE_HEAT,
100 ON_HVAC_MODE_COOL,
101 ON_HVAC_MODE_HEAT_COOL,
102
103 ON_ERROR,
104 ON_ERROR_CLEAR,
105
106 // Container events
107 ON_CONTAINER_ALARM_ACTIVE,
108 ON_CONTAINER_ALARM_INACTIVE,
109 ON_CONTAINER_WARNING_ACTIVE,
110 ON_CONTAINER_WARNING_INACTIVE,
111 ON_CONTAINER_INVALID_SENSOR_STATE_ACTIVE,
112 ON_CONTAINER_INVALID_SENSOR_STATE_INACTIVE,
113 ON_CONTAINER_SOUND_ALARM_ACTIVE,
114 ON_CONTAINER_SOUND_ALARM_INACTIVE,
115 ON_CONTAINER_SENSOR_OFFLINE_ACTIVE,
116 ON_CONTAINER_SENSOR_OFFLINE_INACTIVE,
117 ON_CONTAINER_SOUND_ALARM_MUTED,
118
119 // Valve events
120 ON_OPEN,
121 ON_CLOSE,
122 ON_FLOODING_ACTIVE,
123 ON_FLOODING_INACTIVE,
124 ON_VALVE_MANUALLY_CLOSED_ACTIVE,
125 ON_VALVE_MANUALLY_CLOSED_INACTIVE,
126 ON_MOTOR_PROBLEM_ACTIVE,
127 ON_MOTOR_PROBLEM_INACTIVE,
128
129 ON_SUBDEVICE_PAIRING_START,
130 ON_SUBDEVICE_PAIRING_END,
131
132 // Impulse counter
133 ON_IMPULSE,
134
135 ON_COUNTDOWN_TIMER,
136
137 // Keep it as last item
138 EVENT_ID_MAX
139};
140
141// Internally, event ids are stored as uint16_t
142static_assert(Supla::EVENT_ID_MAX <= UINT16_MAX);
143
144}; // namespace Supla
145
146#endif // SRC_SUPLA_EVENTS_H_