2017-10-18 17:22:34 +01:00
|
|
|
/*
|
|
|
|
sonoff_post.h - Post header file for Sonoff-Tasmota
|
|
|
|
|
2017-12-22 13:55:24 +00:00
|
|
|
Copyright (C) 2018 Theo Arends
|
2017-10-18 17:22:34 +01:00
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _SONOFF_POST_H_
|
|
|
|
#define _SONOFF_POST_H_
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "user_interface.h"
|
|
|
|
|
|
|
|
// Function prototypes
|
|
|
|
void WifiWpsStatusCallback(wps_cb_status status);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2018-02-10 14:13:27 +00:00
|
|
|
#define USE_DHT // Default DHT11 sensor needs no external library
|
|
|
|
|
|
|
|
#ifdef USE_ALL_SENSORS // ===================== Configure sonoff-xxl.bin =========================
|
|
|
|
#define USE_ADC_VCC // Display Vcc in Power status. Disable for use as Analog input on selected devices
|
|
|
|
#define USE_DS18x20 // For more than one DS18x20 sensors with id sort, single scan and read retry (+1k3 code)
|
|
|
|
//#define USE_DS18x20_LEGACY // For more than one DS18x20 sensors with dynamic scan using library OneWire (+1k5 code)
|
|
|
|
#define USE_I2C // I2C using library wire (+10k code, 0k2 mem, 124 iram)
|
|
|
|
#define USE_SHT // Add I2C emulating code for SHT1X sensor (+1k4 code)
|
|
|
|
#define USE_SHT3X // Add I2C code for SHT3x sensor (+0k6 code)
|
|
|
|
#define USE_HTU // Add I2C code for HTU21/SI7013/SI7020/SI7021 sensor (+1k5 code)
|
|
|
|
#define USE_BMP // Add I2C code for BMP085/BMP180/BMP280/BME280 sensor (+4k code)
|
|
|
|
#define USE_BME680 // Add additional support for BME680 sensor using Adafruit Sensor and BME680 libraries (+6k code)
|
|
|
|
#define USE_BH1750 // Add I2C code for BH1750 sensor (+0k5 code)
|
|
|
|
#define USE_VEML6070 // Add I2C code for VEML6070 sensor (+0k5 code)
|
|
|
|
#define USE_TSL2561 // Add I2C code for TSL2561 sensor using library Adafruit TSL2561 Arduino (+1k2 code)
|
|
|
|
#define USE_ADS1115 // Add I2C code for ADS1115 16 bit A/D converter based on Adafruit ADS1x15 library (no library needed) (+0k7 code)
|
2018-02-20 15:10:31 +00:00
|
|
|
//#define USE_ADS1115_I2CDEV // Add I2C code for ADS1115 16 bit A/D converter using library i2cdevlib-Core and i2cdevlib-ADS1115 (+2k code)
|
2018-02-10 14:13:27 +00:00
|
|
|
#define USE_INA219 // Add I2C code for INA219 Low voltage and current sensor (+1k code)
|
2018-02-20 15:10:31 +00:00
|
|
|
#define USE_MGS // Add I2C code for Xadow and Grove Mutichannel Gas sensor using library Multichannel_Gas_Sensor (+10k code)
|
2018-02-10 14:13:27 +00:00
|
|
|
#define USE_MHZ19 // Add support for MH-Z19 CO2 sensor (+2k code)
|
|
|
|
#define USE_SENSEAIR // Add support for SenseAir K30, K70 and S8 CO2 sensor (+2k3 code)
|
|
|
|
#ifndef CO2_LOW
|
|
|
|
#define CO2_LOW 800 // Below this CO2 value show green light (needs PWM or WS2812 RG(B) led and enable with SetOption18 1)
|
|
|
|
#endif
|
|
|
|
#ifndef CO2_HIGH
|
|
|
|
#define CO2_HIGH 1200 // Above this CO2 value show red light (needs PWM or WS2812 RG(B) led and enable with SetOption18 1)
|
|
|
|
#endif
|
|
|
|
#define USE_PMS5003 // Add support for PMS5003 and PMS7003 particle concentration sensor (+1k3 code)
|
2018-03-03 14:28:30 +00:00
|
|
|
#define USE_NOVA_SDS // Add support for SDS011 and SDS021 particle concentration sensor (+0k7 code)
|
2018-02-10 14:13:27 +00:00
|
|
|
#define USE_PZEM004T // Add support for PZEM004T Energy monitor (+2k code)
|
2018-03-20 13:31:11 +00:00
|
|
|
#define USE_SERIAL_BRIDGE // Add support for software Serial Bridge (+0k8 code)
|
2018-02-10 14:13:27 +00:00
|
|
|
#define USE_IR_REMOTE // Send IR remote commands using library IRremoteESP8266 and ArduinoJson (+4k code, 0k3 mem, 48 iram)
|
|
|
|
#define USE_IR_HVAC // Support for HVAC system using IR (+2k code)
|
|
|
|
#define USE_IR_RECEIVE // Support for IR receiver (+5k5 code, 264 iram)
|
|
|
|
#define USE_WS2812 // WS2812 Led string using library NeoPixelBus (+5k code, +1k mem, 232 iram) - Disable by //
|
|
|
|
#ifndef USE_WS2812_CTYPE
|
2018-03-17 14:22:29 +00:00
|
|
|
#define USE_WS2812_CTYPE NEO_GRB // WS2812 Color type (NEO_RGB, NEO_GRB, NEO_BRG, NEO_RBG, NEO_RGBW, NEO_GRBW)
|
2018-02-10 14:13:27 +00:00
|
|
|
#endif
|
|
|
|
// #define USE_WS2812_DMA // DMA supports only GPIO03 (= Serial RXD) (+1k mem). When USE_WS2812_DMA is enabled expect Exceptions on Pow
|
|
|
|
#define USE_ARILUX_RF // Add support for Arilux RF remote controller (+0k8 code, 252 iram (non 2.3.0))
|
|
|
|
#endif // USE_ALL_SENSORS =====================
|
v5.9.1j - Add Dual R2, Rewrite DS18x20 and fixes
5.9.1j
* Revert changes to xsns_05_ds18x20.ino and rename to
xsns_05_ds18x20_legacy.ino still needing library OneWire and providing
legacy JSON message:
*
"DS18x20":{"DS1":{"Type":"DS18B20","Address":"284CC48E04000079","Temperature":19.5},"DS2":{"Type":"DS18B20","Address":"283AC28304000052","Temperature":19.6}}
* Add new xdrv_05_ds18x20.ino free from library OneWire and add the
following features:
* Add support for DS1822
* Add forced setting of
12-bit resolution for selected device types (#1222)
* Add read
temperature retry counter (#1215)
* Fix lost sensors by performing
sensor probe at restart only thereby removing dynamic sensor probe
(#1215)
* Fix sensor address sorting using ascending sort on sensor
type followed by sensor address
* Rewrite JSON resulting in shorter
message allowing more sensors in default firmware image:
*
"DS18B20-1":{"Id":"00000483C23A","Temperature":19.5},"DS18B20-2":{"Id":"0000048EC44C","Temperature":19.6}
* Add additional define in user_config.h to select either single sensor
(defines disabled), new multi sensor (USE_DS18X20) or legacy multi
sensor (USE_DS18X20_LEGACY)
* Add support for Sonoff Dual R2 (#1249)
*
Fix ADS1115 detection (#1258)
2017-11-27 16:46:51 +00:00
|
|
|
|
|
|
|
#if defined(USE_DS18x20) || defined(USE_DS18x20_LEGACY)
|
|
|
|
#else
|
2018-02-10 14:13:27 +00:00
|
|
|
#define USE_DS18B20 // Default DS18B20 sensor needs no external library
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
v5.9.1j - Add Dual R2, Rewrite DS18x20 and fixes
5.9.1j
* Revert changes to xsns_05_ds18x20.ino and rename to
xsns_05_ds18x20_legacy.ino still needing library OneWire and providing
legacy JSON message:
*
"DS18x20":{"DS1":{"Type":"DS18B20","Address":"284CC48E04000079","Temperature":19.5},"DS2":{"Type":"DS18B20","Address":"283AC28304000052","Temperature":19.6}}
* Add new xdrv_05_ds18x20.ino free from library OneWire and add the
following features:
* Add support for DS1822
* Add forced setting of
12-bit resolution for selected device types (#1222)
* Add read
temperature retry counter (#1215)
* Fix lost sensors by performing
sensor probe at restart only thereby removing dynamic sensor probe
(#1215)
* Fix sensor address sorting using ascending sort on sensor
type followed by sensor address
* Rewrite JSON resulting in shorter
message allowing more sensors in default firmware image:
*
"DS18B20-1":{"Id":"00000483C23A","Temperature":19.5},"DS18B20-2":{"Id":"0000048EC44C","Temperature":19.6}
* Add additional define in user_config.h to select either single sensor
(defines disabled), new multi sensor (USE_DS18X20) or legacy multi
sensor (USE_DS18X20_LEGACY)
* Add support for Sonoff Dual R2 (#1249)
*
Fix ADS1115 detection (#1258)
2017-11-27 16:46:51 +00:00
|
|
|
|
2018-02-10 14:13:27 +00:00
|
|
|
//#define DEBUG_THEO // Add debug code
|
2017-10-18 17:22:34 +01:00
|
|
|
|
2018-02-10 14:13:27 +00:00
|
|
|
#ifdef BE_MINIMAL // ========================== Configure sonoff-minimal.bin =====================
|
2017-10-18 17:22:34 +01:00
|
|
|
#ifdef USE_MQTT_TLS
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_MQTT_TLS // Disable TLS support won't work as the MQTTHost is not set
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
#ifdef USE_DISCOVERY
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_DISCOVERY // Disable Discovery services for both MQTT and web server
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
#ifdef USE_DOMOTICZ
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_DOMOTICZ // Disable Domoticz
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
2018-01-18 15:19:28 +00:00
|
|
|
#ifdef USE_HOME_ASSISTANT
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_HOME_ASSISTANT // Disable Home Assistant
|
2018-01-18 15:19:28 +00:00
|
|
|
#endif
|
2017-10-18 17:22:34 +01:00
|
|
|
//#ifdef USE_WEBSERVER
|
2018-02-10 14:13:27 +00:00
|
|
|
//#undef USE_WEBSERVER // Disable Webserver
|
2017-10-18 17:22:34 +01:00
|
|
|
//#endif
|
|
|
|
#ifdef USE_EMULATION
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_EMULATION // Disable Wemo or Hue emulation
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
2017-12-16 14:51:45 +00:00
|
|
|
#ifdef USE_PZEM004T
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_PZEM004T // Disable PZEM004T energy sensor
|
2017-12-16 14:51:45 +00:00
|
|
|
#endif
|
2017-10-18 17:22:34 +01:00
|
|
|
#ifdef USE_DS18x20
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_DS18x20 // Disable DS18x20 sensor
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
#ifdef USE_I2C
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_I2C // Disable all I2C sensors and devices
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
#ifdef USE_SPI
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_SPI // Disable all SPI devices
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
#ifdef USE_WS2812
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_WS2812 // Disable WS2812 Led string
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
#ifdef USE_DS18B20
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_DS18B20 // Disable internal DS18B20 sensor
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
#ifdef USE_DHT
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_DHT // Disable internal DHT sensor
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
2018-02-07 16:50:02 +00:00
|
|
|
#ifdef USE_DISPLAY
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_DISPLAY // Disable Display support
|
2018-02-07 16:50:02 +00:00
|
|
|
#endif
|
|
|
|
#ifdef USE_MHZ19
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_MHZ19 // Disable support for MH-Z19 CO2 sensor
|
2018-02-07 16:50:02 +00:00
|
|
|
#endif
|
|
|
|
#ifdef USE_SENSEAIR
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_SENSEAIR // Disable support for SenseAir K30, K70 and S8 CO2 sensor
|
2018-02-07 16:50:02 +00:00
|
|
|
#endif
|
2017-10-18 17:22:34 +01:00
|
|
|
#ifdef USE_IR_REMOTE
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_IR_REMOTE // Disable IR driver
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
2018-02-07 16:50:02 +00:00
|
|
|
#ifdef USE_ARILUX_RF
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef USE_ARILUX_RF // Disable support for Arilux RF remote controller
|
2018-02-07 16:50:02 +00:00
|
|
|
#endif
|
2017-10-18 17:22:34 +01:00
|
|
|
#ifdef DEBUG_THEO
|
2018-02-10 14:13:27 +00:00
|
|
|
#undef DEBUG_THEO // Disable debug code
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
2018-02-10 14:13:27 +00:00
|
|
|
#endif // BE_MINIMAL ==========================
|
2017-10-18 17:22:34 +01:00
|
|
|
|
|
|
|
#ifndef SWITCH_MODE
|
2018-02-10 14:13:27 +00:00
|
|
|
#define SWITCH_MODE TOGGLE // TOGGLE, FOLLOW or FOLLOW_INV (the wall switch state)
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
|
2018-03-09 17:08:17 +00:00
|
|
|
#ifndef MQTT_FINGERPRINT1
|
|
|
|
#define MQTT_FINGERPRINT1 "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef MQTT_FINGERPRINT2
|
|
|
|
#define MQTT_FINGERPRINT2 "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07"
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef WS2812_LEDS
|
2018-02-10 14:13:27 +00:00
|
|
|
#define WS2812_LEDS 30 // [Pixels] Number of LEDs
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
|
2018-02-27 13:59:46 +00:00
|
|
|
#ifndef MQTT_MAX_PACKET_SIZE
|
|
|
|
#define MQTT_MAX_PACKET_SIZE 1000
|
|
|
|
#endif
|
|
|
|
#ifndef MQTT_KEEPALIVE
|
|
|
|
#define MQTT_KEEPALIVE 15
|
|
|
|
#endif
|
|
|
|
|
2017-10-18 17:22:34 +01:00
|
|
|
#ifndef MESSZ
|
2018-01-18 15:19:28 +00:00
|
|
|
//#define MESSZ 405 // Max number of characters in JSON message string (6 x DS18x20 sensors)
|
|
|
|
//#define MESSZ 893 // Max number of characters in JSON message string (Hass discovery and nice MQTT_MAX_PACKET_SIZE = 1000)
|
|
|
|
#define MESSZ (MQTT_MAX_PACKET_SIZE -TOPSZ -7) // Max number of characters in JSON message string (6 x DS18x20 sensors)
|
2017-10-18 17:22:34 +01:00
|
|
|
#endif
|
|
|
|
|
2018-01-26 14:21:57 +00:00
|
|
|
//#include <core_version.h> // Arduino_Esp8266 version information (ARDUINO_ESP8266_RELEASE and ARDUINO_ESP8266_RELEASE_2_3_0)
|
2018-01-06 16:34:42 +00:00
|
|
|
#ifndef ARDUINO_ESP8266_RELEASE
|
2018-02-24 15:37:33 +00:00
|
|
|
#define ARDUINO_ESP8266_RELEASE "STAGE"
|
2018-01-06 16:34:42 +00:00
|
|
|
#endif
|
2017-10-18 17:22:34 +01:00
|
|
|
|
2018-03-03 14:28:30 +00:00
|
|
|
#endif // _SONOFF_POST_H_
|