Make the port for syslog server selectable #744

This commit is contained in:
proddy
2021-03-12 17:54:44 +01:00
parent 93327b1ffe
commit 0c4bd6a236
9 changed files with 30 additions and 11 deletions

View File

@@ -248,6 +248,18 @@ function EMSESPSettingsControllerForm(props: EMSESPSettingsControllerFormProps)
onChange={handleValueChange('syslog_host')} onChange={handleValueChange('syslog_host')}
margin="normal" margin="normal"
/> />
<TextValidator
validators={['required', 'isNumber', 'minNumber:0', 'maxNumber:65535']}
errorMessages={['Port is required', "Must be a number", "Must be greater than 0 ", "Max value is 65535"]}
name="syslog_port"
label="Syslog Port (default 514)"
fullWidth
variant="outlined"
value={data.syslog_port}
type="number"
onChange={handleValueChange('syslog_port')}
margin="normal"
/>
<SelectValidator name="syslog_level" <SelectValidator name="syslog_level"
label="Syslog Log Level" label="Syslog Log Level"
value={data.syslog_level} value={data.syslog_level}

View File

@@ -6,6 +6,7 @@ export interface EMSESPSettings {
syslog_level: number; syslog_level: number;
syslog_mark_interval: number; syslog_mark_interval: number;
syslog_host: string; syslog_host: string;
syslog_port: number;
master_thermostat: number; master_thermostat: number;
shower_timer: boolean; shower_timer: boolean;
shower_alert: boolean; shower_alert: boolean;

View File

@@ -20,6 +20,7 @@ class DummySettings {
int8_t syslog_level = 3; // uuid::log::Level 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";
uint16_t syslog_port = 514;
uint8_t master_thermostat = 0; uint8_t master_thermostat = 0;
bool shower_timer = true; bool shower_timer = true;
bool shower_alert = false; bool shower_alert = false;

View File

@@ -37,6 +37,7 @@ void WebSettings::read(WebSettings & settings, JsonObject & root) {
root["trace_raw"] = settings.trace_raw; root["trace_raw"] = settings.trace_raw;
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;
root["syslog_port"] = settings.syslog_port;
root["master_thermostat"] = settings.master_thermostat; root["master_thermostat"] = settings.master_thermostat;
root["shower_timer"] = settings.shower_timer; root["shower_timer"] = settings.shower_timer;
root["shower_alert"] = settings.shower_alert; root["shower_alert"] = settings.shower_alert;
@@ -73,9 +74,10 @@ StateUpdateResult WebSettings::update(JsonObject & root, WebSettings & settings)
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;
settings.syslog_port = root["syslog_port"] | EMSESP_DEFAULT_SYSLOG_PORT;
settings.trace_raw = root["trace_raw"] | EMSESP_DEFAULT_TRACELOG_RAW; settings.trace_raw = root["trace_raw"] | EMSESP_DEFAULT_TRACELOG_RAW;
EMSESP::trace_raw(settings.trace_raw); EMSESP::trace_raw(settings.trace_raw);
snprintf_P(&crc_after[0], crc_after.capacity() + 1, PSTR("%d%d%d%s"), settings.syslog_enabled, settings.syslog_level, settings.syslog_mark_interval, settings.syslog_host.c_str()); snprintf_P(&crc_after[0], crc_after.capacity() + 1, PSTR("%d%d%d%d%s"), settings.syslog_enabled, settings.syslog_level, settings.syslog_mark_interval, settings.syslog_port, settings.syslog_host.c_str());
if (crc_before != crc_after) { if (crc_before != crc_after) {
add_flags(ChangeFlags::SYSLOG); add_flags(ChangeFlags::SYSLOG);
} }

View File

@@ -32,6 +32,7 @@
#define EMSESP_DEFAULT_SYSLOG_LEVEL 3 // ERR #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_SYSLOG_PORT 514
#define EMSESP_DEFAULT_TRACELOG_RAW false #define EMSESP_DEFAULT_TRACELOG_RAW false
#define EMSESP_DEFAULT_MASTER_THERMOSTAT 0 // not set #define EMSESP_DEFAULT_MASTER_THERMOSTAT 0 // not set
#define EMSESP_DEFAULT_SHOWER_TIMER false #define EMSESP_DEFAULT_SHOWER_TIMER false
@@ -72,6 +73,7 @@ class WebSettings {
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;
uint16_t syslog_port;
bool trace_raw; bool trace_raw;
uint8_t rx_gpio; uint8_t rx_gpio;
uint8_t tx_gpio; uint8_t tx_gpio;

View File

@@ -699,11 +699,6 @@ bool EMSdevice::generate_values_json(JsonObject & root, const uint8_t tag_filter
} }
} }
// for debugging
// char dump[2000];
// serializeJson(root, dump);
// EMSESP::logger().info(F("**json root: %s"), dump);
return has_value; return has_value;
} }

