letscontrolit / ESPEasy

Easy MultiSensor device based on ESP8266/ESP32
http://www.espeasy.com
Other
3.3k stars 2.22k forks source link

P076 not included in custom_ESP8266_1M, works fine in custom_ESP8266_4M1M #3855

Closed blazej222 closed 2 years ago

blazej222 commented 3 years ago

I've tried compiling my own version of EasyESP with only P076 and P077 enabled. When using custom_ESP8266_1M only P077 is included, and Info page shows there's 1 plugin installed. When using custom_ESP8266_4M1M both are included and are properly shown in devices field. When I compile including only P076, website shows no plugins are installed.

Here's Custom.h file I'm using

Custom.h ```CPP #ifndef ESPEASY_CUSTOM_H #define ESPEASY_CUSTOM_H #include /* To modify the stock configuration without changing the EspEasy.ino file : 1) rename this file to "Custom.h" (It is ignored by Git) 2) define your own settings below 3) define USE_CUSTOM_H as a build flags. ie : export PLATFORMIO_BUILD_FLAGS="'-DUSE_CUSTOM_H'" */ /* ####################################################################################################### Your Own Default Settings ####################################################################################################### You can basically ovveride ALL macro defined in ESPEasy.ino. Don't forget to first #undef each existing #define that you add below. But since this Custom.h is included before other defines are made, you don't have to undef a lot of defines. Here are some examples: */ #ifdef BUILD_GIT # undef BUILD_GIT #endif // ifdef BUILD_GIT #define BUILD_GIT "My Build: " __DATE__ " " __TIME__ #define DEFAULT_NAME "MyEspEasyDevice" // Enter your device friendly name #define UNIT 0 // Unit Number #define DEFAULT_DELAY 60 // Sleep Delay in seconds // --- Wifi AP Mode (when your Wifi Network is not reachable) ---------------------------------------- #define DEFAULT_AP_IP 192, 168, 4, 1 // Enter IP address (comma separated) for AP (config) mode #define DEFAULT_AP_SUBNET 255, 255, 255, 0 // Enter IP address (comma separated) for AP (config) mode #define DEFAULT_AP_KEY "configesp" // Enter network WPA key for AP (config) mode // --- Wifi Client Mode ----------------------------------------------------------------------------- #define DEFAULT_SSID "xxx" // Enter your network SSID #define DEFAULT_KEY "xxx" // Enter your network WPA key #define DEFAULT_SSID2 "" // Enter your fallback network SSID #define DEFAULT_KEY2 "" // Enter your fallback network WPA key #define DEFAULT_WIFI_INCLUDE_HIDDEN_SSID false // Allow to connect to hidden SSID APs #define DEFAULT_USE_STATIC_IP false // (true|false) enabled or disabled static IP #define DEFAULT_IP "192.168.0.50" // Enter your IP address #define DEFAULT_DNS "192.168.0.1" // Enter your DNS #define DEFAULT_GW "192.168.0.1" // Enter your Gateway #define DEFAULT_SUBNET "255.255.255.0" // Enter your Subnet #define DEFAULT_IPRANGE_LOW "0.0.0.0" // Allowed IP range to access webserver #define DEFAULT_IPRANGE_HIGH "255.255.255.255" // Allowed IP range to access webserver #define DEFAULT_IP_BLOCK_LEVEL 1 // 0: ALL_ALLOWED 1: LOCAL_SUBNET_ALLOWED 2: // ONLY_IP_RANGE_ALLOWED #define DEFAULT_ADMIN_USERNAME "admin" #define DEFAULT_ADMIN_PASS "" #define DEFAULT_WIFI_CONNECTION_TIMEOUT 10000 // minimum timeout in ms for WiFi to be connected. #define DEFAULT_WIFI_FORCE_BG_MODE false // when set, only allow to connect in 802.11B or G mode (not N) #define DEFAULT_WIFI_RESTART_WIFI_CONN_LOST false // Perform wifi off and on when connection was lost. #define DEFAULT_ECO_MODE false // When set, make idle calls between executing tasks. #define DEFAULT_WIFI_NONE_SLEEP false // When set, the wifi will be set to no longer sleep (more power // used and need reboot to reset mode) #define DEFAULT_GRATUITOUS_ARP false // When set, the node will send periodical gratuitous ARP // packets to announce itself. #define DEFAULT_TOLERANT_LAST_ARG_PARSE false // When set, the last argument of some commands will be parsed to the end of the line // See: https://github.com/letscontrolit/ESPEasy/issues/2724 #define DEFAULT_SEND_TO_HTTP_ACK false // Wait for ack with SendToHttp command. #define DEFAULT_AP_DONT_FORCE_SETUP false // Allow optional usage of Sensor without WIFI avaiable // When set you can use the Sensor in AP-Mode without beeing forced to /setup #define DEFAULT_DONT_ALLOW_START_AP false // Usually the AP will be started when no WiFi is defined, or the defined one cannot be found. This flag may prevent it. // --- Default Controller ------------------------------------------------------------------------------ #define DEFAULT_CONTROLLER false // true or false enabled or disabled, set 1st controller // defaults #define DEFAULT_CONTROLLER_ENABLED true // Enable default controller by default #define DEFAULT_CONTROLLER_USER "" // Default controller user #define DEFAULT_CONTROLLER_PASS "" // Default controller Password // using a default template, you also need to set a DEFAULT PROTOCOL to a suitable MQTT protocol ! #define DEFAULT_PUB "sensors/espeasy/%sysname%/%tskname%/%valname%" // Enter your pub #define DEFAULT_SUB "sensors/espeasy/%sysname%/#" // Enter your sub #define DEFAULT_SERVER "192.168.0.8" // Enter your Server IP address #define DEFAULT_SERVER_HOST "" // Server hostname #define DEFAULT_SERVER_USEDNS false // true: Use hostname. false: use IP #define DEFAULT_USE_EXTD_CONTROLLER_CREDENTIALS false // true: Allow longer user credentials for controllers #define DEFAULT_PORT 8080 // Enter your Server port value #define DEFAULT_PROTOCOL 0 // Protocol used for controller communications // 0 = Stand-alone (no controller set) // 1 = Domoticz HTTP // 2 = Domoticz MQTT // 3 = Nodo Telnet // 4 = ThingSpeak // 5 = Home Assistant (openHAB) MQTT // 6 = PiDome MQTT // 7 = EmonCMS // 8 = Generic HTTP // 9 = FHEM HTTP #define DEFAULT_PIN_I2C_SDA 4 #define DEFAULT_PIN_I2C_SCL 5 #define DEFAULT_I2C_CLOCK_SPEED 400000 // Use 100 kHz if working with old I2C chips #define USE_I2C_DEVICE_SCAN true #define DEFAULT_SPI 0 //0=disabled 1=enabled and for ESP32 there is option 2 =HSPI #define DEFAULT_PIN_STATUS_LED (-1) #define DEFAULT_PIN_STATUS_LED_INVERSED true #define DEFAULT_PIN_RESET_BUTTON (-1) #define DEFAULT_USE_RULES false // (true|false) Enable Rules? #define DEFAULT_RULES_OLDENGINE true #define DEFAULT_MQTT_RETAIN false // (true|false) Retain MQTT messages? #define DEFAULT_MQTT_DELAY 100 // Time in milliseconds to retain MQTT messages #define DEFAULT_MQTT_LWT_TOPIC "" // Default lwt topic #define DEFAULT_MQTT_LWT_CONNECT_MESSAGE "Connected" // Default lwt message #define DEFAULT_MQTT_LWT_DISCONNECT_MESSAGE "Connection Lost" // Default lwt message #define DEFAULT_MQTT_USE_UNITNAME_AS_CLIENTID 0 #define DEFAULT_USE_NTP false // (true|false) Use NTP Server #define DEFAULT_NTP_HOST "" // NTP Server Hostname #define DEFAULT_TIME_ZONE 0 // Time Offset (in minutes) #define DEFAULT_USE_DST false // (true|false) Use Daily Time Saving #define DEFAULT_LATITUDE 0.0f // Default Latitude #define DEFAULT_LONGITUDE 0.0f // Default Longitude #define DEFAULT_SYSLOG_IP "" // Syslog IP Address #define DEFAULT_SYSLOG_LEVEL 0 // Syslog Log Level #define DEFAULT_SERIAL_LOG_LEVEL LOG_LEVEL_INFO // Serial Log Level #define DEFAULT_WEB_LOG_LEVEL LOG_LEVEL_INFO // Web Log Level #define DEFAULT_SD_LOG_LEVEL 0 // SD Card Log Level #define DEFAULT_USE_SD_LOG false // (true|false) Enable Logging to the SD card #define DEFAULT_USE_SERIAL true // (true|false) Enable Logging to the Serial Port #define DEFAULT_SERIAL_BAUD 115200 // Serial Port Baud Rate #define DEFAULT_SYSLOG_FACILITY 0 // kern #define DEFAULT_SYNC_UDP_PORT 0 // Used for ESPEasy p2p. (IANA registered port: 8266) #define BUILD_NO_DEBUG // Special SSID/key setup only to be used in custom builds. // Deployment SSID will be used only when the configured SSIDs are not reachable and/or no credentials are set. // This to make deployment of large number of nodes easier #define CUSTOM_DEPLOYMENT_SSID "" // Enter SSID not shown in UI, to be used on custom builds to ease deployment #define CUSTOM_DEPLOYMENT_KEY "" // Enter key not shown in UI, to be used on custom builds to ease deployment #define CUSTOM_SUPPORT_SSID "" // Enter SSID not shown in UI, to be used on custom builds to ease support #define CUSTOM_SUPPORT_KEY "" // Enter key not shown in UI, to be used on custom builds to ease support // Emergency fallback SSID will only be attempted in the first 10 minutes after reboot. // When found, the unit will connect to it and depending on the built in flag, it will either just connect to it, or clear set credentials. // Use case: User connects to a public AP which does need to agree on an agreement page for the rules of conduct (e.g. open APs) // This is seen as a valid connection, so the unit will not reconnect to another node and thus becomes inaccessible. #define CUSTOM_EMERGENCY_FALLBACK_SSID "" // Enter SSID not shown in UI, to be used to regain access to the node #define CUSTOM_EMERGENCY_FALLBACK_KEY "" // Enter key not shown in UI, to be used to regain access to the node #define CUSTOM_EMERGENCY_FALLBACK_RESET_CREDENTIALS false #define CUSTOM_EMERGENCY_FALLBACK_START_AP false #define CUSTOM_EMERGENCY_FALLBACK_ALLOW_MINUTES_UPTIME 10 #define USES_SSDP #define USE_EXT_RTC // Support for external RTC clock modules like PCF8563/PCF8523/DS3231/DS1307 // #define USE_SETTINGS_ARCHIVE // #define FEATURE_I2CMULTIPLEXER // #define USE_TRIGONOMETRIC_FUNCTIONS_RULES /* ####################################################################################################### Defining web interface ####################################################################################################### */ #define MENU_INDEX_MAIN_VISIBLE true /* #define MENU_INDEX_CONFIG_VISIBLE false #define MENU_INDEX_CONTROLLERS_VISIBLE false #define MENU_INDEX_HARDWARE_VISIBLE false #define MENU_INDEX_DEVICES_VISIBLE false #define MENU_INDEX_RULES_VISIBLE false #define MENU_INDEX_NOTIFICATIONS_VISIBLE false #define MENU_INDEX_TOOLS_VISIBLE false */ #define MAIN_PAGE_SHOW_SYSINFO_BUTTON true #define MAIN_PAGE_SHOW_WiFi_SETUP_BUTTON true #define MAIN_PAGE_SHOW_BASIC_INFO_NOT_LOGGED_IN false #define MAIN_PAGE_SHOW_NODE_LIST_BUILD true #define MAIN_PAGE_SHOW_NODE_LIST_TYPE true #define SETUP_PAGE_SHOW_CONFIG_BUTTON true //#define WEBPAGE_TEMPLATE_HIDE_HELP_BUTTON /* ####################################################################################################### CSS / template ####################################################################################################### */ /* #define WEBPAGE_TEMPLATE_DEFAULT_HEADER "

ESP Easy Mega: {{title}}


" #define WEBPAGE_TEMPLATE_DEFAULT_FOOTER "" #define WEBPAGE_TEMPLATE_AP_HEADER "

Welcome to ESP Easy Mega AP

" #define WEBPAGE_TEMPLATE_HIDE_HELP_BUTTON */ // Embed Custom CSS in Custom.h: /* #define WEBSERVER_EMBED_CUSTOM_CSS static const char DATA_ESPEASY_DEFAULT_MIN_CSS[] PROGMEM = { ... ,0}; */ /* ####################################################################################################### Special settings (rendering settings incompatible with other builds) ####################################################################################################### */ // #define USE_NON_STANDARD_24_TASKS /* ####################################################################################################### Your Own selection of plugins and controllers ####################################################################################################### */ #define CONTROLLER_SET_NONE #define NOTIFIER_SET_NONE #define PLUGIN_SET_NONE /* ####################################################################################################### ########### Plugins ####################################################################################################### */ // #define USE_SERVO // #define USES_P001 // Switch // #define USES_P002 // ADC // #define USES_P003 // Pulse // #define USES_P004 // Dallas // #define USES_P005 // DHT // #define USES_P006 // BMP085 // #define USES_P007 // PCF8591 // #define USES_P008 // RFID // #define USES_P009 // MCP // #define USES_P010 // BH1750 // #define USES_P011 // PME // #define USES_P012 // LCD // #define USES_P013 // HCSR04 // #define USES_P014 // SI7021 // #define USES_P015 // TSL2561 // #define USES_P017 // PN532 // #define USES_P018 // Dust // #define USES_P019 // PCF8574 // #define USES_P020 // Ser2Net // #define USES_P021 // Level // #define USES_P022 // PCA9685 // #define USES_P023 // OLED // #define USES_P024 // MLX90614 // #define USES_P025 // ADS1115 // #define USES_P026 // SysInfo // #define USES_P027 // INA219 // #define USES_P028 // BME280 // #define USES_P029 // Output // #define USES_P031 // SHT1X // #define USES_P032 // MS5611 // #define USES_P033 // Dummy // #define USES_P034 // DHT12 // #define USES_P036 // FrameOLED // #define USES_P037 // MQTTImport // #define USES_P038 // NeoPixel // #define USES_P039 // Environment - Thermocouple // #define USES_P040 // RFID - ID12LA/RDM6300 // #define USES_P041 // NeoClock // #define USES_P042 // Candle // #define USES_P043 // ClkOutput // #define USES_P044 // P1WifiGateway // #define USES_P045 // MPU6050 // #define USES_P046 // VentusW266 // #define USES_P047 // I2C_soil_misture // #define USES_P048 // Motoshield_v2 // #define USES_P049 // MHZ19 // #define USES_P050 // TCS34725 RGB Color Sensor with IR filter and White LED // #define USES_P051 // AM2320 // #define USES_P052 // SenseAir // #define USES_P053 // PMSx003 // #define USES_P054 // DMX512 // #define USES_P055 // Chiming // #define USES_P056 // SDS011-Dust // #define USES_P057 // HT16K33_LED // #define USES_P058 // HT16K33_KeyPad // #define USES_P059 // Encoder // #define USES_P060 // MCP3221 // #define USES_P061 // Keypad // #define USES_P062 // MPR121_KeyPad // #define USES_P063 // TTP229_KeyPad // #define USES_P064 // APDS9960 Gesture // #define USES_P065 // DRF0299 // #define USES_P066 // VEML6040 // #define USES_P067 // HX711_Load_Cell // #define USES_P068 // SHT3x // #define USES_P069 // LM75A // #define USES_P070 // NeoPixel_Clock // #define USES_P071 // Kamstrup401 // #define USES_P072 // HDC1080 // #define USES_P073 // 7DG // #define USES_P074 // TSL2561 // #define USES_P075 // Nextion #define USES_P076 // HWL8012 in POW r1 #define USES_P077 // CSE7766 in POW R2 // #define USES_P078 // Eastron Modbus Energy meters // #define USES_P079 // Wemos Motoshield // #define USES_P080 // iButton Sensor DS1990A // #define USES_P081 // Cron // #define USES_P082 // GPS // #define USES_P083 // SGP30 // #define USES_P084 // VEML6070 // #define USES_P085 // AcuDC24x // #define USES_P086 // Receiving values according Homie convention. Works together with C014 Homie controller // #define USES_P087 // Serial Proxy // #define USES_P088 // HeatpumpIR // #define USES_P089 // Ping // #define USES_P090 // CCS811 // #define USES_P091 // SerSwitch // #define USES_P092 // DLbus // #define USES_P093 // MitsubishiHP // #define USES_P094 // CULReader // #define USES_P095 // ILI9341 // #define USES_P096 // eInk // #define USES_P097 // ESP32Touch // #define USES_P098 // // #define USES_P099 // XPT2046 touchscreen // #define USES_P100 // DS2423 counter // #define USES_P101 // WakeOnLan // #define USES_P102 // PZEM004Tv3 // #define USES_P103 // Atlas Scientific EZO Sensors (pH, ORP, EZO, DO) // #define USES_P104 // MAX7219 dotmatrix // #define USES_P105 // AHT10/20/21 // #define USES_P106 // BME680 // #define USES_P107 // Si1145 // #define USES_P109 // ThermoOLED // #define USES_P110 // VL53L0X Time of Flight sensor // #define USES_P111 // RF522 RFID reader // #define USES_P112 // AS7265x // #define USES_P113 // VL53L1X ToF // #define USES_P114 // VEML6075 // #define USES_P115 // MAX1704x // #define USES_P119 // ITG3205 Gyro // #define USES_P120 // ADXL345 Acceleration / Gravity // Special plugins needing IR library // #define USES_P016 // IR // #define P016_SEND_IR_TO_CONTROLLER false //IF true then the JSON replay solution is transmited back to the condroller. // #define USES_P035 // IRTX // #define P016_P035_Extended_AC // The following define is needed for extended decoding of A/C Messages and or using standardised //common arguments for controlling all deeply supported A/C units // #define P016_P035_USE_RAW_RAW2 //Use the RAW and RAW2 encodings, disabling it saves 3.7Kb // #define USES_P088 // Heatpump IR // #define USES_P108 // DDS238-x ZN Modbus energy meters /* ####################################################################################################### ########### Controllers ####################################################################################################### */ // #define USES_C001 // Domoticz HTTP // #define USES_C002 // Domoticz MQTT // #define USES_C003 // Nodo telnet // #define USES_C004 // ThingSpeak // #define USES_C005 // Home Assistant (openHAB) MQTT // #define USES_C006 // PiDome MQTT // #define USES_C007 // Emoncms // #define USES_C008 // Generic HTTP // #define USES_C009 // FHEM HTTP // #define USES_C010 // Generic UDP // #define USES_C011 // Generic HTTP Advanced // #define USES_C012 // Blynk HTTP // #define USES_C013 // ESPEasy P2P network // #define USES_C014 // homie 3 & 4dev MQTT // #define USES_C015 // Blynk // #define USES_C016 // Cache controller // #define USES_C017 // Zabbix // #define USES_C018 // TTN/RN2483 /* ####################################################################################################### ########### Notifiers ####################################################################################################### */ // #define USES_N001 // Email // #define USES_N002 // Buzzer #endif // ESPEASY_CUSTOM_H ```
TD-er commented 3 years ago

That's probably caused by the check for 1M build size in the define_plugin_sets.h

To be more concrete, it is in this section: https://github.com/letscontrolit/ESPEasy/blob/549f76e23fcb872de74b53958be5d3460fc4e804/src/src/CustomBuild/define_plugin_sets.h#L1579-L1647

I think we may need to wrap this in something like #ifndef CUSTOM_BUILD

tonhuisman commented 2 years ago

This has been solved via PR #3929