2017-05-13 12:02:10 +01:00
|
|
|
/*
|
2019-10-27 10:13:24 +00:00
|
|
|
settings.h - setting variables for Tasmota
|
2017-05-13 12:02:10 +01:00
|
|
|
|
2019-12-31 13:23:34 +00:00
|
|
|
Copyright (C) 2020 Theo Arends
|
2017-05-13 12:02:10 +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/>.
|
|
|
|
*/
|
2017-02-19 16:49:17 +00:00
|
|
|
|
2017-10-18 17:22:34 +01:00
|
|
|
#ifndef _SETTINGS_H_
|
|
|
|
#define _SETTINGS_H_
|
|
|
|
|
2019-03-31 10:59:04 +01:00
|
|
|
const uint8_t PARAM8_SIZE = 18; // Number of param bytes (SetOption)
|
2017-06-16 13:33:49 +01:00
|
|
|
|
2018-08-28 16:34:51 +01:00
|
|
|
typedef union { // Restricted by MISRA-C Rule 18.4 but so useful...
|
2017-06-06 22:23:23 +01:00
|
|
|
uint32_t data; // Allow bit manipulation using SetOption
|
2018-07-03 11:48:56 +01:00
|
|
|
struct { // SetOption0 .. SetOption31
|
2019-03-01 14:37:22 +00:00
|
|
|
uint32_t save_state : 1; // bit 0 - SetOption0 - Save power state and use after restart
|
|
|
|
uint32_t button_restrict : 1; // bit 1 - SetOption1 - Control button multipress
|
2019-10-22 17:34:41 +01:00
|
|
|
uint32_t ex_value_units : 1; // bit 2 - SetOption2 - Add units to JSON status messages - removed 6.6.0.21
|
2019-11-03 11:33:36 +00:00
|
|
|
uint32_t mqtt_enabled : 1; // bit 3 - SetOption3 - Enable MQTT
|
2019-03-01 14:37:22 +00:00
|
|
|
uint32_t mqtt_response : 1; // bit 4 - SetOption4 - Switch between MQTT RESULT or COMMAND
|
|
|
|
uint32_t mqtt_power_retain : 1; // bit 5 - CMND_POWERRETAIN
|
|
|
|
uint32_t mqtt_button_retain : 1; // bit 6 - CMND_BUTTONRETAIN
|
|
|
|
uint32_t mqtt_switch_retain : 1; // bit 7 - CMND_SWITCHRETAIN
|
|
|
|
uint32_t temperature_conversion : 1; // bit 8 - SetOption8 - Switch between Celsius or Fahrenheit
|
|
|
|
uint32_t mqtt_sensor_retain : 1; // bit 9 - CMND_SENSORRETAIN
|
|
|
|
uint32_t mqtt_offline : 1; // bit 10 - SetOption10 - Control MQTT LWT message format
|
|
|
|
uint32_t button_swap : 1; // bit 11 (v5.1.6) - SetOption11 - Swap button single and double press functionality
|
|
|
|
uint32_t stop_flash_rotate : 1; // bit 12 (v5.2.0) - SetOption12 - Switch between dynamic or fixed slot flash save location
|
|
|
|
uint32_t button_single : 1; // bit 13 (v5.4.0) - SetOption13 - Support only single press to speed up button press recognition
|
2019-11-03 11:33:36 +00:00
|
|
|
uint32_t interlock : 1; // bit 14 (v5.6.0) - CMND_INTERLOCK - Enable/disable interlock
|
2019-03-01 14:37:22 +00:00
|
|
|
uint32_t pwm_control : 1; // bit 15 (v5.8.1) - SetOption15 - Switch between commands PWM or COLOR/DIMMER/CT/CHANNEL
|
|
|
|
uint32_t ws_clock_reverse : 1; // bit 16 (v5.8.1) - SetOption16 - Switch between clockwise or counter-clockwise
|
2019-11-03 11:33:36 +00:00
|
|
|
uint32_t decimal_text : 1; // bit 17 (v5.8.1) - SetOption17 - Switch between decimal or hexadecimal output (0 = hexadecimal, 1 = decimal)
|
2019-03-01 14:37:22 +00:00
|
|
|
uint32_t light_signal : 1; // bit 18 (v5.10.0c) - SetOption18 - Pair light signal with CO2 sensor
|
|
|
|
uint32_t hass_discovery : 1; // bit 19 (v5.11.1a) - SetOption19 - Control Home Assistantautomatic discovery (See SetOption59)
|
|
|
|
uint32_t not_power_linked : 1; // bit 20 (v5.11.1f) - SetOption20 - Control power in relation to Dimmer/Color/Ct changes
|
|
|
|
uint32_t no_power_on_check : 1; // bit 21 (v5.11.1i) - SetOption21 - Show voltage even if powered off
|
|
|
|
uint32_t mqtt_serial : 1; // bit 22 (v5.12.0f) - CMND_SERIALSEND and CMND_SERIALLOG
|
|
|
|
uint32_t mqtt_serial_raw : 1; // bit 23 (v6.1.1c) - CMND_SERIALSEND3
|
|
|
|
uint32_t pressure_conversion : 1; // bit 24 (v6.3.0.2) - SetOption24 - Switch between hPa or mmHg pressure unit
|
|
|
|
uint32_t knx_enabled : 1; // bit 25 (v5.12.0l) - CMND_KNX_ENABLED
|
|
|
|
uint32_t device_index_enable : 1; // bit 26 (v5.13.1a) - SetOption26 - Switch between POWER or POWER1
|
|
|
|
uint32_t knx_enable_enhancement : 1; // bit 27 (v5.14.0a) - CMND_KNX_ENHANCED
|
2019-11-03 11:33:36 +00:00
|
|
|
uint32_t rf_receive_decimal : 1; // bit 28 (v6.0.0a) - SetOption28 - RF receive data format (0 = hexadecimal, 1 = decimal)
|
|
|
|
uint32_t ir_receive_decimal : 1; // bit 29 (v6.0.0a) - SetOption29 - IR receive data format (0 = hexadecimal, 1 = decimal)
|
2019-03-01 14:37:22 +00:00
|
|
|
uint32_t hass_light : 1; // bit 30 (v6.0.0b) - SetOption30 - Enforce HAss autodiscovery as light
|
|
|
|
uint32_t global_state : 1; // bit 31 (v6.1.0) - SetOption31 - Control link led blinking
|
2017-05-11 16:47:34 +01:00
|
|
|
};
|
2017-10-18 17:22:34 +01:00
|
|
|
} SysBitfield;
|
2017-05-03 17:19:13 +01:00
|
|
|
|
2018-08-28 16:34:51 +01:00
|
|
|
typedef union { // Restricted by MISRA-C Rule 18.4 but so useful...
|
2017-11-11 11:33:30 +00:00
|
|
|
uint32_t data; // Allow bit manipulation using SetOption
|
2018-07-03 11:48:56 +01:00
|
|
|
struct { // SetOption50 .. SetOption81
|
2019-03-01 14:37:22 +00:00
|
|
|
uint32_t timers_enable : 1; // bit 0 (v6.1.1b) - CMND_TIMERS
|
|
|
|
uint32_t user_esp8285_enable : 1; // bit 1 (v6.1.1.14) - SetOption51 - Enable ESP8285 user GPIO's
|
|
|
|
uint32_t time_append_timezone : 1; // bit 2 (v6.2.1.2) - SetOption52 - Append timezone to JSON time
|
|
|
|
uint32_t gui_hostname_ip : 1; // bit 3 (v6.2.1.20) - SetOption53 - Show hostanme and IP address in GUI main menu
|
|
|
|
uint32_t tuya_apply_o20 : 1; // bit 4 (v6.3.0.4) - SetOption54 - Apply SetOption20 settings to Tuya device
|
|
|
|
uint32_t mdns_enabled : 1; // bit 5 (v6.4.1.4) - SetOption55 - Control mDNS service
|
|
|
|
uint32_t use_wifi_scan : 1; // bit 6 (v6.3.0.10) - SetOption56 - Scan wifi network at restart for configured AP's
|
|
|
|
uint32_t use_wifi_rescan : 1; // bit 7 (v6.3.0.10) - SetOption57 - Scan wifi network every 44 minutes for configured AP's
|
|
|
|
uint32_t receive_raw : 1; // bit 8 (v6.3.0.11) - SetOption58 - Add IR Raw data to JSON message
|
|
|
|
uint32_t hass_tele_on_power : 1; // bit 9 (v6.3.0.13) - SetOption59 - Send tele/%topic%/STATE in addition to stat/%topic%/RESULT
|
2018-12-01 17:53:42 +00:00
|
|
|
uint32_t sleep_normal : 1; // bit 10 (v6.3.0.15) - SetOption60 - Enable normal sleep instead of dynamic sleep
|
2019-01-07 15:43:03 +00:00
|
|
|
uint32_t button_switch_force_local : 1;// bit 11 (v6.3.0.16) - SetOption61 - Force local operation when button/switch topic is set
|
2019-02-21 20:27:52 +00:00
|
|
|
uint32_t no_hold_retain : 1; // bit 12 (v6.4.1.19) - SetOption62 - Don't use retain flag on HOLD messages
|
2019-04-18 15:24:46 +01:00
|
|
|
uint32_t no_power_feedback : 1; // bit 13 (v6.5.0.9) - SetOption63 - Don't scan relay power state at restart
|
2019-05-17 13:23:21 +01:00
|
|
|
uint32_t use_underscore : 1; // bit 14 (v6.5.0.12) - SetOption64 - Enable "_" instead of "-" as sensor index separator
|
2019-10-18 14:18:39 +01:00
|
|
|
uint32_t fast_power_cycle_disable : 1; // bit 15 (v6.6.0.20) - SetOption65 - Disable fast power cycle detection for device reset
|
2019-10-28 12:36:04 +00:00
|
|
|
uint32_t tuya_serial_mqtt_publish : 1; // bit 16 (v6.6.0.21) - SetOption66 - Enable TuyaMcuReceived messages over Mqtt
|
2019-07-14 14:23:02 +01:00
|
|
|
uint32_t buzzer_enable : 1; // bit 17 (v6.6.0.1) - SetOption67 - Enable buzzer when available
|
2019-08-07 11:08:13 +01:00
|
|
|
uint32_t pwm_multi_channels : 1; // bit 18 (v6.6.0.3) - SetOption68 - Enable multi-channels PWM instead of Color PWM
|
2019-10-28 12:36:04 +00:00
|
|
|
uint32_t ex_tuya_dimmer_min_limit : 1; // bit 19 (v6.6.0.5) - SetOption69 - Limits Tuya dimmers to minimum of 10% (25) when enabled.
|
2019-08-27 16:01:12 +01:00
|
|
|
uint32_t energy_weekend : 1; // bit 20 (v6.6.0.8) - CMND_TARIFF
|
2019-10-02 10:24:51 +01:00
|
|
|
uint32_t dds2382_model : 1; // bit 21 (v6.6.0.14) - SetOption71 - Select different Modbus registers for Active Energy (#6531)
|
2019-11-03 12:51:22 +00:00
|
|
|
uint32_t hardware_energy_total : 1; // bit 22 (v6.6.0.15) - SetOption72 - Enable hardware energy total counter as reference (#6561)
|
2020-04-16 13:59:01 +01:00
|
|
|
uint32_t mqtt_buttons : 1; // bit 23 (v8.2.0.3) - SetOption73 - Detach buttons from relays and enable MQTT action state for multipress
|
2020-04-14 15:51:00 +01:00
|
|
|
uint32_t ds18x20_internal_pullup : 1; // bit 24 (v7.0.0.1) - SetOption74 - Enable internal pullup for single DS18x20 sensor
|
2019-10-31 16:24:06 +00:00
|
|
|
uint32_t grouptopic_mode : 1; // bit 25 (v7.0.0.1) - SetOption75 - GroupTopic replaces %topic% (0) or fixed topic cmnd/grouptopic (1)
|
2019-11-15 10:50:41 +00:00
|
|
|
uint32_t bootcount_update : 1; // bit 26 (v7.0.0.4) - SetOption76 - Enable incrementing bootcount when deepsleep is enabled
|
2019-11-29 12:11:35 +00:00
|
|
|
uint32_t slider_dimmer_stay_on : 1; // bit 27 (v7.0.0.6) - SetOption77 - Do not power off if slider moved to far left
|
2019-12-20 17:24:20 +00:00
|
|
|
uint32_t compatibility_check : 1; // bit 28 (v7.1.2.6) - SetOption78 - Disable OTA compatibility check
|
2019-12-28 14:47:30 +00:00
|
|
|
uint32_t counter_reset_on_tele : 1; // bit 29 (v8.1.0.1) - SetOption79 - Enable resetting of counters after telemetry was sent
|
2019-10-01 15:33:39 +01:00
|
|
|
uint32_t shutter_mode : 1; // bit 30 (v6.6.0.14) - SetOption80 - Enable shutter support
|
|
|
|
uint32_t pcf8574_ports_inverted : 1; // bit 31 (v6.6.0.14) - SetOption81 - Invert all ports on PCF8574 devices
|
2018-07-03 11:48:56 +01:00
|
|
|
};
|
|
|
|
} SysBitfield3;
|
|
|
|
|
2019-10-31 11:12:48 +00:00
|
|
|
typedef union { // Restricted by MISRA-C Rule 18.4 but so useful...
|
|
|
|
uint32_t data; // Allow bit manipulation using SetOption
|
|
|
|
struct { // SetOption82 .. SetOption113
|
2020-01-17 23:02:01 +00:00
|
|
|
uint32_t alexa_ct_range : 1; // bit 0 (v8.1.0.2) - SetOption82 - Reduced CT range for Alexa
|
2020-01-26 22:08:52 +00:00
|
|
|
uint32_t zigbee_use_names : 1; // bit 1 (v8.1.0.4) - SetOption83 - Use FriendlyNames instead of ShortAddresses when possible
|
|
|
|
uint32_t awsiot_shadow : 1; // bit 2 (v8.1.0.5) - SetOption84 - (AWS IoT) publish MQTT state to a device shadow
|
2020-02-24 15:47:41 +00:00
|
|
|
uint32_t device_groups_enabled : 1; // bit 3 (v8.1.0.9) - SetOption85 - Enable Device Groups
|
2020-02-27 14:10:42 +00:00
|
|
|
uint32_t led_timeout : 1; // bit 4 (v8.1.0.9) - SetOption86 - PWM Dimmer Turn brightness LED's off 5 seconds after last change
|
|
|
|
uint32_t powered_off_led : 1; // bit 5 (v8.1.0.9) - SetOption87 - PWM Dimmer Turn red LED on when powered off
|
2020-05-27 04:07:25 +01:00
|
|
|
uint32_t remote_device_mode : 1; // bit 6 (v8.1.0.9) - SetOption88 - Enable relays in separate device groups/PWM Dimmer Buttons control remote devices
|
2020-03-04 20:00:57 +00:00
|
|
|
uint32_t zigbee_distinct_topics : 1; // bit 7 (v8.1.0.10) - SetOption89 - Distinct MQTT topics per device for Zigbee (#7835)
|
2020-04-01 13:05:30 +01:00
|
|
|
uint32_t only_json_message : 1; // bit 8 (v8.2.0.3) - SetOption90 - Disable non-json MQTT response
|
2020-04-06 09:46:17 +01:00
|
|
|
uint32_t fade_at_startup : 1; // bit 9 (v8.2.0.3) - SetOption91 - Enable light fading at start/power on
|
2020-04-28 10:09:56 +01:00
|
|
|
uint32_t pwm_ct_mode : 1; // bit 10 (v8.2.0.4) - SetOption92 - Set PWM Mode from regular PWM to ColorTemp control (Xiaomi Philips ...)
|
2020-05-08 18:33:20 +01:00
|
|
|
uint32_t compress_rules_cpu : 1; // bit 11 (v8.2.0.6) - SetOption93 - Keep uncompressed rules in memory to avoid CPU load of uncompressing at each tick
|
2020-06-03 07:09:28 +01:00
|
|
|
uint32_t max6675 : 1; // bit 12 (v8.3.1.2) - SetOption94 - Implement simpler MAX6675 protocol instead of MAX31855
|
2020-06-15 17:27:04 +01:00
|
|
|
uint32_t network_wifi : 1; // bit 13 (v8.3.1.3) - CMND_WIFI
|
|
|
|
uint32_t network_ethernet : 1; // bit 14 (v8.3.1.3) = CMND_ETHERNET
|
2019-10-31 11:12:48 +00:00
|
|
|
uint32_t spare15 : 1;
|
|
|
|
uint32_t spare16 : 1;
|
|
|
|
uint32_t spare17 : 1;
|
|
|
|
uint32_t spare18 : 1;
|
|
|
|
uint32_t spare19 : 1;
|
|
|
|
uint32_t spare20 : 1;
|
|
|
|
uint32_t spare21 : 1;
|
|
|
|
uint32_t spare22 : 1;
|
|
|
|
uint32_t spare23 : 1;
|
|
|
|
uint32_t spare24 : 1;
|
|
|
|
uint32_t spare25 : 1;
|
|
|
|
uint32_t spare26 : 1;
|
|
|
|
uint32_t spare27 : 1;
|
|
|
|
uint32_t spare28 : 1;
|
|
|
|
uint32_t spare29 : 1;
|
|
|
|
uint32_t spare30 : 1;
|
2020-02-26 12:45:46 +00:00
|
|
|
uint32_t spare31 : 1; // bit 31
|
2019-10-31 11:12:48 +00:00
|
|
|
};
|
|
|
|
} SysBitfield4;
|
|
|
|
|
2018-07-03 11:48:56 +01:00
|
|
|
typedef union {
|
|
|
|
uint32_t data; // Allow bit manipulation
|
2017-11-11 11:33:30 +00:00
|
|
|
struct {
|
|
|
|
uint32_t spare00 : 1;
|
2020-03-02 13:00:57 +00:00
|
|
|
uint32_t speed_conversion : 3; // (v8.1.0.10) - Tx2x sensor
|
|
|
|
uint32_t time_format : 2; // (v6.6.0.9) - CMND_TIME
|
2018-11-27 00:16:09 +00:00
|
|
|
uint32_t calc_resolution : 3;
|
2018-10-08 13:39:36 +01:00
|
|
|
uint32_t weight_resolution : 2;
|
2018-09-07 17:15:47 +01:00
|
|
|
uint32_t frequency_resolution : 2;
|
2018-07-28 16:25:42 +01:00
|
|
|
uint32_t axis_resolution : 2;
|
2017-11-11 11:33:30 +00:00
|
|
|
uint32_t current_resolution : 2;
|
|
|
|
uint32_t voltage_resolution : 2;
|
|
|
|
uint32_t wattage_resolution : 2;
|
|
|
|
uint32_t emulation : 2;
|
|
|
|
uint32_t energy_resolution : 3;
|
|
|
|
uint32_t pressure_resolution : 2;
|
|
|
|
uint32_t humidity_resolution : 2;
|
|
|
|
uint32_t temperature_resolution : 2;
|
|
|
|
};
|
|
|
|
} SysBitfield2;
|
|
|
|
|
2018-05-13 17:54:21 +01:00
|
|
|
typedef union {
|
|
|
|
uint16_t data;
|
|
|
|
struct {
|
|
|
|
uint16_t hemis : 1; // bit 0 = 0=Northern, 1=Southern Hemisphere (=Opposite DST/STD)
|
|
|
|
uint16_t week : 3; // bits 1 - 3 = 0=Last week of the month, 1=First, 2=Second, 3=Third, 4=Fourth
|
|
|
|
uint16_t month : 4; // bits 4 - 7 = 1=Jan, 2=Feb, ... 12=Dec
|
|
|
|
uint16_t dow : 3; // bits 8 - 10 = day of week, 1=Sun, 2=Mon, ... 7=Sat
|
|
|
|
uint16_t hour : 5; // bits 11 - 15 = 0-23
|
|
|
|
};
|
|
|
|
} TimeRule;
|
|
|
|
|
2018-03-23 16:20:20 +00:00
|
|
|
typedef union {
|
|
|
|
uint32_t data;
|
|
|
|
struct {
|
2018-04-18 16:28:45 +01:00
|
|
|
uint32_t time : 11; // bits 0 - 10 = minutes in a day
|
|
|
|
uint32_t window : 4; // bits 11 - 14 = minutes random window
|
|
|
|
uint32_t repeat : 1; // bit 15
|
|
|
|
uint32_t days : 7; // bits 16 - 22 = week day mask
|
|
|
|
uint32_t device : 4; // bits 23 - 26 = 16 devices
|
|
|
|
uint32_t power : 2; // bits 27 - 28 = 4 power states - Off, On, Toggle, Blink or Rule
|
2018-04-25 16:27:40 +01:00
|
|
|
uint32_t mode : 2; // bits 29 - 30 = timer modes - 0 = Scheduler, 1 = Sunrise, 2 = Sunset
|
2018-04-18 16:28:45 +01:00
|
|
|
uint32_t arm : 1; // bit 31
|
2018-03-23 16:20:20 +00:00
|
|
|
};
|
|
|
|
} Timer;
|
|
|
|
|
2020-05-08 16:17:09 +01:00
|
|
|
typedef union { // Restricted by MISRA-C Rule 18.4 but so useful...
|
|
|
|
uint32_t data;
|
|
|
|
struct {
|
|
|
|
uint32_t stream : 1;
|
|
|
|
uint32_t mirror : 1;
|
|
|
|
uint32_t flip : 1;
|
|
|
|
uint32_t spare3 : 1;
|
|
|
|
uint32_t spare4 : 1;
|
|
|
|
uint32_t spare5 : 1;
|
|
|
|
uint32_t spare6 : 1;
|
|
|
|
uint32_t spare7 : 1;
|
|
|
|
uint32_t spare8 : 1;
|
|
|
|
uint32_t spare9 : 1;
|
|
|
|
uint32_t spare10 : 1;
|
|
|
|
uint32_t spare11 : 1;
|
|
|
|
uint32_t spare12 : 1;
|
|
|
|
uint32_t spare13 : 1;
|
|
|
|
uint32_t spare14 : 1;
|
|
|
|
uint32_t spare15 : 1;
|
|
|
|
uint32_t spare16 : 1;
|
|
|
|
uint32_t spare17 : 1;
|
|
|
|
uint32_t spare18 : 1;
|
|
|
|
uint32_t contrast : 3;
|
|
|
|
uint32_t brightness : 3;
|
|
|
|
uint32_t saturation : 3;
|
|
|
|
uint32_t resolution : 4;
|
|
|
|
};
|
|
|
|
} WebCamCfg;
|
|
|
|
|
2018-07-02 09:22:01 +01:00
|
|
|
typedef union {
|
2018-08-21 21:12:40 +01:00
|
|
|
uint16_t data;
|
2018-07-02 09:22:01 +01:00
|
|
|
struct {
|
2018-08-21 21:43:56 +01:00
|
|
|
uint16_t pinmode : 3; // Pin mode (1 through 6)
|
|
|
|
uint16_t pullup : 1; // Enable internal weak pull-up resistor
|
|
|
|
uint16_t saved_state : 1; // Save output state, if used.
|
|
|
|
uint16_t int_report_mode : 2; // Interrupt reporting mode 0 = immediate telemetry & event, 1 = immediate event only, 2 = immediate telemetry only
|
|
|
|
uint16_t int_report_defer : 4; // Number of interrupts to ignore until reporting (default 0, max 15)
|
2018-08-25 20:15:41 +01:00
|
|
|
uint16_t int_count_en : 1; // Enable interrupt counter for this pin
|
2018-12-06 22:55:44 +00:00
|
|
|
uint16_t int_retain_flag : 1; // Report if interrupt occured for pin in next teleperiod
|
2018-08-21 21:43:56 +01:00
|
|
|
uint16_t spare13 : 1;
|
|
|
|
uint16_t spare14 : 1;
|
|
|
|
uint16_t spare15 : 1;
|
2018-07-02 09:22:01 +01:00
|
|
|
};
|
|
|
|
} Mcp230xxCfg;
|
|
|
|
|
2019-02-01 16:46:37 +00:00
|
|
|
typedef union {
|
|
|
|
uint8_t data;
|
|
|
|
struct {
|
|
|
|
uint8_t spare0 : 1;
|
|
|
|
uint8_t spare1 : 1;
|
2020-06-01 17:00:56 +01:00
|
|
|
uint8_t bh1750_2_resolution : 2;
|
|
|
|
uint8_t bh1750_1_resolution : 2; // Sensor10 1,2,3
|
2019-09-22 11:53:15 +01:00
|
|
|
uint8_t hx711_json_weight_change : 1; // Sensor34 8,x - Enable JSON message on weight change
|
2019-02-01 16:46:37 +00:00
|
|
|
uint8_t mhz19b_abc_disable : 1; // Disable ABC (Automatic Baseline Correction for MHZ19(B) (0 = Enabled (default), 1 = Disabled with Sensor15 command)
|
|
|
|
};
|
|
|
|
} SensorCfg1;
|
2019-02-11 18:21:49 +00:00
|
|
|
|
2020-04-11 00:48:37 +01:00
|
|
|
typedef union {
|
|
|
|
uint8_t data;
|
2020-04-12 11:35:58 +01:00
|
|
|
struct {
|
2020-04-11 00:48:37 +01:00
|
|
|
uint8_t nf_autotune : 1; // Autotune the NF Noise Level
|
2020-04-12 11:35:58 +01:00
|
|
|
uint8_t dist_autotune : 1; // Autotune Disturber on/off
|
2020-04-11 00:48:37 +01:00
|
|
|
uint8_t nf_autotune_both : 1; // Autotune over both Areas: INDOORS/OUDOORS
|
|
|
|
uint8_t mqtt_only_Light_Event : 1; // mqtt only if lightning Irq
|
|
|
|
uint8_t spare4 : 1;
|
|
|
|
uint8_t spare5 : 1;
|
|
|
|
uint8_t spare6 : 1;
|
|
|
|
uint8_t spare7 : 1;
|
|
|
|
};
|
|
|
|
} As3935IntCfg;
|
|
|
|
|
|
|
|
typedef union {
|
|
|
|
uint16_t data;
|
2020-04-12 11:35:58 +01:00
|
|
|
struct {
|
2020-04-11 00:48:37 +01:00
|
|
|
uint16_t nf_autotune_time : 4; // NF Noise Autotune Time
|
2020-04-12 11:35:58 +01:00
|
|
|
uint16_t dist_autotune_time : 4; // Disturber Autotune Time
|
2020-04-11 00:48:37 +01:00
|
|
|
uint16_t nf_autotune_min : 4; // Min Stages
|
|
|
|
uint16_t spare3 : 4;
|
|
|
|
};
|
|
|
|
} As3935Param;
|
|
|
|
|
2019-08-25 13:58:45 +01:00
|
|
|
typedef struct {
|
|
|
|
uint32_t usage1_kWhtotal;
|
2019-09-20 11:59:34 +01:00
|
|
|
uint32_t usage2_kWhtotal;
|
2019-08-25 13:58:45 +01:00
|
|
|
uint32_t return1_kWhtotal;
|
|
|
|
uint32_t return2_kWhtotal;
|
|
|
|
uint32_t last_return_kWhtotal;
|
2019-09-20 11:59:34 +01:00
|
|
|
uint32_t last_usage_kWhtotal;
|
2019-08-25 13:58:45 +01:00
|
|
|
} EnergyUsage;
|
|
|
|
|
2019-09-03 11:23:44 +01:00
|
|
|
|
2020-04-16 13:59:01 +01:00
|
|
|
typedef struct {
|
2019-09-03 11:23:44 +01:00
|
|
|
uint8_t fnid = 0;
|
|
|
|
uint8_t dpid = 0;
|
|
|
|
} TuyaFnidDpidMap;
|
|
|
|
|
2019-12-22 15:53:51 +00:00
|
|
|
const uint32_t settings_text_size = 699; // Settings.text_pool[size] = Settings.display_model (2D2) - Settings.text_pool (017)
|
2019-09-03 11:23:44 +01:00
|
|
|
const uint8_t MAX_TUYA_FUNCTIONS = 16;
|
|
|
|
|
2020-04-19 14:36:04 +01:00
|
|
|
struct {
|
2019-04-02 14:47:39 +01:00
|
|
|
uint16_t cfg_holder; // 000 v6 header
|
|
|
|
uint16_t cfg_size; // 002
|
2018-06-02 15:59:09 +01:00
|
|
|
unsigned long save_flag; // 004
|
|
|
|
unsigned long version; // 008
|
2019-04-02 14:47:39 +01:00
|
|
|
uint16_t bootcount; // 00C
|
|
|
|
uint16_t cfg_crc; // 00E
|
2018-06-02 15:59:09 +01:00
|
|
|
SysBitfield flag; // 010
|
2017-10-18 17:22:34 +01:00
|
|
|
int16_t save_data; // 014
|
2017-10-10 14:40:02 +01:00
|
|
|
int8_t timezone; // 016
|
2019-12-13 11:05:07 +00:00
|
|
|
|
2020-04-09 10:40:26 +01:00
|
|
|
// Start of char array storing all parameter strings ********
|
2019-12-13 11:05:07 +00:00
|
|
|
|
2019-12-22 15:53:51 +00:00
|
|
|
char text_pool[101]; // 017 - was ota_url[101] - size is settings_text_size
|
2019-12-13 11:05:07 +00:00
|
|
|
|
2019-12-22 15:53:51 +00:00
|
|
|
char ex_mqtt_prefix[3][11]; // 07C
|
|
|
|
uint8_t ex_baudrate; // 09D
|
2019-12-13 11:05:07 +00:00
|
|
|
uint8_t ex_seriallog_level; // 09E
|
|
|
|
uint8_t ex_sta_config; // 09F
|
|
|
|
uint8_t ex_sta_active; // 0A0
|
2019-12-22 15:53:51 +00:00
|
|
|
char ex_sta_ssid[2][33]; // 0A1
|
|
|
|
char ex_sta_pwd[2][65]; // 0E3
|
|
|
|
char ex_hostname[33]; // 165
|
|
|
|
char ex_syslog_host[33]; // 186
|
2019-12-13 11:05:07 +00:00
|
|
|
uint8_t ex_rule_stop; // 1A7
|
|
|
|
uint16_t ex_syslog_port; // 1A8
|
|
|
|
uint8_t ex_syslog_level; // 1AA
|
|
|
|
uint8_t ex_webserver; // 1AB
|
|
|
|
uint8_t ex_weblog_level; // 1AC
|
|
|
|
uint8_t ex_mqtt_fingerprint[2][20]; // 1AD
|
|
|
|
uint8_t ex_adc_param_type; // 1D5
|
2019-12-14 12:16:55 +00:00
|
|
|
uint8_t ex_free_1d6[10]; // 1D6
|
|
|
|
SysBitfield4 ex_flag4; // 1E0
|
|
|
|
uint8_t ex_serial_config; // 1E4
|
|
|
|
uint8_t ex_wifi_output_power; // 1E5
|
|
|
|
uint8_t ex_shutter_accuracy; // 1E6
|
|
|
|
uint8_t ex_mqttlog_level; // 1E7
|
|
|
|
uint8_t ex_sps30_inuse_hours; // 1E8
|
2019-12-22 15:53:51 +00:00
|
|
|
char ex_mqtt_host[33]; // 1E9
|
|
|
|
uint16_t ex_mqtt_port; // 20A
|
|
|
|
char ex_mqtt_client[33]; // 20C
|
|
|
|
char ex_mqtt_user[33]; // 22D
|
|
|
|
char ex_mqtt_pwd[33]; // 24E
|
|
|
|
char ex_mqtt_topic[33]; // 26F
|
|
|
|
char ex_button_topic[33]; // 290
|
|
|
|
char ex_mqtt_grptopic[33]; // 2B1
|
2019-12-13 11:05:07 +00:00
|
|
|
|
2020-04-09 10:40:26 +01:00
|
|
|
// End of single char array of 698 chars max ****************
|
2019-12-13 11:05:07 +00:00
|
|
|
|
2018-01-05 11:26:19 +00:00
|
|
|
uint8_t display_model; // 2D2
|
|
|
|
uint8_t display_mode; // 2D3
|
|
|
|
uint8_t display_refresh; // 2D4
|
|
|
|
uint8_t display_rows; // 2D5
|
|
|
|
uint8_t display_cols[2]; // 2D6
|
|
|
|
uint8_t display_address[8]; // 2D8
|
|
|
|
uint8_t display_dimmer; // 2E0
|
|
|
|
uint8_t display_size; // 2E1
|
2018-05-14 22:22:29 +01:00
|
|
|
TimeRule tflag[2]; // 2E2
|
2017-10-18 17:22:34 +01:00
|
|
|
uint16_t pwm_frequency; // 2E6
|
2017-10-10 14:40:02 +01:00
|
|
|
power_t power; // 2E8
|
2017-10-18 17:22:34 +01:00
|
|
|
uint16_t pwm_value[MAX_PWMS]; // 2EC
|
2018-06-02 15:59:09 +01:00
|
|
|
int16_t altitude; // 2F6
|
2017-10-10 14:40:02 +01:00
|
|
|
uint16_t tele_period; // 2F8
|
2018-08-20 17:07:19 +01:00
|
|
|
uint8_t display_rotate; // 2FA
|
2017-10-10 14:40:02 +01:00
|
|
|
uint8_t ledstate; // 2FB
|
2018-07-03 11:48:56 +01:00
|
|
|
uint8_t param[PARAM8_SIZE]; // 2FC SetOption32 .. SetOption49
|
2018-05-14 22:22:29 +01:00
|
|
|
int16_t toffset[2]; // 30E
|
2018-08-23 10:49:17 +01:00
|
|
|
uint8_t display_font; // 312
|
2019-12-13 11:05:07 +00:00
|
|
|
|
2019-12-22 15:53:51 +00:00
|
|
|
char ex_state_text[4][11]; // 313
|
2019-10-18 15:53:30 +01:00
|
|
|
uint8_t ex_energy_power_delta; // 33F - Free since 6.6.0.20
|
2019-12-13 11:05:07 +00:00
|
|
|
|
2017-10-10 14:40:02 +01:00
|
|
|
uint16_t domoticz_update_timer; // 340
|
2017-10-18 17:22:34 +01:00
|
|
|
uint16_t pwm_range; // 342
|
2018-02-03 22:25:05 +00:00
|
|
|
unsigned long domoticz_relay_idx[MAX_DOMOTICZ_IDX]; // 344
|
|
|
|
unsigned long domoticz_key_idx[MAX_DOMOTICZ_IDX]; // 354
|
|
|
|
unsigned long energy_power_calibration; // 364
|
|
|
|
unsigned long energy_voltage_calibration; // 368
|
|
|
|
unsigned long energy_current_calibration; // 36C
|
2017-12-16 14:51:45 +00:00
|
|
|
unsigned long energy_kWhtoday; // 370
|
|
|
|
unsigned long energy_kWhyesterday; // 374
|
|
|
|
uint16_t energy_kWhdoy; // 378
|
|
|
|
uint16_t energy_min_power; // 37A
|
|
|
|
uint16_t energy_max_power; // 37C
|
|
|
|
uint16_t energy_min_voltage; // 37E
|
|
|
|
uint16_t energy_max_voltage; // 380
|
|
|
|
uint16_t energy_min_current; // 382
|
|
|
|
uint16_t energy_max_current; // 384
|
|
|
|
uint16_t energy_max_power_limit; // 386 MaxPowerLimit
|
2018-02-03 22:25:05 +00:00
|
|
|
uint16_t energy_max_power_limit_hold; // 388 MaxPowerLimitHold
|
|
|
|
uint16_t energy_max_power_limit_window; // 38A MaxPowerLimitWindow
|
|
|
|
uint16_t energy_max_power_safe_limit; // 38C MaxSafePowerLimit
|
|
|
|
uint16_t energy_max_power_safe_limit_hold; // 38E MaxSafePowerLimitHold
|
|
|
|
uint16_t energy_max_power_safe_limit_window; // 390 MaxSafePowerLimitWindow
|
2017-12-16 14:51:45 +00:00
|
|
|
uint16_t energy_max_energy; // 392 MaxEnergy
|
|
|
|
uint16_t energy_max_energy_start; // 394 MaxEnergyStart
|
2017-10-10 14:40:02 +01:00
|
|
|
uint16_t mqtt_retry; // 396
|
|
|
|
uint8_t poweronstate; // 398
|
2017-11-15 22:07:45 +00:00
|
|
|
uint8_t last_module; // 399
|
2017-10-10 14:40:02 +01:00
|
|
|
uint16_t blinktime; // 39A
|
|
|
|
uint16_t blinkcount; // 39C
|
2018-03-10 16:58:54 +00:00
|
|
|
uint16_t light_rotation; // 39E
|
2018-07-03 11:48:56 +01:00
|
|
|
SysBitfield3 flag3; // 3A0
|
2018-06-28 13:28:14 +01:00
|
|
|
uint8_t switchmode[MAX_SWITCHES]; // 3A4 (6.0.0b - moved from 0x4CA)
|
2019-12-22 15:53:51 +00:00
|
|
|
|
2020-04-28 17:27:07 +01:00
|
|
|
#ifdef ESP8266
|
2019-12-24 14:06:19 +00:00
|
|
|
char ex_friendlyname[4][33]; // 3AC
|
2019-12-22 15:53:51 +00:00
|
|
|
char ex_switch_topic[33]; // 430
|
2020-04-28 17:27:07 +01:00
|
|
|
#else // ESP32
|
|
|
|
myio my_gp; // 3AC - 2 x 40 bytes (ESP32)
|
|
|
|
mytmplt user_template; // 3FC - 2 x 37 bytes (ESP32)
|
2020-06-16 17:36:49 +01:00
|
|
|
uint8_t eth_type; // 446
|
|
|
|
uint8_t eth_clk_mode; // 447
|
2020-04-28 17:27:07 +01:00
|
|
|
|
2020-06-16 17:36:49 +01:00
|
|
|
uint8_t free_esp32_448[4]; // 448
|
2020-05-08 16:17:09 +01:00
|
|
|
|
|
|
|
WebCamCfg webcam_config; // 44C
|
2020-06-16 17:36:49 +01:00
|
|
|
uint8_t eth_address; // 450
|
2020-04-28 17:27:07 +01:00
|
|
|
#endif // ESP8266 - ESP32
|
2019-12-22 15:53:51 +00:00
|
|
|
|
2018-03-20 13:31:11 +00:00
|
|
|
char serial_delimiter; // 451
|
2019-12-13 11:05:07 +00:00
|
|
|
uint8_t seriallog_level; // 452
|
2017-10-10 14:40:02 +01:00
|
|
|
uint8_t sleep; // 453
|
2017-12-22 13:55:24 +00:00
|
|
|
uint16_t domoticz_switch_idx[MAX_DOMOTICZ_IDX]; // 454
|
|
|
|
uint16_t domoticz_sensor_idx[MAX_DOMOTICZ_SNS_IDX]; // 45C
|
2017-10-10 14:40:02 +01:00
|
|
|
uint8_t module; // 474
|
2017-10-23 11:18:15 +01:00
|
|
|
uint8_t ws_color[4][3]; // 475
|
|
|
|
uint8_t ws_width[3]; // 481
|
2020-04-16 13:59:01 +01:00
|
|
|
|
|
|
|
#ifdef ESP8266
|
|
|
|
myio my_gp; // 484 - 17 bytes (ESP8266)
|
|
|
|
#else // ESP32
|
|
|
|
uint8_t free_esp32_484[17]; // 484
|
|
|
|
#endif // ESP8266 - ESP32
|
|
|
|
|
2019-05-13 14:56:01 +01:00
|
|
|
uint8_t my_adc0; // 495
|
2017-10-26 15:33:33 +01:00
|
|
|
uint16_t light_pixels; // 496
|
|
|
|
uint8_t light_color[5]; // 498
|
|
|
|
uint8_t light_correction; // 49D
|
|
|
|
uint8_t light_dimmer; // 49E
|
2018-05-24 13:25:52 +01:00
|
|
|
uint8_t rule_enabled; // 49F
|
|
|
|
uint8_t rule_once; // 4A0
|
2017-10-26 15:33:33 +01:00
|
|
|
uint8_t light_fade; // 4A1
|
|
|
|
uint8_t light_speed; // 4A2
|
|
|
|
uint8_t light_scheme; // 4A3
|
|
|
|
uint8_t light_width; // 4A4
|
2019-01-28 13:08:33 +00:00
|
|
|
uint8_t knx_GA_registered; // 4A5 Number of Group Address to read
|
2017-10-26 15:33:33 +01:00
|
|
|
uint16_t light_wakeup; // 4A6
|
2019-01-28 13:08:33 +00:00
|
|
|
uint8_t knx_CB_registered; // 4A8 Number of Group Address to write
|
2019-12-22 15:53:51 +00:00
|
|
|
|
|
|
|
char ex_web_password[33]; // 4A9
|
|
|
|
|
2019-01-25 16:46:27 +00:00
|
|
|
uint8_t interlock[MAX_INTERLOCKS]; // 4CA
|
2019-12-22 15:53:51 +00:00
|
|
|
|
|
|
|
char ex_ntp_server[3][33]; // 4CE
|
|
|
|
|
2019-01-28 13:08:33 +00:00
|
|
|
uint8_t ina219_mode; // 531
|
2017-10-18 17:22:34 +01:00
|
|
|
uint16_t pulse_timer[MAX_PULSETIMERS]; // 532
|
2018-08-27 11:01:20 +01:00
|
|
|
uint16_t button_debounce; // 542
|
2017-10-10 14:40:02 +01:00
|
|
|
uint32_t ip_address[4]; // 544
|
2018-06-02 15:59:09 +01:00
|
|
|
unsigned long energy_kWhtotal; // 554
|
2019-12-22 15:53:51 +00:00
|
|
|
|
|
|
|
char ex_mqtt_fulltopic[100]; // 558
|
|
|
|
|
2018-06-02 15:59:09 +01:00
|
|
|
SysBitfield2 flag2; // 5BC
|
2017-10-18 17:22:34 +01:00
|
|
|
unsigned long pulse_counter[MAX_COUNTERS]; // 5C0
|
|
|
|
uint16_t pulse_counter_type; // 5D0
|
|
|
|
uint16_t pulse_counter_debounce; // 5D2
|
|
|
|
uint8_t rf_code[17][9]; // 5D4
|
2018-11-01 12:00:05 +00:00
|
|
|
uint8_t timezone_minutes; // 66D
|
2018-08-27 11:01:20 +01:00
|
|
|
uint16_t switch_debounce; // 66E
|
2018-03-23 16:20:20 +00:00
|
|
|
Timer timer[MAX_TIMERS]; // 670
|
2018-04-05 11:49:43 +01:00
|
|
|
int latitude; // 6B0
|
|
|
|
int longitude; // 6B4
|
2018-04-17 14:34:18 +01:00
|
|
|
uint16_t knx_physsical_addr; // 6B8 (address_t is a uint16_t)
|
|
|
|
uint16_t knx_GA_addr[MAX_KNX_GA]; // 6BA (address_t is a uint16_t) x KNX_max_GA
|
|
|
|
uint16_t knx_CB_addr[MAX_KNX_CB]; // 6CE (address_t is a uint16_t) x KNX_max_CB
|
2019-01-28 13:08:33 +00:00
|
|
|
uint8_t knx_GA_param[MAX_KNX_GA]; // 6E2 Type of Input (relay changed, button pressed, sensor read <-teleperiod)
|
|
|
|
uint8_t knx_CB_param[MAX_KNX_CB]; // 6EC Type of Output (set relay, toggle relay, reply sensor value)
|
2018-07-02 09:22:01 +01:00
|
|
|
Mcp230xxCfg mcp230xx_config[16]; // 6F6
|
2018-08-21 21:12:40 +01:00
|
|
|
uint8_t mcp230xx_int_prio; // 716
|
2019-02-01 16:46:37 +00:00
|
|
|
SensorCfg1 SensorBits1; // 717 On/Off settings used by Sensor Commands
|
2018-08-25 20:15:41 +01:00
|
|
|
uint16_t mcp230xx_int_timer; // 718
|
2018-09-29 15:55:53 +01:00
|
|
|
uint8_t rgbwwTable[5]; // 71A
|
2019-02-11 18:21:49 +00:00
|
|
|
uint8_t user_template_base; // 71F
|
2020-03-29 16:41:31 +01:00
|
|
|
|
|
|
|
char user_template_name[15]; // 720 15 bytes - Backward compatibility since v8.2.0.3
|
|
|
|
|
2020-04-16 13:59:01 +01:00
|
|
|
#ifdef ESP8266
|
|
|
|
mytmplt user_template; // 72F 14 bytes (ESP8266)
|
|
|
|
#else // ESP32
|
|
|
|
uint8_t free_esp32_72f[14]; // 72F
|
|
|
|
#endif // ESP8266 - ESP32
|
|
|
|
|
2019-10-18 09:32:48 +01:00
|
|
|
uint8_t novasds_startingoffset; // 73D
|
2019-04-09 12:56:19 +01:00
|
|
|
uint8_t web_color[18][3]; // 73E
|
2019-07-23 13:05:42 +01:00
|
|
|
uint16_t display_width; // 774
|
|
|
|
uint16_t display_height; // 776
|
2019-08-28 11:02:27 +01:00
|
|
|
uint16_t baudrate; // 778
|
|
|
|
uint16_t sbaudrate; // 77A
|
2019-08-25 13:58:45 +01:00
|
|
|
EnergyUsage energy_usage; // 77C
|
2019-05-24 11:28:09 +01:00
|
|
|
uint32_t adc_param1; // 794
|
|
|
|
uint32_t adc_param2; // 798
|
|
|
|
int adc_param3; // 79C
|
2018-11-07 09:30:03 +00:00
|
|
|
uint32_t monitors; // 7A0
|
2019-08-16 15:12:33 +01:00
|
|
|
uint32_t sensors[3]; // 7A4 Normal WebSensor, Debug SetSensor
|
2018-11-07 09:30:03 +00:00
|
|
|
uint32_t displays; // 7B0
|
2018-10-30 16:04:19 +00:00
|
|
|
uint32_t energy_kWhtotal_time; // 7B4
|
2018-10-21 16:54:51 +01:00
|
|
|
unsigned long weight_item; // 7B8 Weight of one item in gram * 10
|
2019-04-10 13:26:36 +01:00
|
|
|
uint16_t ledmask; // 7BC
|
2018-10-08 13:39:36 +01:00
|
|
|
uint16_t weight_max; // 7BE Total max weight in kilogram
|
|
|
|
unsigned long weight_reference; // 7C0 Reference weight in gram
|
|
|
|
unsigned long weight_calibration; // 7C4
|
2019-05-19 16:49:00 +01:00
|
|
|
unsigned long energy_frequency_calibration; // 7C8 also used by HX711 to save last weight
|
2018-10-08 13:39:36 +01:00
|
|
|
uint16_t web_refresh; // 7CC
|
2019-12-22 15:53:51 +00:00
|
|
|
char script_pram[5][10]; // 7CE
|
2019-12-13 11:05:07 +00:00
|
|
|
|
2019-09-05 09:41:08 +01:00
|
|
|
char rules[MAX_RULE_SETS][MAX_RULE_SIZE]; // 800 uses 512 bytes in v5.12.0m, 3 x 512 bytes in v5.14.0b
|
2019-12-13 11:05:07 +00:00
|
|
|
|
2019-09-05 09:02:42 +01:00
|
|
|
TuyaFnidDpidMap tuya_fnid_map[MAX_TUYA_FUNCTIONS]; // E00 32 bytes
|
2019-09-08 10:26:54 +01:00
|
|
|
uint16_t ina226_r_shunt[4]; // E20
|
|
|
|
uint16_t ina226_i_fs[4]; // E28
|
2019-09-25 13:24:49 +01:00
|
|
|
uint16_t tariff[4][2]; // E30
|
2019-09-29 17:00:01 +01:00
|
|
|
uint16_t shutter_opentime[MAX_SHUTTERS]; // E40
|
|
|
|
uint16_t shutter_closetime[MAX_SHUTTERS]; // E48
|
|
|
|
int16_t shuttercoeff[5][MAX_SHUTTERS]; // E50
|
2020-01-12 13:18:15 +00:00
|
|
|
uint8_t shutter_options[MAX_SHUTTERS]; // E78
|
2019-09-29 17:00:01 +01:00
|
|
|
uint8_t shutter_set50percent[MAX_SHUTTERS]; // E7C
|
|
|
|
uint8_t shutter_position[MAX_SHUTTERS]; // E80
|
|
|
|
uint8_t shutter_startrelay[MAX_SHUTTERS]; // E84
|
2019-10-01 15:33:39 +01:00
|
|
|
uint8_t pcf8574_config[MAX_PCF8574]; // E88
|
2020-05-07 09:58:17 +01:00
|
|
|
uint8_t ot_hot_water_setpoint; // E8C
|
|
|
|
uint8_t ot_boiler_setpoint; // E8D
|
|
|
|
uint8_t ot_flags; // E8E
|
2020-05-25 09:21:36 +01:00
|
|
|
uint8_t ledpwm_mask; // E8F
|
2019-10-14 15:12:59 +01:00
|
|
|
uint16_t dimmer_hw_min; // E90
|
|
|
|
uint16_t dimmer_hw_max; // E92
|
|
|
|
uint32_t deepsleep; // E94
|
2019-10-18 14:33:58 +01:00
|
|
|
uint16_t energy_power_delta; // E98
|
2019-11-02 12:25:23 +00:00
|
|
|
uint8_t shutter_motordelay[MAX_SHUTTERS]; // E9A
|
2019-11-18 11:15:49 +00:00
|
|
|
int8_t temp_comp; // E9E
|
2019-12-11 10:54:27 +00:00
|
|
|
uint8_t weight_change; // E9F
|
2019-11-03 16:54:39 +00:00
|
|
|
uint8_t web_color2[2][3]; // EA0 - Needs to be on integer / 3 distance from web_color
|
2019-12-22 15:53:51 +00:00
|
|
|
|
|
|
|
char ex_cors_domain[33]; // EA6
|
|
|
|
|
2019-12-13 11:05:07 +00:00
|
|
|
uint8_t sta_config; // EC7
|
|
|
|
uint8_t sta_active; // EC8
|
|
|
|
uint8_t rule_stop; // EC9
|
|
|
|
uint16_t syslog_port; // ECA
|
|
|
|
uint8_t syslog_level; // ECC
|
|
|
|
uint8_t webserver; // ECD
|
|
|
|
uint8_t weblog_level; // ECE
|
|
|
|
uint8_t mqtt_fingerprint[2][20]; // ECF
|
|
|
|
uint8_t adc_param_type; // EF7
|
2019-12-14 12:16:55 +00:00
|
|
|
SysBitfield4 flag4; // EF8
|
|
|
|
uint16_t mqtt_port; // EFC
|
|
|
|
uint8_t serial_config; // EFE
|
|
|
|
uint8_t wifi_output_power; // EFF
|
|
|
|
uint8_t shutter_accuracy; // F00
|
|
|
|
uint8_t mqttlog_level; // F01
|
|
|
|
uint8_t sps30_inuse_hours; // F02
|
2020-01-02 14:12:59 +00:00
|
|
|
uint8_t hotplug_scan; // F03
|
2020-02-26 13:39:27 +00:00
|
|
|
uint8_t bri_power_on; // F04
|
|
|
|
uint8_t bri_min; // F05
|
|
|
|
uint8_t bri_preset_low; // F06
|
|
|
|
uint8_t bri_preset_high; // F07
|
2020-03-16 17:29:55 +00:00
|
|
|
int8_t hum_comp; // F08
|
2020-04-09 10:40:26 +01:00
|
|
|
uint8_t wifi_channel; // F09
|
|
|
|
uint8_t wifi_bssid[6]; // F0A
|
2020-04-11 00:48:37 +01:00
|
|
|
uint8_t as3935_sensor_cfg[5]; // F10
|
|
|
|
As3935IntCfg as3935_functions; // F15
|
|
|
|
As3935Param as3935_parameter; // F16
|
2020-04-11 09:35:31 +01:00
|
|
|
uint64_t zb_ext_panid; // F18
|
|
|
|
uint64_t zb_precfgkey_l; // F20
|
|
|
|
uint64_t zb_precfgkey_h; // F28
|
|
|
|
uint16_t zb_pan_id; // F30
|
|
|
|
uint8_t zb_channel; // F32
|
|
|
|
uint8_t zb_free_byte; // F33
|
2020-04-12 11:35:58 +01:00
|
|
|
uint16_t pms_wake_interval; // F34
|
2020-04-17 10:57:09 +01:00
|
|
|
uint8_t config_version; // F36
|
2020-04-26 18:21:10 +01:00
|
|
|
uint8_t windmeter_pulses_x_rot; // F37
|
|
|
|
uint16_t windmeter_radius; // F38
|
|
|
|
uint16_t windmeter_pulse_debounce; // F3A
|
|
|
|
int16_t windmeter_speed_factor; // F3C
|
2020-04-28 13:02:05 +01:00
|
|
|
uint8_t windmeter_tele_pchange; // F3E
|
2020-06-17 13:06:46 +01:00
|
|
|
uint8_t ledpwm_on; // F3F
|
|
|
|
uint8_t ledpwm_off; // F40
|
2020-06-15 18:22:56 +01:00
|
|
|
uint8_t tcp_baudrate; // F41
|
2020-06-17 13:06:46 +01:00
|
|
|
uint8_t fallback_module; // F42
|
2020-05-23 12:04:17 +01:00
|
|
|
|
2020-06-17 13:06:46 +01:00
|
|
|
uint8_t free_f43[117]; // F43 - Decrement if adding new Setting variables just above and below
|
2019-08-25 13:58:45 +01:00
|
|
|
|
2020-04-16 13:59:01 +01:00
|
|
|
// Only 32 bit boundary variables below
|
2020-03-29 16:05:52 +01:00
|
|
|
uint16_t pulse_counter_debounce_low; // FB8
|
|
|
|
uint16_t pulse_counter_debounce_high; // FBA
|
2020-02-24 18:41:12 +00:00
|
|
|
uint32_t keeloq_master_msb; // FBC
|
|
|
|
uint32_t keeloq_master_lsb; // FC0
|
|
|
|
uint32_t keeloq_serial; // FC4
|
|
|
|
uint32_t keeloq_count; // FC8
|
2020-02-24 15:47:41 +00:00
|
|
|
uint32_t device_group_share_in; // FCC - Bitmask of device group items imported
|
|
|
|
uint32_t device_group_share_out; // FD0 - Bitmask of device group items exported
|
2020-02-07 11:38:10 +00:00
|
|
|
uint32_t bootcount_reset_time; // FD4
|
2020-01-23 17:13:32 +00:00
|
|
|
int adc_param4; // FD8
|
2020-01-02 13:47:33 +00:00
|
|
|
uint32_t shutter_button[MAX_KEYS]; // FDC
|
2019-11-03 16:54:39 +00:00
|
|
|
uint32_t i2c_drivers[3]; // FEC I2cDriver
|
2019-09-05 09:41:08 +01:00
|
|
|
uint32_t cfg_timestamp; // FF8
|
2019-09-05 15:56:02 +01:00
|
|
|
uint32_t cfg_crc32; // FFC
|
2017-10-18 17:22:34 +01:00
|
|
|
} Settings;
|
2017-02-19 16:49:17 +00:00
|
|
|
|
2020-04-19 12:08:04 +01:00
|
|
|
typedef struct {
|
2018-09-24 17:16:35 +01:00
|
|
|
uint16_t valid; // 280 (RTC memory offset 100 - sizeof(RTCRBT))
|
|
|
|
uint8_t fast_reboot_count; // 282
|
|
|
|
uint8_t free_003[1]; // 283
|
2020-04-19 12:08:04 +01:00
|
|
|
} TRtcReboot;
|
|
|
|
TRtcReboot RtcReboot;
|
2020-04-19 13:18:12 +01:00
|
|
|
#ifdef ESP32
|
|
|
|
RTC_NOINIT_ATTR TRtcReboot RtcDataReboot;
|
|
|
|
#endif
|
2018-09-04 15:22:34 +01:00
|
|
|
|
2020-04-19 12:08:04 +01:00
|
|
|
typedef struct {
|
2018-09-24 17:16:35 +01:00
|
|
|
uint16_t valid; // 290 (RTC memory offset 100)
|
2019-01-28 13:08:33 +00:00
|
|
|
uint8_t oswatch_blocked_loop; // 292
|
2018-09-24 17:16:35 +01:00
|
|
|
uint8_t ota_loader; // 293
|
|
|
|
unsigned long energy_kWhtoday; // 294
|
|
|
|
unsigned long energy_kWhtotal; // 298
|
|
|
|
unsigned long pulse_counter[MAX_COUNTERS]; // 29C
|
|
|
|
power_t power; // 2AC
|
2019-08-25 13:58:45 +01:00
|
|
|
EnergyUsage energy_usage; // 2B0
|
2019-10-14 15:12:59 +01:00
|
|
|
unsigned long nextwakeup; // 2C8
|
2019-10-14 15:47:47 +01:00
|
|
|
uint8_t free_004[4]; // 2CC
|
2019-10-14 15:12:59 +01:00
|
|
|
uint32_t ultradeepsleep; // 2D0
|
|
|
|
uint16_t deepsleep_slip; // 2D4
|
|
|
|
|
|
|
|
uint8_t free_022[22]; // 2D6
|
2018-09-24 17:16:35 +01:00
|
|
|
// 2EC - 2FF free locations
|
2020-04-19 12:08:04 +01:00
|
|
|
} TRtcSettings;
|
|
|
|
TRtcSettings RtcSettings;
|
2020-04-19 13:18:12 +01:00
|
|
|
#ifdef ESP32
|
|
|
|
RTC_NOINIT_ATTR TRtcSettings RtcDataSettings;
|
|
|
|
#endif
|
2017-10-18 17:22:34 +01:00
|
|
|
|
|
|
|
struct TIME_T {
|
|
|
|
uint8_t second;
|
|
|
|
uint8_t minute;
|
|
|
|
uint8_t hour;
|
|
|
|
uint8_t day_of_week; // sunday is day 1
|
|
|
|
uint8_t day_of_month;
|
|
|
|
uint8_t month;
|
|
|
|
char name_of_month[4];
|
|
|
|
uint16_t day_of_year;
|
|
|
|
uint16_t year;
|
2018-02-07 16:50:02 +00:00
|
|
|
unsigned long days;
|
2017-10-18 17:22:34 +01:00
|
|
|
unsigned long valid;
|
|
|
|
} RtcTime;
|
|
|
|
|
2018-01-05 11:26:19 +00:00
|
|
|
struct XDRVMAILBOX {
|
2019-01-28 13:08:33 +00:00
|
|
|
bool grpflg;
|
2019-07-24 10:10:15 +01:00
|
|
|
bool usridx;
|
2019-08-13 15:10:47 +01:00
|
|
|
uint16_t command_code;
|
2019-07-27 10:13:41 +01:00
|
|
|
uint32_t index;
|
|
|
|
uint32_t data_len;
|
|
|
|
int32_t payload;
|
2018-01-05 11:26:19 +00:00
|
|
|
char *topic;
|
|
|
|
char *data;
|
2019-07-26 09:21:36 +01:00
|
|
|
char *command;
|
2018-01-05 11:26:19 +00:00
|
|
|
} XdrvMailbox;
|
|
|
|
|
2019-09-29 17:00:01 +01:00
|
|
|
#ifdef USE_SHUTTER
|
2020-06-14 11:36:44 +01:00
|
|
|
const uint8_t MAX_RULES_FLAG = 11; // Number of bits used in RulesBitfield (tricky I know...)
|
2019-09-29 17:00:01 +01:00
|
|
|
#else
|
2020-06-14 11:36:44 +01:00
|
|
|
const uint8_t MAX_RULES_FLAG = 9; // Number of bits used in RulesBitfield (tricky I know...)
|
2019-09-29 17:00:01 +01:00
|
|
|
#endif // USE_SHUTTER
|
2018-08-28 16:34:51 +01:00
|
|
|
typedef union { // Restricted by MISRA-C Rule 18.4 but so useful...
|
2018-06-25 17:00:20 +01:00
|
|
|
uint16_t data; // Allow bit manipulation
|
|
|
|
struct {
|
2020-06-14 11:36:44 +01:00
|
|
|
uint16_t system_init : 1; // Changing layout here needs adjustments in xdrv_10_rules.ino too
|
2018-06-25 17:00:20 +01:00
|
|
|
uint16_t system_boot : 1;
|
|
|
|
uint16_t time_init : 1;
|
|
|
|
uint16_t time_set : 1;
|
|
|
|
uint16_t mqtt_connected : 1;
|
|
|
|
uint16_t mqtt_disconnected : 1;
|
2018-07-28 14:06:31 +01:00
|
|
|
uint16_t wifi_connected : 1;
|
|
|
|
uint16_t wifi_disconnected : 1;
|
Add command WebColor
* Add rule Http#Initialized
* Add command WebColor to change non-persistent GUI colors on the fly
Use a rule like:
rule3 on http#initialized do webcolor {"webcolor":["#eeeeee","#181818","#4f4f4f","#000000","#dddddd","#008000","#222222","#ff0000","#008000","#ffffff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#ffffff","#999999","#000000"]} endon
or
rule3 on http#initialized do webcolor {"webcolor":["#eee","#181818","#4f4f4f","#000","#ddd","#008000","#222"]} endon
to make color changes persistent)
2019-04-08 21:37:39 +01:00
|
|
|
uint16_t http_init : 1;
|
2019-09-29 17:00:01 +01:00
|
|
|
uint16_t shutter_moved : 1;
|
|
|
|
uint16_t shutter_moving : 1;
|
2018-06-25 17:00:20 +01:00
|
|
|
uint16_t spare11 : 1;
|
|
|
|
uint16_t spare12 : 1;
|
|
|
|
uint16_t spare13 : 1;
|
|
|
|
uint16_t spare14 : 1;
|
|
|
|
uint16_t spare15 : 1;
|
|
|
|
};
|
|
|
|
} RulesBitfield;
|
|
|
|
|
2018-07-07 16:30:58 +01:00
|
|
|
typedef union {
|
|
|
|
uint8_t data;
|
|
|
|
struct {
|
2020-06-15 17:27:04 +01:00
|
|
|
uint8_t network_down : 1;
|
2018-07-07 16:30:58 +01:00
|
|
|
uint8_t mqtt_down : 1;
|
2020-06-15 17:27:04 +01:00
|
|
|
uint8_t wifi_down : 1;
|
|
|
|
uint8_t eth_down : 1;
|
2018-07-07 16:30:58 +01:00
|
|
|
uint8_t spare04 : 1;
|
|
|
|
uint8_t spare05 : 1;
|
|
|
|
uint8_t spare06 : 1;
|
|
|
|
uint8_t spare07 : 1;
|
|
|
|
};
|
|
|
|
} StateBitfield;
|
|
|
|
|
2017-09-02 13:37:02 +01:00
|
|
|
// See issue https://github.com/esp8266/Arduino/issues/2913
|
2017-03-14 17:03:25 +00:00
|
|
|
#ifdef USE_ADC_VCC
|
2017-09-02 13:37:02 +01:00
|
|
|
ADC_MODE(ADC_VCC); // Set ADC input for Power Supply Voltage usage
|
2017-03-14 17:03:25 +00:00
|
|
|
#endif
|
2017-10-18 17:22:34 +01:00
|
|
|
|
2018-07-21 17:06:24 +01:00
|
|
|
#endif // _SETTINGS_H_
|