View File

@@ -99,6 +99,7 @@ MAKE_PSTR_WORD(unknown)
MAKE_PSTR(EMSESP, "EMS-ESP") MAKE_PSTR(EMSESP, "EMS-ESP")
MAKE_PSTR(master_thermostat_fmt, "Master Thermostat Device ID = %s") MAKE_PSTR(master_thermostat_fmt, "Master Thermostat Device ID = %s")
MAKE_PSTR(host_fmt, "Host = %s") MAKE_PSTR(host_fmt, "Host = %s")
MAKE_PSTR(port_fmt, "Post = %d")
MAKE_PSTR(hostname_fmt, "Hostname = %s") MAKE_PSTR(hostname_fmt, "Hostname = %s")
MAKE_PSTR(mark_interval_fmt, "Mark interval = %lus") MAKE_PSTR(mark_interval_fmt, "Mark interval = %lus")
MAKE_PSTR(wifi_ssid_fmt, "WiFi SSID = %s") MAKE_PSTR(wifi_ssid_fmt, "WiFi SSID = %s")

View File

@@ -143,7 +143,7 @@ void System::syslog_init(bool refresh) {
syslog_.start(); syslog_.start();
syslog_.log_level((uuid::log::Level)syslog_level_); syslog_.log_level((uuid::log::Level)syslog_level_);
syslog_.mark_interval(syslog_mark_interval_); syslog_.mark_interval(syslog_mark_interval_);
syslog_.destination(addr); syslog_.destination(addr, syslog_port_);
syslog_.hostname(hostname_.c_str()); syslog_.hostname(hostname_.c_str());
EMSESP::logger().info(F("Syslog started")); EMSESP::logger().info(F("Syslog started"));
@@ -164,6 +164,7 @@ void System::get_settings() {
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;
syslog_port_ = settings.syslog_port;
// LED // LED
hide_led_ = settings.hide_led; hide_led_ = settings.hide_led;
@@ -195,7 +196,7 @@ void System::wifi_tweak() {
// WIFI_POWER_2dBm = 8,// 2dBm // WIFI_POWER_2dBm = 8,// 2dBm
// WIFI_POWER_MINUS_1dBm = -4// -1dBm // WIFI_POWER_MINUS_1dBm = -4// -1dBm
wifi_power_t p1 = WiFi.getTxPower(); wifi_power_t p1 = WiFi.getTxPower();
(void) WiFi.setTxPower(WIFI_POWER_19_5dBm); (void)WiFi.setTxPower(WIFI_POWER_19_5dBm);
wifi_power_t p2 = WiFi.getTxPower(); wifi_power_t p2 = WiFi.getTxPower();
bool s1 = WiFi.getSleep(); bool s1 = WiFi.getSleep();
WiFi.setSleep(false); // turn off sleep - WIFI_PS_NONE WiFi.setSleep(false); // turn off sleep - WIFI_PS_NONE
@@ -683,6 +684,8 @@ void System::show_system(uuid::console::Shell & shell) {
shell.print(F(" ")); shell.print(F(" "));
shell.printfln(F_(host_fmt), !syslog_host_.isEmpty() ? syslog_host_.c_str() : uuid::read_flash_string(F_(unset)).c_str()); shell.printfln(F_(host_fmt), !syslog_host_.isEmpty() ? syslog_host_.c_str() : uuid::read_flash_string(F_(unset)).c_str());
shell.print(F(" ")); shell.print(F(" "));
shell.printfln(F_(port_fmt), syslog_port_);
shell.print(F(" "));
shell.printfln(F_(log_level_fmt), uuid::log::format_level_lowercase(static_cast<uuid::log::Level>(syslog_level_))); shell.printfln(F_(log_level_fmt), uuid::log::format_level_lowercase(static_cast<uuid::log::Level>(syslog_level_)));
shell.print(F(" ")); shell.print(F(" "));
shell.printfln(F_(mark_interval_fmt), syslog_mark_interval_); shell.printfln(F_(mark_interval_fmt), syslog_mark_interval_);
@@ -919,6 +922,7 @@ bool System::command_settings(const char * value, const int8_t id, JsonObject &
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;
node["syslog_port"] = settings.syslog_port;
node["master_thermostat"] = settings.master_thermostat; node["master_thermostat"] = settings.master_thermostat;
node["shower_timer"] = settings.shower_timer; node["shower_timer"] = settings.shower_timer;
node["shower_alert"] = settings.shower_alert; node["shower_alert"] = settings.shower_alert;

View File

@@ -148,6 +148,7 @@ class System {
int8_t syslog_level_; int8_t syslog_level_;
uint32_t syslog_mark_interval_; uint32_t syslog_mark_interval_;
String syslog_host_; String syslog_host_;
uint16_t syslog_port_;
}; };
} // namespace emsesp } // namespace emsesp