mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-09 09:19:51 +03:00
add syslog enabled - it was causing mem issues with esp32
This commit is contained in:
@@ -209,11 +209,21 @@ function EMSESPSettingsControllerForm(props: EMSESPSettingsControllerFormProps)
|
|||||||
<Typography variant="h6" color="primary" >
|
<Typography variant="h6" color="primary" >
|
||||||
Syslog
|
Syslog
|
||||||
</Typography>
|
</Typography>
|
||||||
|
<BlockFormControlLabel
|
||||||
|
control={
|
||||||
|
<Checkbox
|
||||||
|
checked={data.syslog_enabled}
|
||||||
|
onChange={handleValueChange('syslog_enabled')}
|
||||||
|
value="syslog_enabled"
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
label="Enable Syslog"
|
||||||
|
/>
|
||||||
<TextValidator
|
<TextValidator
|
||||||
validators={['isIPOrHostname']}
|
validators={['isIPOrHostname']}
|
||||||
errorMessages={["Not a valid IP address or hostname"]}
|
errorMessages={["Not a valid IP address or hostname"]}
|
||||||
name="syslog_host"
|
name="syslog_host"
|
||||||
label="Syslog IP/Host (optional)"
|
label="Syslog IP/Host"
|
||||||
fullWidth
|
fullWidth
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
value={data.syslog_host}
|
value={data.syslog_host}
|
||||||
@@ -227,16 +237,15 @@ function EMSESPSettingsControllerForm(props: EMSESPSettingsControllerFormProps)
|
|||||||
variant="outlined"
|
variant="outlined"
|
||||||
onChange={handleValueChange('syslog_level')}
|
onChange={handleValueChange('syslog_level')}
|
||||||
margin="normal">
|
margin="normal">
|
||||||
<MenuItem value={-1}>OFF</MenuItem>
|
|
||||||
<MenuItem value={3}>ERR</MenuItem>
|
<MenuItem value={3}>ERR</MenuItem>
|
||||||
<MenuItem value={6}>INFO</MenuItem>
|
<MenuItem value={6}>INFO</MenuItem>
|
||||||
<MenuItem value={7}>DEBUG</MenuItem>
|
<MenuItem value={7}>DEBUG</MenuItem>
|
||||||
</SelectValidator>
|
</SelectValidator>
|
||||||
<TextValidator
|
<TextValidator
|
||||||
validators={['required', 'isNumber', 'minNumber:0', 'maxNumber:65535']}
|
validators={['required', 'isNumber', 'minNumber:0', 'maxNumber:65535']}
|
||||||
errorMessages={['Syslog Mark is required', "Must be a number", "Must be 0 or higher (0=off)", "Max value is 65535"]}
|
errorMessages={['Syslog Mark is required', "Must be a number", "Must be 0 or higher", "Max value is 10"]}
|
||||||
name="syslog_mark_interval"
|
name="syslog_mark_interval"
|
||||||
label="Syslog Mark Interval (seconds, 0=off)"
|
label="Syslog Mark Interval (seconds)"
|
||||||
fullWidth
|
fullWidth
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
value={data.syslog_mark_interval}
|
value={data.syslog_mark_interval}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
export interface EMSESPSettings {
|
export interface EMSESPSettings {
|
||||||
tx_mode: number;
|
tx_mode: number;
|
||||||
ems_bus_id: number;
|
ems_bus_id: number;
|
||||||
|
syslog_enabled: boolean;
|
||||||
syslog_level: number;
|
syslog_level: number;
|
||||||
syslog_mark_interval: number;
|
syslog_mark_interval: number;
|
||||||
syslog_host: string;
|
syslog_host: string;
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ class DummySettings {
|
|||||||
public:
|
public:
|
||||||
uint8_t tx_mode = 1;
|
uint8_t tx_mode = 1;
|
||||||
uint8_t ems_bus_id = 0x0B;
|
uint8_t ems_bus_id = 0x0B;
|
||||||
int8_t syslog_level = 1; // uuid::log::Level
|
bool syslog_enabled = false;
|
||||||
|
int8_t syslog_level = 3; // uuid::log::Level
|
||||||
uint32_t syslog_mark_interval = 0;
|
uint32_t syslog_mark_interval = 0;
|
||||||
String syslog_host = "192.168.1.4";
|
String syslog_host = "192.168.1.4";
|
||||||
uint8_t master_thermostat = 0;
|
uint8_t master_thermostat = 0;
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ WebSettingsService::WebSettingsService(AsyncWebServer * server, FS * fs, Securit
|
|||||||
void WebSettings::read(WebSettings & settings, JsonObject & root) {
|
void WebSettings::read(WebSettings & settings, JsonObject & root) {
|
||||||
root["tx_mode"] = settings.tx_mode;
|
root["tx_mode"] = settings.tx_mode;
|
||||||
root["ems_bus_id"] = settings.ems_bus_id;
|
root["ems_bus_id"] = settings.ems_bus_id;
|
||||||
|
root["syslog_enabled"] = settings.syslog_enabled;
|
||||||
root["syslog_level"] = settings.syslog_level;
|
root["syslog_level"] = settings.syslog_level;
|
||||||
root["syslog_mark_interval"] = settings.syslog_mark_interval;
|
root["syslog_mark_interval"] = settings.syslog_mark_interval;
|
||||||
root["syslog_host"] = settings.syslog_host;
|
root["syslog_host"] = settings.syslog_host;
|
||||||
@@ -50,6 +51,7 @@ void WebSettings::read(WebSettings & settings, JsonObject & root) {
|
|||||||
StateUpdateResult WebSettings::update(JsonObject & root, WebSettings & settings) {
|
StateUpdateResult WebSettings::update(JsonObject & root, WebSettings & settings) {
|
||||||
settings.tx_mode = root["tx_mode"] | EMSESP_DEFAULT_TX_MODE;
|
settings.tx_mode = root["tx_mode"] | EMSESP_DEFAULT_TX_MODE;
|
||||||
settings.ems_bus_id = root["ems_bus_id"] | EMSESP_DEFAULT_EMS_BUS_ID;
|
settings.ems_bus_id = root["ems_bus_id"] | EMSESP_DEFAULT_EMS_BUS_ID;
|
||||||
|
settings.syslog_enabled = root["syslog_enabled"] | EMSESP_DEFAULT_SYSLOG_ENABLED;
|
||||||
settings.syslog_level = root["syslog_level"] | EMSESP_DEFAULT_SYSLOG_LEVEL;
|
settings.syslog_level = root["syslog_level"] | EMSESP_DEFAULT_SYSLOG_LEVEL;
|
||||||
settings.syslog_mark_interval = root["syslog_mark_interval"] | EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL;
|
settings.syslog_mark_interval = root["syslog_mark_interval"] | EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL;
|
||||||
settings.syslog_host = root["syslog_host"] | EMSESP_DEFAULT_SYSLOG_HOST;
|
settings.syslog_host = root["syslog_host"] | EMSESP_DEFAULT_SYSLOG_HOST;
|
||||||
|
|||||||
@@ -27,7 +27,8 @@
|
|||||||
|
|
||||||
#define EMSESP_DEFAULT_TX_MODE 1 // EMS1.0
|
#define EMSESP_DEFAULT_TX_MODE 1 // EMS1.0
|
||||||
#define EMSESP_DEFAULT_EMS_BUS_ID 0x0B // service key
|
#define EMSESP_DEFAULT_EMS_BUS_ID 0x0B // service key
|
||||||
#define EMSESP_DEFAULT_SYSLOG_LEVEL -1 // OFF
|
#define EMSESP_DEFAULT_SYSLOG_ENABLED false
|
||||||
|
#define EMSESP_DEFAULT_SYSLOG_LEVEL 3 // ERR
|
||||||
#define EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL 0
|
#define EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL 0
|
||||||
#define EMSESP_DEFAULT_SYSLOG_HOST ""
|
#define EMSESP_DEFAULT_SYSLOG_HOST ""
|
||||||
#define EMSESP_DEFAULT_MASTER_THERMOSTAT 0 // not set
|
#define EMSESP_DEFAULT_MASTER_THERMOSTAT 0 // not set
|
||||||
@@ -67,6 +68,7 @@ class WebSettings {
|
|||||||
uint8_t master_thermostat;
|
uint8_t master_thermostat;
|
||||||
bool shower_timer;
|
bool shower_timer;
|
||||||
bool shower_alert;
|
bool shower_alert;
|
||||||
|
bool syslog_enabled;
|
||||||
int8_t syslog_level; // uuid::log::Level
|
int8_t syslog_level; // uuid::log::Level
|
||||||
uint32_t syslog_mark_interval;
|
uint32_t syslog_mark_interval;
|
||||||
String syslog_host;
|
String syslog_host;
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ bool System::hide_led_ = false;
|
|||||||
uint8_t System::led_gpio_ = 0;
|
uint8_t System::led_gpio_ = 0;
|
||||||
uint16_t System::analog_ = 0;
|
uint16_t System::analog_ = 0;
|
||||||
bool System::analog_enabled_ = false;
|
bool System::analog_enabled_ = false;
|
||||||
|
bool System::syslog_enabled_ = false;
|
||||||
std::string System::hostname_;
|
std::string System::hostname_;
|
||||||
|
|
||||||
// send on/off to a gpio pin
|
// send on/off to a gpio pin
|
||||||
@@ -112,6 +113,7 @@ uint8_t System::free_mem() {
|
|||||||
void System::syslog_init() {
|
void System::syslog_init() {
|
||||||
// fetch settings
|
// fetch settings
|
||||||
EMSESP::webSettingsService.read([&](WebSettings & settings) {
|
EMSESP::webSettingsService.read([&](WebSettings & settings) {
|
||||||
|
syslog_enabled_ = settings.syslog_enabled;
|
||||||
syslog_level_ = settings.syslog_level;
|
syslog_level_ = settings.syslog_level;
|
||||||
syslog_mark_interval_ = settings.syslog_mark_interval;
|
syslog_mark_interval_ = settings.syslog_mark_interval;
|
||||||
syslog_host_ = settings.syslog_host;
|
syslog_host_ = settings.syslog_host;
|
||||||
@@ -153,9 +155,11 @@ void System::start() {
|
|||||||
Command::add(EMSdevice::DeviceType::SYSTEM, settings.ems_bus_id, F_(send), System::command_send);
|
Command::add(EMSdevice::DeviceType::SYSTEM, settings.ems_bus_id, F_(send), System::command_send);
|
||||||
Command::add_with_json(EMSdevice::DeviceType::SYSTEM, F_(info), System::command_info);
|
Command::add_with_json(EMSdevice::DeviceType::SYSTEM, F_(info), System::command_info);
|
||||||
Command::add_with_json(EMSdevice::DeviceType::SYSTEM, F_(report), System::command_report);
|
Command::add_with_json(EMSdevice::DeviceType::SYSTEM, F_(report), System::command_report);
|
||||||
|
if (settings.syslog_enabled) {
|
||||||
|
syslog_init(); // init SysLog
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
syslog_init(); // init SysLog
|
|
||||||
|
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
@@ -168,6 +172,7 @@ void System::init() {
|
|||||||
EMSESP::webSettingsService.read([&](WebSettings & settings) {
|
EMSESP::webSettingsService.read([&](WebSettings & settings) {
|
||||||
Helpers::bool_format(settings.bool_format);
|
Helpers::bool_format(settings.bool_format);
|
||||||
analog_enabled_ = settings.analog_enabled;
|
analog_enabled_ = settings.analog_enabled;
|
||||||
|
syslog_enabled_ = settings.syslog_enabled;
|
||||||
});
|
});
|
||||||
|
|
||||||
EMSESP::esp8266React.getWiFiSettingsService()->read([&](WiFiSettings & settings) { hostname(settings.hostname.c_str()); });
|
EMSESP::esp8266React.getWiFiSettingsService()->read([&](WiFiSettings & settings) { hostname(settings.hostname.c_str()); });
|
||||||
@@ -207,8 +212,11 @@ void System::upload_status(bool in_progress) {
|
|||||||
// checks system health and handles LED flashing wizardry
|
// checks system health and handles LED flashing wizardry
|
||||||
void System::loop() {
|
void System::loop() {
|
||||||
#ifndef EMSESP_STANDALONE
|
#ifndef EMSESP_STANDALONE
|
||||||
syslog_.loop();
|
if (syslog_enabled_) {
|
||||||
|
syslog_.loop();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
led_monitor(); // check status and report back using the LED
|
led_monitor(); // check status and report back using the LED
|
||||||
system_check(); // check system health
|
system_check(); // check system health
|
||||||
if (analog_enabled_) {
|
if (analog_enabled_) {
|
||||||
@@ -481,13 +489,18 @@ void System::show_system(uuid::console::Shell & shell) {
|
|||||||
|
|
||||||
EMSESP::webSettingsService.read([&](WebSettings & settings) {
|
EMSESP::webSettingsService.read([&](WebSettings & settings) {
|
||||||
shell.println();
|
shell.println();
|
||||||
shell.printfln(F("Syslog:"));
|
|
||||||
shell.print(F_(1space));
|
if (!settings.syslog_enabled) {
|
||||||
shell.printfln(F_(host_fmt), !settings.syslog_host.isEmpty() ? settings.syslog_host.c_str() : uuid::read_flash_string(F_(unset)).c_str());
|
shell.printfln(F("Syslog: disabled"));
|
||||||
shell.print(F_(1space));
|
} else {
|
||||||
shell.printfln(F_(log_level_fmt), uuid::log::format_level_lowercase(static_cast<uuid::log::Level>(settings.syslog_level)));
|
shell.printfln(F("Syslog:"));
|
||||||
shell.print(F_(1space));
|
shell.print(F_(1space));
|
||||||
shell.printfln(F_(mark_interval_fmt), settings.syslog_mark_interval);
|
shell.printfln(F_(host_fmt), !settings.syslog_host.isEmpty() ? settings.syslog_host.c_str() : uuid::read_flash_string(F_(unset)).c_str());
|
||||||
|
shell.print(F_(1space));
|
||||||
|
shell.printfln(F_(log_level_fmt), uuid::log::format_level_lowercase(static_cast<uuid::log::Level>(settings.syslog_level)));
|
||||||
|
shell.print(F_(1space));
|
||||||
|
shell.printfln(F_(mark_interval_fmt), settings.syslog_mark_interval);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -803,6 +816,7 @@ bool System::check_upgrade() {
|
|||||||
settings.shower_timer = custom_settings["shower_timer"] | EMSESP_DEFAULT_SHOWER_TIMER;
|
settings.shower_timer = custom_settings["shower_timer"] | EMSESP_DEFAULT_SHOWER_TIMER;
|
||||||
settings.master_thermostat = custom_settings["master_thermostat"] | EMSESP_DEFAULT_MASTER_THERMOSTAT;
|
settings.master_thermostat = custom_settings["master_thermostat"] | EMSESP_DEFAULT_MASTER_THERMOSTAT;
|
||||||
settings.ems_bus_id = custom_settings["bus_id"] | EMSESP_DEFAULT_EMS_BUS_ID;
|
settings.ems_bus_id = custom_settings["bus_id"] | EMSESP_DEFAULT_EMS_BUS_ID;
|
||||||
|
settings.syslog_enabled = false;
|
||||||
settings.syslog_host = EMSESP_DEFAULT_SYSLOG_HOST;
|
settings.syslog_host = EMSESP_DEFAULT_SYSLOG_HOST;
|
||||||
settings.syslog_level = EMSESP_DEFAULT_SYSLOG_LEVEL;
|
settings.syslog_level = EMSESP_DEFAULT_SYSLOG_LEVEL;
|
||||||
settings.syslog_mark_interval = EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL;
|
settings.syslog_mark_interval = EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL;
|
||||||
@@ -918,6 +932,7 @@ bool System::command_info(const char * value, const int8_t id, JsonObject & json
|
|||||||
JsonObject node = json.createNestedObject("Settings");
|
JsonObject node = json.createNestedObject("Settings");
|
||||||
node["tx_mode"] = settings.tx_mode;
|
node["tx_mode"] = settings.tx_mode;
|
||||||
node["ems_bus_id"] = settings.ems_bus_id;
|
node["ems_bus_id"] = settings.ems_bus_id;
|
||||||
|
node["syslog_enabled"] = settings.syslog_enabled;
|
||||||
node["syslog_level"] = settings.syslog_level;
|
node["syslog_level"] = settings.syslog_level;
|
||||||
node["syslog_mark_interval"] = settings.syslog_mark_interval;
|
node["syslog_mark_interval"] = settings.syslog_mark_interval;
|
||||||
node["syslog_host"] = settings.syslog_host;
|
node["syslog_host"] = settings.syslog_host;
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ class System {
|
|||||||
|
|
||||||
// settings
|
// settings
|
||||||
static bool hide_led_;
|
static bool hide_led_;
|
||||||
|
static bool syslog_enabled_;
|
||||||
uint8_t syslog_level_;
|
uint8_t syslog_level_;
|
||||||
uint32_t syslog_mark_interval_;
|
uint32_t syslog_mark_interval_;
|
||||||
String syslog_host_;
|
String syslog_host_;
|
||||||
|
|||||||
Reference in New Issue
Block a user