Skip to content

Commit

Permalink
[Build] Split controllers on minimal OTA builds
Browse files Browse the repository at this point in the history
Split Domoticz and FHEM/HomeAssistant/OpenHAB into separate builds as these are most likely never used together.
  • Loading branch information
TD-er committed Mar 5, 2020
1 parent caf3b46 commit 4e7cb1e
Show file tree
Hide file tree
Showing 9 changed files with 146 additions and 15 deletions.
2 changes: 1 addition & 1 deletion platformio_core_defs.ini
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ platform = espressif8266@2.3.2
platform_packages =
framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#2.6.3
build_flags = ${esp82xx_2_6_x.build_flags}
-DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703
-DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191122

[core_2_6_3_sdk3]
platform = espressif8266@2.3.2
Expand Down
51 changes: 47 additions & 4 deletions platformio_esp82xx_envs.ini
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,14 @@ build_flags = ${regular_platform.build_flags}
; Minimal build size for OTA ;
; *********************************************************************

[minimal_OTA_domoticz]
build_flags = -DUSES_DOMOTICZ

[minimal_OTA_FHEM_HA]
build_flags = -DUSES_FHEM
-DUSES_HOMEASSISTANT_OPENHAB


[env:minimal_core_242_ESP8266_1M_OTA]
extends = esp8266_1M_OTA
platform = ${core_2_4_2.platform}
Expand All @@ -157,31 +165,66 @@ platform = ${core_2_4_2.platform}
build_flags = ${core_2_4_2.build_flags}
${esp8285_1M_OTA.build_flags}

[env:minimal_core_261_ESP8266_1M_OTA]
[env:minimal_core_263_ESP8266_1M_OTA_Domoticz]
extends = esp8266_1M_OTA
platform = ${regular_platform.platform}
platform_packages = ${regular_platform.platform_packages}
build_flags = ${regular_platform.build_flags}
${esp8266_1M_OTA.build_flags}
${minimal_OTA_domoticz.build_flags}

[env:minimal_core_263_ESP8285_1M_OTA_Domoticz]
extends = esp8285_1M_OTA
platform = ${regular_platform.platform}
platform_packages = ${regular_platform.platform_packages}
build_flags = ${regular_platform.build_flags}
${esp8285_1M_OTA.build_flags}
${minimal_OTA_domoticz.build_flags}

[env:minimal_core_263_sdk3_ESP8266_1M_OTA_Domoticz]
extends = esp8266_1M_OTA
platform = ${core_2_6_3_sdk3.platform}
build_flags = ${core_2_6_3_sdk3.build_flags}
${esp8266_1M_OTA.build_flags}
${minimal_OTA_domoticz.build_flags}

[env:minimal_core_263_sdk3_ESP8285_1M_OTA_Domoticz]
extends = esp8285_1M_OTA
platform = ${core_2_6_3_sdk3.platform}
build_flags = ${core_2_6_3_sdk3.build_flags}
${esp8285_1M_OTA.build_flags}
${minimal_OTA_domoticz.build_flags}


[env:minimal_core_263_ESP8266_1M_OTA_FHEM_HA]
extends = esp8266_1M_OTA
platform = ${regular_platform.platform}
platform_packages = ${regular_platform.platform_packages}
build_flags = ${regular_platform.build_flags}
${esp8266_1M_OTA.build_flags}
${minimal_OTA_FHEM_HA.build_flags}

[env:minimal_core_261_ESP8285_1M_OTA]
[env:minimal_core_263_ESP8285_1M_OTA_FHEM_HA]
extends = esp8285_1M_OTA
platform = ${regular_platform.platform}
platform_packages = ${regular_platform.platform_packages}
build_flags = ${regular_platform.build_flags}
${esp8285_1M_OTA.build_flags}
${minimal_OTA_FHEM_HA.build_flags}

