|
//------------------------------------------------------------------------------
|
|
// Type definitions
|
|
// Do not touch this definitions
|
|
//------------------------------------------------------------------------------
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// WIFI
|
|
// -----------------------------------------------------------------------------
|
|
|
|
#define WIFI_STATE_AP 1
|
|
#define WIFI_STATE_STA 2
|
|
#define WIFI_STATE_AP_STA 3
|
|
#define WIFI_STATE_WPS 4
|
|
#define WIFI_STATE_SMARTCONFIG 8
|
|
|
|
#define WIFI_AP_ALLWAYS 1
|
|
#define WIFI_AP_FALLBACK 2
|
|
|
|
//------------------------------------------------------------------------------
|
|
// BUTTONS
|
|
//------------------------------------------------------------------------------
|
|
|
|
#define BUTTON_EVENT_NONE 0
|
|
#define BUTTON_EVENT_PRESSED 1
|
|
#define BUTTON_EVENT_RELEASED 2
|
|
#define BUTTON_EVENT_CLICK 2
|
|
#define BUTTON_EVENT_DBLCLICK 3
|
|
#define BUTTON_EVENT_LNGCLICK 4
|
|
#define BUTTON_EVENT_LNGLNGCLICK 5
|
|
#define BUTTON_EVENT_TRIPLECLICK 6
|
|
|
|
#define BUTTON_MODE_NONE 0
|
|
#define BUTTON_MODE_TOGGLE 1
|
|
#define BUTTON_MODE_ON 2
|
|
#define BUTTON_MODE_OFF 3
|
|
#define BUTTON_MODE_AP 4
|
|
#define BUTTON_MODE_RESET 5
|
|
#define BUTTON_MODE_PULSE 6
|
|
#define BUTTON_MODE_FACTORY 7
|
|
#define BUTTON_MODE_WPS 8
|
|
#define BUTTON_MODE_SMART_CONFIG 9
|
|
|
|
// Needed for ESP8285 boards under Windows using PlatformIO (?)
|
|
#ifndef BUTTON_PUSHBUTTON
|
|
#define BUTTON_PUSHBUTTON 0
|
|
#define BUTTON_SWITCH 1
|
|
#define BUTTON_DEFAULT_HIGH 2
|
|
#define BUTTON_SET_PULLUP 4
|
|
#endif
|
|
|
|
//------------------------------------------------------------------------------
|
|
// RELAY
|
|
//------------------------------------------------------------------------------
|
|
|
|
#define RELAY_BOOT_OFF 0
|
|
#define RELAY_BOOT_ON 1
|
|
#define RELAY_BOOT_SAME 2
|
|
#define RELAY_BOOT_TOGGLE 3
|
|
|
|
#define RELAY_TYPE_NORMAL 0
|
|
#define RELAY_TYPE_INVERSE 1
|
|
#define RELAY_TYPE_LATCHED 2
|
|
#define RELAY_TYPE_LATCHED_INVERSE 3
|
|
|
|
#define RELAY_SYNC_ANY 0
|
|
#define RELAY_SYNC_NONE_OR_ONE 1
|
|
#define RELAY_SYNC_ONE 2
|
|
#define RELAY_SYNC_SAME 3
|
|
|
|
#define RELAY_PULSE_NONE 0
|
|
#define RELAY_PULSE_OFF 1
|
|
#define RELAY_PULSE_ON 2
|
|
|
|
#define RELAY_PROVIDER_RELAY 0
|
|
#define RELAY_PROVIDER_DUAL 1
|
|
#define RELAY_PROVIDER_LIGHT 2
|
|
#define RELAY_PROVIDER_RFBRIDGE 3
|
|
#define RELAY_PROVIDER_STM 4
|
|
|
|
//------------------------------------------------------------------------------
|
|
// UDP SYSLOG
|
|
//------------------------------------------------------------------------------
|
|
|
|
// Priority codes:
|
|
#define SYSLOG_EMERG 0 /* system is unusable */
|
|
#define SYSLOG_ALERT 1 /* action must be taken immediately */
|
|
#define SYSLOG_CRIT 2 /* critical conditions */
|
|
#define SYSLOG_ERR 3 /* error conditions */
|
|
#define SYSLOG_WARNING 4 /* warning conditions */
|
|
#define SYSLOG_NOTICE 5 /* normal but significant condition */
|
|
#define SYSLOG_INFO 6 /* informational */
|
|
#define SYSLOG_DEBUG 7 /* debug-level messages */
|
|
|
|
// Facility codes:
|
|
#define SYSLOG_KERN (0<<3) /* kernel messages */
|
|
#define SYSLOG_USER (1<<3) /* random user-level messages */
|
|
#define SYSLOG_MAIL (2<<3) /* mail system */
|
|
#define SYSLOG_DAEMON (3<<3) /* system daemons */
|
|
#define SYSLOG_AUTH (4<<3) /* security/authorization messages */
|
|
#define SYSLOG_SYSLOG (5<<3) /* messages generated internally by syslogd */
|
|
#define SYSLOG_LPR (6<<3) /* line printer subsystem */
|
|
#define SYSLOG_NEWS (7<<3) /* network news subsystem */
|
|
#define SYSLOG_UUCP (8<<3) /* UUCP subsystem */
|
|
#define SYSLOG_CRON (9<<3) /* clock daemon */
|
|
#define SYSLOG_AUTHPRIV (10<<3) /* security/authorization messages (private) */
|
|
#define SYSLOG_FTP (11<<3) /* ftp daemon */
|
|
#define SYSLOG_LOCAL0 (16<<3) /* reserved for local use */
|
|
#define SYSLOG_LOCAL1 (17<<3) /* reserved for local use */
|
|
#define SYSLOG_LOCAL2 (18<<3) /* reserved for local use */
|
|
#define SYSLOG_LOCAL3 (19<<3) /* reserved for local use */
|
|
#define SYSLOG_LOCAL4 (20<<3) /* reserved for local use */
|
|
#define SYSLOG_LOCAL5 (21<<3) /* reserved for local use */
|
|
#define SYSLOG_LOCAL6 (22<<3) /* reserved for local use */
|
|
#define SYSLOG_LOCAL7 (23<<3) /* reserved for local use */
|
|
|
|
//------------------------------------------------------------------------------
|
|
// MQTT
|
|
//------------------------------------------------------------------------------
|
|
|
|
// Internal MQTT events
|
|
#define MQTT_CONNECT_EVENT 0
|
|
#define MQTT_DISCONNECT_EVENT 1
|
|
#define MQTT_MESSAGE_EVENT 2
|
|
|
|
//------------------------------------------------------------------------------
|
|
// LED
|
|
//------------------------------------------------------------------------------
|
|
|
|
#define LED_MODE_MQTT 0 // LED will be managed from MQTT (OFF by default)
|
|
#define LED_MODE_WIFI 1 // LED will blink according to the WIFI status
|
|
#define LED_MODE_FOLLOW 2 // LED will follow state of linked relay (check RELAY#_LED)
|
|
#define LED_MODE_FOLLOW_INVERSE 3 // LED will follow the opposite state of linked relay (check RELAY#_LED)
|
|
#define LED_MODE_FINDME 4 // LED will be ON if all relays are OFF
|
|
#define LED_MODE_FINDME_WIFI 5 // A mixture between WIFI and FINDME
|
|
#define LED_MODE_ON 6 // LED always ON
|
|
#define LED_MODE_OFF 7 // LED always OFF
|
|
#define LED_MODE_RELAY 8 // If any relay is ON, LED will be ON, otherwise OFF
|
|
#define LED_MODE_RELAY_WIFI 9 // A mixture between WIFI and RELAY, the reverse of MIXED
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// UI
|
|
// -----------------------------------------------------------------------------
|
|
|
|
#define UI_TAG_INPUT 0
|
|
#define UI_TAG_CHECKBOX 1
|
|
#define UI_TAG_SELECT 2
|
|
|
|
#define WEB_MODE_NORMAL 0
|
|
#define WEB_MODE_PASSWORD 1
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// LIGHT
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// Available light providers
|
|
#define LIGHT_PROVIDER_NONE 0
|
|
#define LIGHT_PROVIDER_MY92XX 1 // works with MY9291 and MY9231
|
|
#define LIGHT_PROVIDER_DIMMER 2
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// SCHEDULER
|
|
// -----------------------------------------------------------------------------
|
|
|
|
#define SCHEDULER_TYPE_SWITCH 1
|
|
#define SCHEDULER_TYPE_DIM 2
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// IR
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// IR Button modes
|
|
#define IR_BUTTON_MODE_NONE 0
|
|
#define IR_BUTTON_MODE_RGB 1
|
|
#define IR_BUTTON_MODE_HSV 2
|
|
#define IR_BUTTON_MODE_BRIGHTER 3
|
|
#define IR_BUTTON_MODE_STATE 4
|
|
#define IR_BUTTON_MODE_EFFECT 5
|
|
#define IR_BUTTON_MODE_TOGGLE 6
|
|
|
|
#define LIGHT_EFFECT_SOLID 0
|
|
#define LIGHT_EFFECT_FLASH 1
|
|
#define LIGHT_EFFECT_STROBE 2
|
|
#define LIGHT_EFFECT_FADE 3
|
|
#define LIGHT_EFFECT_SMOOTH 4
|
|
|
|
//------------------------------------------------------------------------------
|
|
// RESET
|
|
//------------------------------------------------------------------------------
|
|
|
|
#define CUSTOM_RESET_HARDWARE 1 // Reset from hardware button
|
|
#define CUSTOM_RESET_WEB 2 // Reset from web interface
|
|
#define CUSTOM_RESET_TERMINAL 3 // Reset from terminal
|
|
#define CUSTOM_RESET_MQTT 4 // Reset via MQTT
|
|
#define CUSTOM_RESET_RPC 5 // Reset via RPC (HTTP)
|
|
#define CUSTOM_RESET_OTA 6 // Reset after successful OTA update
|
|
#define CUSTOM_RESET_HTTP 7 // Reset via HTTP GET
|
|
#define CUSTOM_RESET_NOFUSS 8 // Reset after successful NOFUSS update
|
|
#define CUSTOM_RESET_UPGRADE 9 // Reset after update from web interface
|
|
#define CUSTOM_RESET_FACTORY 10 // Factory reset from terminal
|
|
|
|
#define CUSTOM_RESET_MAX 10
|
|
|
|
//------------------------------------------------------------------------------
|
|
// ENVIRONMENTAL
|
|
//------------------------------------------------------------------------------
|
|
|
|
// American Society of Heating, Refrigerating and Air-Conditioning Engineers suggests a range of 45% - 55% humidity to manage health effects and illnesses.
|
|
// Comfortable: 30% - 60%
|
|
// Recommended: 45% - 55%
|
|
// High : 55% - 80%
|
|
|
|
#define HUMIDITY_NORMAL 0 // > %30
|
|
#define HUMIDITY_COMFORTABLE 1 // > %45
|
|
#define HUMIDITY_DRY 2 // < %30
|
|
#define HUMIDITY_WET 3 // > %70
|
|
|
|
// United States Environmental Protection Agency - UV Index Scale
|
|
// One UV Index unit is equivalent to 25 milliWatts per square meter.
|
|
#define UV_INDEX_LOW 0 // 0 to 2 means low danger from the sun's UV rays for the average person.
|
|
#define UV_INDEX_MODERATE 1 // 3 to 5 means moderate risk of harm from unprotected sun exposure.
|
|
#define UV_INDEX_HIGH 2 // 6 to 7 means high risk of harm from unprotected sun exposure. Protection against skin and eye damage is needed.
|
|
#define UV_INDEX_VERY_HIGH 3 // 8 to 10 means very high risk of harm from unprotected sun exposure.
|
|
// Take extra precautions because unprotected skin and eyes will be damaged and can burn quickly.
|
|
#define UV_INDEX_EXTREME 4 // 11 or more means extreme risk of harm from unprotected sun exposure.
|
|
// Take all precautions because unprotected skin and eyes can burn in minutes.
|
|
|
|
//------------------------------------------------------------------------------
|
|
// UNITS
|
|
//------------------------------------------------------------------------------
|
|
|
|
#define POWER_WATTS 0
|
|
#define POWER_KILOWATTS 1
|
|
|
|
#define ENERGY_JOULES 0
|
|
#define ENERGY_KWH 1
|
|
|
|
#define TMP_CELSIUS 0
|
|
#define TMP_FAHRENHEIT 1
|
|
#define TMP_KELVIN 2
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Sensor ID
|
|
// These should remain over time, do not modify them, only add new ones at the end
|
|
//--------------------------------------------------------------------------------
|
|
|
|
#define SENSOR_DHTXX_ID 0x01
|
|
#define SENSOR_DALLAS_ID 0x02
|
|
#define SENSOR_EMON_ANALOG_ID 0x03
|
|
#define SENSOR_EMON_ADC121_ID 0x04
|
|
#define SENSOR_EMON_ADS1X15_ID 0x05
|
|
#define SENSOR_HLW8012_ID 0x06
|
|
#define SENSOR_V9261F_ID 0x07
|
|
#define SENSOR_ECH1560_ID 0x08
|
|
#define SENSOR_ANALOG_ID 0x09
|
|
#define SENSOR_DIGITAL_ID 0x10
|
|
#define SENSOR_EVENTS_ID 0x11
|
|
#define SENSOR_PMSX003_ID 0x12
|
|
#define SENSOR_BMX280_ID 0x13
|
|
#define SENSOR_MHZ19_ID 0x14
|
|
#define SENSOR_SI7021_ID 0x15
|
|
#define SENSOR_SHT3X_I2C_ID 0x16
|
|
#define SENSOR_BH1750_ID 0x17
|
|
#define SENSOR_PZEM004T_ID 0x18
|
|
#define SENSOR_AM2320_ID 0x19
|
|
#define SENSOR_GUVAS12SD_ID 0x20
|
|
#define SENSOR_CSE7766_ID 0x21
|
|
#define SENSOR_TMP3X_ID 0x22
|
|
#define SENSOR_HCSR04_ID 0x23
|
|
#define SENSOR_SENSEAIR_ID 0x24
|
|
#define SENSOR_GEIGER_ID 0x25
|
|
#define SENSOR_NTC_ID 0x26
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Magnitudes
|
|
//--------------------------------------------------------------------------------
|
|
|
|
#define MAGNITUDE_NONE 0
|
|
#define MAGNITUDE_TEMPERATURE 1
|
|
#define MAGNITUDE_HUMIDITY 2
|
|
#define MAGNITUDE_PRESSURE 3
|
|
#define MAGNITUDE_CURRENT 4
|
|
#define MAGNITUDE_VOLTAGE 5
|
|
#define MAGNITUDE_POWER_ACTIVE 6
|
|
#define MAGNITUDE_POWER_APPARENT 7
|
|
#define MAGNITUDE_POWER_REACTIVE 8
|
|
#define MAGNITUDE_POWER_FACTOR 9
|
|
#define MAGNITUDE_ENERGY 10
|
|
#define MAGNITUDE_ENERGY_DELTA 11
|
|
#define MAGNITUDE_ANALOG 12
|
|
#define MAGNITUDE_DIGITAL 13
|
|
#define MAGNITUDE_EVENTS 14
|
|
#define MAGNITUDE_PM1dot0 15
|
|
#define MAGNITUDE_PM2dot5 16
|
|
#define MAGNITUDE_PM10 17
|
|
#define MAGNITUDE_CO2 18
|
|
#define MAGNITUDE_LUX 19
|
|
#define MAGNITUDE_UV 20
|
|
#define MAGNITUDE_DISTANCE 21
|
|
#define MAGNITUDE_HCHO 22
|
|
#define MAGNITUDE_GEIGER_CPM 23
|
|
#define MAGNITUDE_GEIGER_SIEVERT 24
|
|
|
|
#define MAGNITUDE_MAX 25
|