Advertisement
Guest User

sonoff

a guest
Feb 6th, 2017
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.62 KB | None | 0 0
  1. // -- Project -------------------------------------
  2. #define PROJECT                "sonoff"          // PROJECT is used as the default topic delimiter and OTA file name
  3.                                                  //   As an IDE restriction it needs to be the same as the main .ino file
  4.  
  5. #define CFG_HOLDER             0x20161209        // [Reset 1] Change this value to load following default configuration parameters
  6. #define SAVE_DATA              1                 // [SaveData] Save changed parameters to Flash (0 = disable, 1 - 3600 seconds)
  7. #define SAVE_STATE             1                 // [SaveState] Save changed power state to Flash (0 = disable, 1 = enable)
  8.  
  9. // -- Wifi ----------------------------------------
  10. #define STA_SSID1              "CitrusNet"      // [Ssid1] Wifi SSID
  11. #define STA_PASS1              "xxxx"  // [Password1] Wifi password
  12. #define STA_SSID2              "CitrusNet"      // [Ssid2] Optional alternate AP Wifi SSID
  13. #define STA_PASS2              "xxxx"  // [Password2] Optional alternate AP Wifi password
  14. #define WIFI_HOSTNAME          "%s-%04d"         // [Hostname] Expands to <MQTT_TOPIC>-<last 4 decimal chars of MAC address>
  15. #define WIFI_CONFIG_TOOL       WIFI_WPSCONFIG    // [WifiConfig] Default tool if wifi fails to connect
  16.                                                  //   (WIFI_RESTART, WIFI_SMARTCONFIG, WIFI_MANAGER, WIFI_WPSCONFIG, WIFI_RETRY)
  17. // -- Syslog --------------------------------------
  18. #define SYS_LOG_HOST           "domus1"          // [LogHost] (Linux) syslog host
  19. #define SYS_LOG_PORT           514               // [LogPort] default syslog UDP port
  20. #define SYS_LOG_LEVEL          LOG_LEVEL_NONE    // [SysLog]
  21. #define SERIAL_LOG_LEVEL       LOG_LEVEL_INFO    // [SerialLog]
  22. #define WEB_LOG_LEVEL          LOG_LEVEL_INFO    // [WebLog]
  23.  
  24. // -- Ota -----------------------------------------
  25. #define OTA_URL                "http://domus1:80/api/arduino/" PROJECT ".ino.bin"  // [OtaUrl]
  26.  
  27. // -- MQTT ----------------------------------------
  28. #define MQTT_USE               1                 // [Mqtt] Select default MQTT use (0 = Off, 1 = On)
  29. // !!! TLS uses a LOT OF MEMORY (20k) so be careful to enable other options at the same time !!!
  30. //#define USE_MQTT_TLS                             // EXPERIMENTAL Use TLS for MQTT connection (+53k code, +20k mem)
  31.                                                  //   Needs Fingerprint, TLS Port, UserId and Password
  32. #ifdef USE_MQTT_TLS
  33.   #define MQTT_HOST            "192.168.1.4"  // [MqttHost]
  34.   #define MQTT_FINGERPRINT     "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07"  // [MqttFingerprint]
  35.   #define MQTT_PORT            8883                // [MqttPort] MQTT TLS port
  36.   #define MQTT_USER            "curtis"      // [MqttUser] Mandatory user
  37.   #define MQTT_PASS            "220123"  // [MqttPassword] Mandatory password
  38. #else
  39.   #define MQTT_HOST            "192.168.1.4"          // [MqttHost]
  40.   #define MQTT_PORT            8883              // [MqttPort] MQTT port (10123 on CloudMQTT)
  41.   #define MQTT_USER            "curtis"       // [MqttUser] Optional user
  42.   #define MQTT_PASS            "220123"       // [MqttPassword] Optional password
  43. #endif
  44.  
  45. #define MQTT_CLIENT_ID         "DVES_%06X"       // [MqttClient] Also fall back topic using Chip Id = last 6 characters of MAC address
  46.  
  47. #define SUB_PREFIX             "cmnd"            // Sonoff devices subscribe to:- SUB_PREFIX/MQTT_TOPIC and SUB_PREFIX/MQTT_GRPTOPIC
  48. #define PUB_PREFIX             "stat"            // Sonoff devices publish to:- PUB_PREFIX/MQTT_TOPIC
  49. #define PUB_PREFIX2            "tele"            // Sonoff devices publish telemetry data to:- PUB_PREFIX2/MQTT_TOPIC/UPTIME, POWER/LIGHT and TIME
  50.                                                  //   May be named the same as PUB_PREFIX
  51. #define MQTT_TOPIC             PROJECT           // [Topic] (unique) MQTT device topic
  52. #define MQTT_GRPTOPIC          "sonoffs"         // [GroupTopic] MQTT Group topic
  53. #define MQTT_BUTTON_RETAIN     0                 // [ButtonRetain] Button may send retain flag (0 = off, 1 = on)
  54. #define MQTT_POWER_RETAIN      0                 // [PowerRetain] Power status message may send retain flag (0 = off, 1 = on)
  55. #define MQTT_SWITCH_RETAIN     0                 // [SwitchRetain] Switch may send retain flag (0 = off, 1 = on)
  56.  
  57. #define MQTT_STATUS_OFF        "OFF"             // Command or Status result when turned off (needs to be a string like "0" or "Off")
  58. #define MQTT_STATUS_ON         "ON"              // Command or Status result when turned on (needs to be a string like "1" or "On")
  59. #define MQTT_CMND_TOGGLE       "TOGGLE"          // Command to send when toggling (needs to be a string like "2" or "Toggle")
  60.  
  61. // -- MQTT - Telemetry ----------------------------
  62. #define TELE_PERIOD            300               // [TelePeriod] Telemetry (0 = disable, 10 - 3600 seconds)
  63.  
  64. // -- MQTT - Domoticz -----------------------------
  65. #define USE_DOMOTICZ                             // Enable Domoticz (+5k code, +0.3k mem) - Disable by //
  66.   #define DOMOTICZ_IN_TOPIC      "domoticz/in"   // [DomoticzInTopic]
  67.   #define DOMOTICZ_OUT_TOPIC     "domoticz/out"  // [DomoticzOutTopic]
  68.   #define DOMOTICZ_UPDATE_TIMER  0               // [DomoticzUpdateTimer] Send relay status (0 = disable, 1 - 3600 seconds) (Optional)
  69.  
  70. // -- HTTP ----------------------------------------
  71. #define USE_WEBSERVER                            // Enable web server and wifi manager (+43k code, +2k mem) - Disable by //
  72.   #define FRIENDLY_NAME          "Sonofftemp"        // [FriendlyName] Friendlyname up to 32 characters used by webpages and Alexa
  73.   #define WEB_SERVER             2               // [WebServer] Web server (0 = Off, 1 = Start as User, 2 = Start as Admin)
  74.   #define USE_EMULATION                          // Enable Belkin WeMo and Hue Bridge emulation for Alexa (+11k code, +2k mem)
  75.     #define EMULATION            EMUL_WEMO       // [Emulation] Select Belkin WeMo or Hue Bridge emulation (EMUL_NONE, EMUL_WEMO or EMUL_HUE)
  76.  
  77. // -- mDNS ----------------------------------------
  78. #define USE_DISCOVERY                            // Enable mDNS for the following services (+8k code, +0.3k mem)
  79.   #define WEBSERVER_ADVERTISE                    // Provide access to webserver by name <Hostname>.local/
  80.   #define MQTT_HOST_DISCOVERY                    // Find MQTT host server (overrides MQTT_HOST if found)
  81.  
  82. // -- Time - Up to three NTP servers in your region
  83. #define NTP_SERVER1            "pool.ntp.org"
  84. #define NTP_SERVER2            "nl.pool.ntp.org"
  85. #define NTP_SERVER3            "0.nl.pool.ntp.org"
  86.  
  87. // -- Time - Start Daylight Saving Time and timezone offset from UTC in minutes
  88. #define TIME_DST               Last, Sun, Mar, 2, +120  // Last sunday in march at 02:00 +120 minutes
  89.  
  90. // -- Time - Start Standard Time and timezone offset from UTC in minutes
  91. #define TIME_STD               Last, Sun, Oct, 3, +60   // Last sunday in october 02:00 +60 minutes
  92.  
  93. // -- Application ---------------------------------
  94. #define APP_TIMEZONE           1                 // [Timezone] +1 hour (Amsterdam) (-12 .. 12 = hours from UTC, 99 = use TIME_DST/TIME_STD)
  95. #define APP_LEDSTATE           LED_POWER         // [LedState] Function of led (LED_OFF, LED_POWER, LED_MQTTSUB, LED_POWER_MQTTSUB, LED_MQTTPUB, LED_POWER_MQTTPUB, LED_MQTT, LED_POWER_MQTT)
  96. #define APP_PULSETIME          0                 // [PulseTime] Time in 0.1 Sec to turn off power for relay 1 (0 = disabled)
  97. #define APP_POWERON_STATE      3                 // [PowerOnState] Power On Relay state (0 = Off, 1 = On, 2 = Toggle Saved state, 3 = Saved state)
  98. #define APP_BLINKTIME          10                // [BlinkTime] Time in 0.1 Sec to blink/toggle power for relay 1
  99. #define APP_BLINKCOUNT         10                // [BlinkCount] Number of blinks (0 = 32000)
  100. #define APP_SLEEP              0                 // [Sleep] Sleep time to lower energy consumption (0 = Off, 1 - 250 mSec)
  101.  
  102. #define SWITCH_MODE            TOGGLE            // [SwitchMode] TOGGLE, FOLLOW, FOLLOW_INV, PUSHBUTTON or PUSHBUTTON_INV (the wall switch state)
  103. #define WS2812_LEDS            30                // [Pixels] Number of WS2812 LEDs to start with
  104.  
  105. #define TEMP_CONVERSION        1                 // Convert temperature to (0 = Celsius or 1 = Fahrenheit)
  106. #define TEMP_RESOLUTION        1                 // Maximum number of decimals (0 - 3) showing sensor Temperature
  107. #define HUMIDITY_RESOLUTION    1                 // Maximum number of decimals (0 - 3) showing sensor Humidity
  108. #define PRESSURE_RESOLUTION    1                 // Maximum number of decimals (0 - 3) showing sensor Pressure
  109.  
  110. // -- Sensor code selection -----------------------
  111. #define USE_DHT2                                 // Optional using Adafruit DHT library
  112. //#define USE_DS18x20                              // Optional using OneWire library for multiple DS18B20 and/or DS18S20
  113.  
  114. //#define USE_I2C                                  // I2C Support (+10k code, 0.2k mem)//
  115. //  #define USE_BH1750                             // Add I2C code for BH1750 sensor
  116.  // #define USE_BMP                                // Add I2C code for BMP/BME280 sensor
  117. //  #define USE_HTU                                // Add I2C code for HTU21 sensor
  118.  
  119. //#define USE_WS2812                               // WS2812 Led string support (+8k code, +1k mem)
  120.  // #define USE_WS2812_CTYPE     1                 // WS2812 Color type (0 - RGB, 1 - GRB)
  121. //  #define USE_WS2812_DMA                         // DMA supports only GPIO03 (= Serial TXD) (+1k mem)
  122.                                                  //   When USE_WS2812_DMA is enabled expect Exceptions on Pow
  123.  
  124. /*********************************************************************************************\
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement