LightHub  v4.0.0
Smarthome controller firmware
options.h
Go to the documentation of this file.
1 #pragma once
2 #include <Arduino.h>
3 #define DEFAULT_FILESIZE_LIMIT 65535
4 #ifndef MAX_JSON_CONF_SIZE
5 
6 #if defined(__SAM3X8E__)
7 #define MAX_JSON_CONF_SIZE 24000
8 #elif defined(ARDUINO_ARCH_AVR)
9 #define MAX_JSON_CONF_SIZE 4096
10 #elif defined(ARDUINO_ARCH_ESP32)
11 #define MAX_JSON_CONF_SIZE 65535
12 #else
13 #define MAX_JSON_CONF_SIZE 32000
14 #endif
15 
16 #endif
17 
18 #ifdef MDNS_ENABLE
19  #ifndef OTA_PORT
20  #define OTA_PORT 65280
21  #endif
22 #endif
23 
24 // Configuration of drivers enabled
25 #define SYSLOG_LOCAL_SOCKET 514
26 
27 #ifndef MODBUS_UART_RX_PIN
28 #define MODBUS_UART_RX_PIN -1
29 #endif
30 
31 #ifndef MODBUS_UART_TX_PIN
32 #define MODBUS_UART_TX_PIN -1
33 #endif
34 
35 #ifndef FASTLED
36 #define ADAFRUIT_LED
37 #endif
38 // ADAFRUIT library allow to dynamically configure SPI LED Strip Parameters
39 
40 // If not defined ADAFRUIT_LED - FastLED library will be used instead
41 // And strip type, pin, order must defined on compilation time
42 #ifndef CONTROLLER
43 #define CONTROLLER TM1809
44 #endif
45 
46 #ifndef SCALE_VOLUME_100
47 #define SCALE_VOLUME_100 false
48 #endif
49 
50 #ifndef DATA_PIN
51 #define DATA_PIN 4
52 #endif
53 
54 #ifndef ORDER
55 #define ORDER BRG
56 #endif
57 
58 #ifndef MODBUS_TX_PIN
59 #define TXEnablePin 13
60 #else
61 #define TXEnablePin MODBUS_TX_PIN
62 #endif
63 
64 //#define ESP_EEPROM_SIZE 2048
65 
66 #ifndef AVR_DMXOUT_PIN
67 #define AVR_DMXOUT_PIN 18
68 #endif
69 
70 #define WIFI_TIMEOUT 60000UL
71 #define TIMEOUT_RECONNECT 10000UL
72 #define TIMEOUT_REINIT 5000UL
73 #define TIMEOUT_RETAIN 8000UL
74 #define INTERVAL_1W 5000UL
75 #define PERIOD_THERMOSTAT_FAILED (600 * 1000UL)
76 
77 //#define T_ATTEMPTS 200
78 //#define IET_TEMP 0
79 //#define IET_ATTEMPTS 1
80 
81 #define THERMO_GIST_CELSIUS 1.
82 #define THERMO_OVERHEAT_CELSIUS 38.
83 #define FM_OVERHEAT_CELSIUS 40.
84 
85 #define MIN_VOLUME 25
86 #define INIT_VOLUME 40
87 
88 /*
89 #define MAXFLASHSTR 32
90 #define PWDFLASHSTR 16
91 #define EEPROM_SIGNATURE "LHCF"
92 #define EEPROM_SIGNATURE_LENGTH 4
93 
94 #define OFFSET_MAC 0
95 #define OFFSET_IP OFFSET_MAC+6
96 #define OFFSET_DNS OFFSET_IP+4
97 #define OFFSET_GW OFFSET_DNS+4
98 #define OFFSET_MASK OFFSET_GW+4
99 #define OFFSET_CONFIGSERVER OFFSET_MASK+4
100 #define OFFSET_MQTT_PWD OFFSET_CONFIGSERVER+MAXFLASHSTR
101 #define OFFSET_SIGNATURE OFFSET_MQTT_PWD+PWDFLASHSTR
102 #define EEPROM_offset_NotAlligned OFFSET_SIGNATURE+EEPROM_SIGNATURE_LENGTH
103 #define EEPROM_offsetJSON EEPROM_offset_NotAlligned + (4 -(EEPROM_offset_NotAlligned & 3))
104 //#define EEPROM_offsetJSON IFLASH_PAGE_SIZE
105 #define EEPROM_FIX_PART_LEN EEPROM_offsetJSON-OFFSET_MAC
106 */
107 
108 #ifndef INTERVAL_CHECK_INPUT
109 #define INTERVAL_CHECK_INPUT 11
110 #endif
111 
112 #ifndef TIMER_CHECK_INPUT
113 #define TIMER_CHECK_INPUT 15
114 #endif
115 #ifndef INTERVAL_CHECK_SENSOR
116 #define INTERVAL_CHECK_SENSOR 5000
117 #endif
118 
119 #define INTERVAL_SLOW_POLLING 1000
120 //#define INTERVAL_POLLING 100
121 #define THERMOSTAT_CHECK_PERIOD 30000
122 
123 #ifndef OW_UPDATE_INTERVAL
124 #define OW_UPDATE_INTERVAL 5000
125 #endif
126 
127 #ifndef MODBUS_SERIAL_BAUD
128 #define MODBUS_SERIAL_BAUD 9600
129 #endif
130 
131 #ifndef MODBUS_DIMMER_PARAM
132 #define MODBUS_DIMMER_PARAM SERIAL_8N1
133 #endif
134 
135 #define dimPar MODBUS_DIMMER_PARAM
136 #define fmPar SERIAL_8N1
137 
138 #ifndef SERIAL_BAUD
139 #define SERIAL_BAUD 115200
140 #endif
141 
142 #ifndef CUSTOM_FIRMWARE_MAC
143 #define DEFAULT_FIRMWARE_MAC {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xFF}
144 #endif
145 
146 #ifndef MY_CONFIG_SERVER
147 #define CONFIG_SERVER "lazyhome.ru"
148 #else
149 #define CONFIG_SERVER QUOTE(MY_CONFIG_SERVER)
150 #endif
151 
152 #ifndef HOMETOPIC
153 #define HOMETOPIC "myhome"
154 #endif
155 
156 //Default output topic
157 #ifndef OUTTOPIC
158 #define OUTTOPIC "s_out"
159 #endif
160 
161 //Topic to receive CLI commands
162 #ifndef CMDTOPIC
163 #define CMDTOPIC "$command"
164 #endif
165 
166 //Default broadcast topic
167 #ifndef INTOPIC
168 #define INTOPIC "in"
169 #endif
170 
171 #define MQTT_SUBJECT_LENGTH 20
172 #define MQTT_TOPIC_LENGTH 64
173 
174 #ifndef DMX_DISABLE
175 #define _dmxin
176 #define _dmxout
177 #endif
178 
179 #ifndef OWIRE_DISABLE
180 #define _owire
181 #endif
182 
183 #if !(defined (MODBUS_DISABLE) && defined (MBUS_DISABLE))
184 #define _modbus
185 #endif
186 
187 #ifdef ARTNET_ENABLE
188 #define _artnet
189 #endif
190 
191 #ifndef LAN_INIT_DELAY
192 #define LAN_INIT_DELAY 500
193 #endif
194 
195 #define DEFAULT_INC_STEP 5
196 
197 
198 #if defined(ARDUINO_ARCH_AVR)
199 //All options available
200 #ifdef CONTROLLINO
201 #define modbusSerial Serial3
202  #ifndef AC_Serial
203  #define AC_Serial Serial2
204  #endif
205 #else
206 #define modbusSerial Serial2
207  #ifndef AC_Serial
208  #define AC_Serial Serial3
209  #endif
210 #endif
211 #define dmxin DMXSerial
212 #define dmxout DmxSimple
213 #endif
214 
215 #if defined(__SAM3X8E__)
216 #ifndef modbusSerial
217 #define modbusSerial Serial2
218 #endif
219 
220 #ifndef AC_Serial
221 #define AC_Serial Serial3
222 #endif
223 
224 #define dmxout DmxDue1
225 #define dmxin DmxDue1
226 #endif
227 
228 #if defined(NRF5)
229 //#define modbusSerial Serial1
230 #undef _dmxin
231 #undef _dmxout
232 #undef _modbus
233 #endif
234 
235 #if defined(ARDUINO_ARCH_ESP8266)
236 #undef _dmxin
237 
238 #ifndef DMX_DISABLE
239 #define _espdmx
240 #endif
241 
242 #ifndef modbusSerial
243 #define modbusSerial Serial1
244 #endif
245 
246 #ifndef AC_Serial
247 #define AC_Serial Serial1
248 #endif
249 
250 #endif
251 
252 #if defined(ARDUINO_ARCH_ESP32)
253 #undef _dmxin
254 #ifndef DMX_DISABLE
255 #define _espdmx
256 #endif
257 
258 #ifndef modbusSerial
259 #define modbusSerial Serial2
260 #endif
261 
262 #ifndef AC_Serial
263 #define AC_Serial Serial2
264 #endif
265 
266 #endif
267 
268 #ifndef _dmxout
269 #undef _artnet
270 #endif
271 
272 #ifdef WIFI_MANAGER_DISABLE
273 #ifndef ESP_WIFI_AP
274 #define ESP_WIFI_AP mywifiap
275 #endif
276 
277 #ifndef ESP_WIFI_PWD
278 #define ESP_WIFI_PWD mywifipass
279 #endif
280 #endif
281 
282 #define DHT_POLL_DELAY_DEFAULT 15000
283 #define UPTIME_POLL_DELAY_DEFAULT 30000
284 
285 #ifdef ARDUINO_ARCH_STM32F1
286 #define strncpy_P strncpy
287 #endif
288 
289 #ifndef DMX_SMOOTH_DELAY
290 #define DMX_SMOOTH_DELAY 10
291 #endif
292 
293 //#ifdef M5STACK
294 //#define debugSerial M5.Lcd
295 //#endif
296 
297 #ifndef debugSerialPort
298 #define debugSerialPort Serial
299 #endif
300 
301 
302 #ifndef Wiz5500
303 #define W5100_ETHERNET_SHIELD
304 #else
305 #define W5500_ETHERNET_SHIELD
306 #endif
307 
308 
309 #if defined(ARDUINO_ARCH_AVR)
310 #define PINS_COUNT NUM_DIGITAL_PINS
311 #define isAnalogPin(p) ((p >= 54) && (p<=69))
312 #endif
313 
314 #if defined(__SAM3X8E__)
315 #define isAnalogPin(p) (g_APinDescription[p].ulPinAttribute & PIN_ATTR_ANALOG) == PIN_ATTR_ANALOG
316 #endif
317 
318 #if defined(ARDUINO_ARCH_STM32)
319 #define PINS_COUNT NUM_DIGITAL_PINS
320 #define isAnalogPin(p) ((p >= 44) && (p<=57))
321 #endif
322 
323 #if defined(ESP8266)
324 #define PINS_COUNT NUM_DIGITAL_PINS
325 #define isAnalogPin(p) ( p ==17 )
326 #endif
327 
328 #if defined(ARDUINO_ARCH_ESP32)
329 #define PINS_COUNT NUM_DIGITAL_PINS
330 #define isAnalogPin(p) ((p ==4) || (p>=12)&& (p<=15) || (p>=25)&& (p<=27)||(p>=32)&& (p<=33) || (p>=37)&& (p<=38))
331 #endif
332 
333 #if defined(NRF5)
334 //#define PINS_COUNT NUM_DIGITAL_PINS
335 #define isAnalogPin(p) ((p >= 14) && (p<=21))
336 #endif