[env:minimal_core_261_sdk3_ESP8266_1M_OTA]
[env:minimal_core_263_sdk3_ESP8266_1M_OTA_FHEM_HA]
extends = esp8266_1M_OTA
platform = ${core_2_6_3_sdk3.platform}
build_flags = ${core_2_6_3_sdk3.build_flags}
${esp8266_1M_OTA.build_flags}
${minimal_OTA_FHEM_HA.build_flags}

[env:minimal_core_261_sdk3_ESP8285_1M_OTA]
[env:minimal_core_263_sdk3_ESP8285_1M_OTA_FHEM_HA]
extends = esp8285_1M_OTA
platform = ${core_2_6_3_sdk3.platform}
build_flags = ${core_2_6_3_sdk3.build_flags}
${esp8285_1M_OTA.build_flags}
${minimal_OTA_FHEM_HA.build_flags}



Expand Down
13 changes: 13 additions & 0 deletions src/Command.ino
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,9 @@ bool executeInternalCommand(const char *cmd, struct EventStruct *event, const ch
break;
}
case 'b': {
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
COMMAND_CASE("background", Command_Background, 1); // Diagnostic.h
#endif
#ifdef USES_C012
COMMAND_CASE( "blynkget", Command_Blynk_Get, -1);
#endif // ifdef USES_C012
Expand Down Expand Up @@ -165,20 +167,27 @@ bool executeInternalCommand(const char *cmd, struct EventStruct *event, const ch
break;
}
case 'j': {
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
COMMAND_CASE("jsonportstatus", Command_JSONPortStatus, -1); // Diagnostic.h
#endif
break;
}
case 'l': {
COMMAND_CASE( "let", Command_Rules_Let, 2); // Rules.h
COMMAND_CASE( "load", Command_Settings_Load, 0); // Settings.h
COMMAND_CASE( "logentry", Command_logentry, 1); // Diagnostic.h
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
COMMAND_CASE("logportstatus", Command_logPortStatus, 0); // Diagnostic.h
COMMAND_CASE( "lowmem", Command_Lowmem, 0); // Diagnostic.h
#endif
break;
}
case 'm': {
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
COMMAND_CASE( "malloc", Command_Malloc, 1); // Diagnostic.h
COMMAND_CASE( "meminfo", Command_MemInfo, 0); // Diagnostic.h
COMMAND_CASE( "meminfodetail", Command_MemInfo_detail, 0); // Diagnostic.h
#endif
#ifdef USES_MQTT
COMMAND_CASE( "messagedelay", Command_MQTT_messageDelay, 1); // MQTT.h
COMMAND_CASE("mqttretainflag", Command_MQTT_Retain, 1); // MQTT.h
Expand Down Expand Up @@ -218,14 +227,18 @@ bool executeInternalCommand(const char *cmd, struct EventStruct *event, const ch
// arguments?
COMMAND_CASE( "sendtohttp", Command_HTTP_SendToHTTP, 3); // HTTP.h
COMMAND_CASE( "sendtoudp", Command_UDP_SendToUPD, 3); // UDP.h
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
COMMAND_CASE("serialfloat", Command_SerialFloat, 0); // Diagnostic.h
#endif
COMMAND_CASE( "settings", Command_Settings_Print, 0); // Settings.h
}
COMMAND_CASE( "subnet", Command_Subnet, 1); // Network Command
#ifdef USES_MQTT
COMMAND_CASE( "subscribe", Command_MQTT_Subscribe, 1); // MQTT.h
#endif // USES_MQTT
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
COMMAND_CASE( "sysload", Command_SysLoad, 0); // Diagnostic.h
#endif
break;
}
case 't': {
Expand Down
2 changes: 1 addition & 1 deletion src/ESPEasy.ino
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@
#include "src/Globals/MQTT.h"
#include "src/Globals/Plugins.h"
#include "src/Globals/Protocol.h"
#include "src/Globals/RamTracker.h"
#include "src/Globals/RTC.h"
#include "src/Globals/SecuritySettings.h"
#include "src/Globals/Services.h"
Expand Down Expand Up @@ -878,7 +879,6 @@ void logTimerStatistics() {
\*********************************************************************************************/
void runEach30Seconds()
{
extern void checkRAMtoLog();
checkRAMtoLog();
wdcounter++;
if (loglevelActiveFor(LOG_LEVEL_INFO)) {
Expand Down
56 changes: 51 additions & 5 deletions src/define_plugin_sets.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,32 @@ To create/register a plugin, you have to :
#endif

#ifdef PLUGIN_BUILD_MINIMAL_IR
#ifndef USES_DOMOTICZ
#define USES_DOMOTICZ
#endif
#ifndef USES_FHEM
#define USES_FHEM
#endif
#ifndef USES_HOMEASSISTANT_OPENHAB
#define USES_HOMEASSISTANT_OPENHAB
#endif

#define PLUGIN_BUILD_MINIMAL_OTA
#define PLUGIN_DESCR "Minimal, IR"
#define PLUGIN_BUILD_IR
#endif

#ifdef PLUGIN_BUILD_MINIMAL_IRext
#ifndef USES_DOMOTICZ
#define USES_DOMOTICZ
#endif
#ifndef USES_FHEM
#define USES_FHEM
#endif
#ifndef USES_HOMEASSISTANT_OPENHAB
#define USES_HOMEASSISTANT_OPENHAB
#endif

#define PLUGIN_BUILD_MINIMAL_OTA
#define PLUGIN_DESCR "Minimal, IR with AC"
#define PLUGIN_BUILD_IR_EXTENDED
Expand Down Expand Up @@ -212,6 +232,19 @@ To create/register a plugin, you have to :
#endif
#endif

#ifdef USES_DOMOTICZ
#define USES_C001 // Domoticz HTTP
#define USES_C002 // Domoticz MQTT
#endif

#ifdef USES_FHEM
#define USES_C009 // FHEM HTTP
#endif

#ifdef USES_HOMEASSISTANT_OPENHAB
#define USES_C005 // Home Assistant (openHAB) MQTT
#endif

#ifdef PLUGIN_BUILD_MINIMAL_OTA
#ifndef PLUGIN_DESCR
#define PLUGIN_DESCR "Minimal 1M OTA"
Expand All @@ -224,12 +257,12 @@ To create/register a plugin, you have to :
#define BUILD_NO_DEBUG
#endif

#define USES_C001 // Domoticz HTTP
#define USES_C002 // Domoticz MQTT
#define USES_C005 // Home Assistant (openHAB) MQTT
// #define USES_C001 // Domoticz HTTP
// #define USES_C002 // Domoticz MQTT
// #define USES_C005 // Home Assistant (openHAB) MQTT
// #define USES_C006 // PiDome MQTT
#define USES_C008 // Generic HTTP
#define USES_C009 // FHEM HTTP
// #define USES_C009 // FHEM HTTP
// #define USES_C010 // Generic UDP
#define USES_C013 // ESPEasy P2P network

Expand Down Expand Up @@ -959,7 +992,9 @@ To create/register a plugin, you have to :
#endif

#if defined(USES_C001) || defined (USES_C002) || defined(USES_P029)
#define USES_DOMOTICZ
#ifndef USES_DOMOTICZ
#define USES_DOMOTICZ
#endif
#endif

#if defined(USES_C002) || defined (USES_C005) || defined(USES_C006) || defined(USES_C014) || defined(USES_P037)
Expand Down Expand Up @@ -1006,4 +1041,15 @@ To create/register a plugin, you have to :
#endif


#ifdef BUILD_NO_DEBUG
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
#define BUILD_NO_DIAGNOSTIC_COMMANDS
#endif
#ifndef BUILD_NO_RAM_TRACKER
#define BUILD_NO_RAM_TRACKER
#endif

#endif


#endif // DEFINE_PLUGIN_SETS_H
4 changes: 4 additions & 0 deletions src/src/Commands/Diagnostic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
bool showSettingsFileLayout = false;
#endif // ifndef BUILD_MINIMAL_OTA

#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
String Command_Lowmem(struct EventStruct *event, const char *Line)
{
String result;
Expand Down Expand Up @@ -130,6 +131,7 @@ String Command_Background(struct EventStruct *event, const char *Line)
serialPrintln(F("end"));
return return_see_serial(event);
}
#endif // BUILD_NO_DIAGNOSTIC_COMMANDS

String Command_Debug(struct EventStruct *event, const char *Line)
{
Expand All @@ -150,6 +152,7 @@ String Command_logentry(struct EventStruct *event, const char *Line)
return return_command_success();
}

#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
String Command_JSONPortStatus(struct EventStruct *event, const char *Line)
{
addLog(LOG_LEVEL_INFO, F("JSON Port Status: Command not implemented yet."));
Expand Down Expand Up @@ -205,3 +208,4 @@ String Command_logPortStatus(struct EventStruct *event, const char *Line)
logPortStatus("Rules");
return return_command_success();
}
#endif // BUILD_NO_DIAGNOSTIC_COMMANDS
11 changes: 8 additions & 3 deletions src/src/Commands/Diagnostic.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,29 @@
#include <stdint.h>
#include <map>

#include "../../define_plugin_sets.h"

class String;
struct portStatusStruct;


#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
String Command_Lowmem(struct EventStruct *event, const char* Line);
String Command_Malloc(struct EventStruct *event, const char* Line);
String Command_SysLoad(struct EventStruct *event, const char* Line);
String Command_SerialFloat(struct EventStruct *event, const char* Line);
String Command_MemInfo(struct EventStruct *event, const char* Line);
String Command_MemInfo_detail(struct EventStruct *event, const char* Line);
String Command_Background(struct EventStruct *event, const char* Line);
#endif
String Command_Debug(struct EventStruct *event, const char* Line);
String Command_logentry(struct EventStruct *event, const char* Line);
#ifndef BUILD_NO_DIAGNOSTIC_COMMANDS
String Command_JSONPortStatus(struct EventStruct *event, const char* Line);
void createLogPortStatus(std::map< uint32_t, portStatusStruct >::iterator it);
void debugPortStatus(std::map< uint32_t, portStatusStruct >::iterator it);
//void createLogPortStatus(std::map< uint32_t, portStatusStruct >::iterator it);
//void debugPortStatus(std::map< uint32_t, portStatusStruct >::iterator it);
void logPortStatus(const String& from);
String Command_logPortStatus(struct EventStruct *event, const char* Line);
#endif


#ifndef BUILD_MINIMAL_OTA
Expand Down
16 changes: 15 additions & 1 deletion src/src/Globals/RamTracker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include "../../ESPEasy_fdwdecl.h"
#include "Statistics.h"


#ifndef BUILD_NO_RAM_TRACKER
RamTracker myRamTracker;

/********************************************************************************************\
Expand Down Expand Up @@ -131,3 +131,17 @@ void RamTracker::getTraceBuffer() {
}
#endif // ifndef BUILD_NO_DEBUG
}

#else // BUILD_NO_RAM_TRACKER

void checkRAMtoLog(void) {}

void checkRAM(const String& flashString,
int a) {}

void checkRAM(const String& flashString,
const String& a) {}

void checkRAM(const String& descr) {}

#endif // BUILD_NO_RAM_TRACKER
6 changes: 6 additions & 0 deletions src/src/Globals/RamTracker.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@
#define TRACEENTRIES 15 // entries per trace

#include <Arduino.h>
#include "../../define_plugin_sets.h"

/********************************************************************************************\
RamTracker class
\*********************************************************************************************/

#ifndef BUILD_NO_RAM_TRACKER
class RamTracker {
private:

Expand Down Expand Up @@ -38,6 +41,8 @@ extern RamTracker myRamTracker; // instantiate class. (is global now)
Global convenience functions calling RamTracker
\*********************************************************************************************/

#endif // BUILD_NO_RAM_TRACKER

void checkRAMtoLog(void);

void checkRAM(const String& flashString,
Expand All @@ -49,4 +54,5 @@ void checkRAM(const String& flashString,
void checkRAM(const String& descr);



#endif // GLOBALS_RAMTRACKER_H

0 comments on commit 4e7cb1e

Please sign in to comment.