mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-07-28 17:42:45 +00:00
fix standalone, formatting
This commit is contained in:
@@ -21,4 +21,4 @@ For more details go to [emsesp.org](https://emsesp.org/).
|
|||||||
|
|
||||||
- call compute value direct, enlarge TCP stack [#3127](https://github.com/emsesp/EMS-ESP32/discussions/3127)
|
- call compute value direct, enlarge TCP stack [#3127](https://github.com/emsesp/EMS-ESP32/discussions/3127)
|
||||||
- Dewtemperature for Easycontrol calculated by ems-esp [3135](https://github.com/emsesp/EMS-ESP32/issues/3135)
|
- Dewtemperature for Easycontrol calculated by ems-esp [3135](https://github.com/emsesp/EMS-ESP32/issues/3135)
|
||||||
- add option for sync thermostat to ntp, allow different time zones [3148](https://github.com/emsesp/EMS-ESP32/discussions/3148), defaults to no sync.
|
- add option for sync thermostat to ntp, allow different time zones [3148](https://github.com/emsesp/EMS-ESP32/discussions/3148), **defaults to no sync**.
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ build_flags =
|
|||||||
-D FACTORY_NTP_TIME_ZONE_LABEL=\"Europe/Amsterdam\"
|
-D FACTORY_NTP_TIME_ZONE_LABEL=\"Europe/Amsterdam\"
|
||||||
-D FACTORY_NTP_TIME_ZONE_FORMAT=\"CET-1CEST,M3.5.0,M10.5.0/3\"
|
-D FACTORY_NTP_TIME_ZONE_FORMAT=\"CET-1CEST,M3.5.0,M10.5.0/3\"
|
||||||
-D FACTORY_NTP_SERVER=\"time.google.com\"
|
-D FACTORY_NTP_SERVER=\"time.google.com\"
|
||||||
|
-D FACTORY_NTP_THERMOSTAT_SYNC=0
|
||||||
|
|
||||||
; MQTT settings
|
; MQTT settings
|
||||||
-D FACTORY_MQTT_ENABLED=false
|
-D FACTORY_MQTT_ENABLED=false
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ const NTPSettings = () => {
|
|||||||
() => (data ? selectedTimeZone(data.tz_label, data.tz_format) : undefined),
|
() => (data ? selectedTimeZone(data.tz_label, data.tz_format) : undefined),
|
||||||
[data?.tz_label, data?.tz_format]
|
[data?.tz_label, data?.tz_format]
|
||||||
);
|
);
|
||||||
const selectedTzValueT = useMemo(
|
const selectedTzValueT = useMemo(
|
||||||
() => (data ? selectedTimeZone(data.tz_label_t, data.tz_format_t) : undefined),
|
() => (data ? selectedTimeZone(data.tz_label_t, data.tz_format_t) : undefined),
|
||||||
[data?.tz_label_t, data?.tz_format_t]
|
[data?.tz_label_t, data?.tz_format_t]
|
||||||
);
|
);
|
||||||
@@ -154,8 +154,8 @@ const selectedTzValueT = useMemo(
|
|||||||
},
|
},
|
||||||
[updateFormValue]
|
[updateFormValue]
|
||||||
);
|
);
|
||||||
|
|
||||||
const changeTimeZoneT = useCallback(
|
const changeTimeZoneT = useCallback(
|
||||||
(event: React.ChangeEvent<HTMLInputElement>) => {
|
(event: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
void updateState(readNTPSettings(), (settings: NTPSettingsType) => ({
|
void updateState(readNTPSettings(), (settings: NTPSettingsType) => ({
|
||||||
...settings,
|
...settings,
|
||||||
@@ -215,11 +215,11 @@ const changeTimeZoneT = useCallback(
|
|||||||
<Grid>
|
<Grid>
|
||||||
<ValidatedTextField
|
<ValidatedTextField
|
||||||
fieldErrors={fieldErrors || {}}
|
fieldErrors={fieldErrors || {}}
|
||||||
name="thermostat_option"
|
name="thermostat_sync"
|
||||||
label="Sync EMS-Thermostat"
|
label="Sync EMS-Thermostat"
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
sx={{ width: '30ch' }}
|
sx={{ width: '30ch' }}
|
||||||
value={data.thermostat_option}
|
value={data.thermostat_sync}
|
||||||
onChange={updateFormValue}
|
onChange={updateFormValue}
|
||||||
margin="normal"
|
margin="normal"
|
||||||
select
|
select
|
||||||
@@ -230,7 +230,7 @@ const changeTimeZoneT = useCallback(
|
|||||||
</ValidatedTextField >
|
</ValidatedTextField >
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid>
|
<Grid>
|
||||||
{data.thermostat_option === 2 && (
|
{data.thermostat_sync === 2 && (
|
||||||
<ValidatedTextField
|
<ValidatedTextField
|
||||||
fieldErrors={fieldErrors || {}}
|
fieldErrors={fieldErrors || {}}
|
||||||
name="tz_label_t"
|
name="tz_label_t"
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export interface NTPSettingsType {
|
|||||||
server: string;
|
server: string;
|
||||||
tz_label: string;
|
tz_label: string;
|
||||||
tz_format: string;
|
tz_format: string;
|
||||||
thermostat_option: number;
|
thermostat_sync: number;
|
||||||
tz_label_t: string;
|
tz_label_t: string;
|
||||||
tz_format_t: string;
|
tz_format_t: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,8 +79,12 @@ class DummySettings {
|
|||||||
uint8_t provisionMode = 0;
|
uint8_t provisionMode = 0;
|
||||||
|
|
||||||
// NTP
|
// NTP
|
||||||
String server = "pool.ntp.org";
|
String server = "pool.ntp.org";
|
||||||
String tzLabel = "Europe/London";
|
String tzLabel = "Europe/London";
|
||||||
|
String tzFormat = "GMT0BST,M3.5.0/1,M10.5.0";
|
||||||
|
String tzLabelT = "Europe/Berlin";
|
||||||
|
String tzFormatT = "CET-1CEST,M3.5.0,M10.5.0/3";
|
||||||
|
uint8_t thermostat_sync = 0;
|
||||||
|
|
||||||
static void read(DummySettings & settings, JsonObject root) {};
|
static void read(DummySettings & settings, JsonObject root) {};
|
||||||
static void read(DummySettings & settings) {};
|
static void read(DummySettings & settings) {};
|
||||||
|
|||||||
@@ -86,22 +86,22 @@ void NTPSettingsService::ntp_received(struct timeval * tv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void NTPSettings::read(NTPSettings & settings, JsonObject root) {
|
void NTPSettings::read(NTPSettings & settings, JsonObject root) {
|
||||||
root["enabled"] = settings.enabled;
|
root["enabled"] = settings.enabled;
|
||||||
root["server"] = settings.server;
|
root["server"] = settings.server;
|
||||||
root["tz_label"] = settings.tzLabel;
|
root["tz_label"] = settings.tzLabel;
|
||||||
root["tz_format"] = settings.tzFormat;
|
root["tz_format"] = settings.tzFormat;
|
||||||
root["thermostat_option"] = settings.thermostat_option;
|
root["thermostat_sync"] = settings.thermostat_sync;
|
||||||
root["tz_label_t"] = settings.tzLabelT;
|
root["tz_label_t"] = settings.tzLabelT;
|
||||||
root["tz_format_t"] = settings.tzFormatT;
|
root["tz_format_t"] = settings.tzFormatT;
|
||||||
}
|
}
|
||||||
|
|
||||||
StateUpdateResult NTPSettings::update(JsonObject root, NTPSettings & settings) {
|
StateUpdateResult NTPSettings::update(JsonObject root, NTPSettings & settings) {
|
||||||
settings.enabled = root["enabled"] | FACTORY_NTP_ENABLED;
|
settings.enabled = root["enabled"] | FACTORY_NTP_ENABLED;
|
||||||
settings.server = root["server"] | FACTORY_NTP_SERVER;
|
settings.server = root["server"] | FACTORY_NTP_SERVER;
|
||||||
settings.tzLabel = root["tz_label"] | FACTORY_NTP_TIME_ZONE_LABEL;
|
settings.tzLabel = root["tz_label"] | FACTORY_NTP_TIME_ZONE_LABEL;
|
||||||
settings.tzFormat = root["tz_format"] | FACTORY_NTP_TIME_ZONE_FORMAT;
|
settings.tzFormat = root["tz_format"] | FACTORY_NTP_TIME_ZONE_FORMAT;
|
||||||
settings.thermostat_option = root["thermostat_option"] | 0;
|
settings.thermostat_sync = root["thermostat_sync"] | FACTORY_NTP_THERMOSTAT_SYNC;
|
||||||
settings.tzLabelT = root["tz_label_t"] | settings.tzLabel;
|
settings.tzLabelT = root["tz_label_t"] | settings.tzLabel;
|
||||||
settings.tzFormatT = root["tz_format_t"] | settings.tzFormat;
|
settings.tzFormatT = root["tz_format_t"] | settings.tzFormat;
|
||||||
return StateUpdateResult::CHANGED;
|
return StateUpdateResult::CHANGED;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,13 +30,13 @@
|
|||||||
|
|
||||||
class NTPSettings {
|
class NTPSettings {
|
||||||
public:
|
public:
|
||||||
bool enabled = FACTORY_NTP_ENABLED;
|
bool enabled = FACTORY_NTP_ENABLED;
|
||||||
String tzLabel = FACTORY_NTP_TIME_ZONE_LABEL;
|
String tzLabel = FACTORY_NTP_TIME_ZONE_LABEL;
|
||||||
String tzFormat = FACTORY_NTP_TIME_ZONE_FORMAT;
|
String tzFormat = FACTORY_NTP_TIME_ZONE_FORMAT;
|
||||||
String server = FACTORY_NTP_SERVER;
|
String server = FACTORY_NTP_SERVER;
|
||||||
uint8_t thermostat_option = 0;
|
uint8_t thermostat_sync = FACTORY_NTP_THERMOSTAT_SYNC;
|
||||||
String tzLabelT = FACTORY_NTP_TIME_ZONE_LABEL;
|
String tzLabelT = FACTORY_NTP_TIME_ZONE_LABEL;
|
||||||
String tzFormatT = FACTORY_NTP_TIME_ZONE_FORMAT;
|
String tzFormatT = FACTORY_NTP_TIME_ZONE_FORMAT;
|
||||||
|
|
||||||
static void read(NTPSettings & settings, JsonObject root);
|
static void read(NTPSettings & settings, JsonObject root);
|
||||||
static StateUpdateResult update(JsonObject root, NTPSettings & settings);
|
static StateUpdateResult update(JsonObject root, NTPSettings & settings);
|
||||||
|
|||||||
@@ -1741,7 +1741,7 @@ void Thermostat::process_RCTime(std::shared_ptr<const Telegram> telegram) {
|
|||||||
tm * tm_;
|
tm * tm_;
|
||||||
bool sync = true;
|
bool sync = true;
|
||||||
EMSESP::esp32React.getNTPSettingsService()->read([&](const NTPSettings & settings) {
|
EMSESP::esp32React.getNTPSettingsService()->read([&](const NTPSettings & settings) {
|
||||||
switch (settings.thermostat_option) {
|
switch (settings.thermostat_sync) {
|
||||||
default:
|
default:
|
||||||
sync = false;
|
sync = false;
|
||||||
break;
|
break;
|
||||||
@@ -1773,9 +1773,9 @@ void Thermostat::process_RCTime(std::shared_ptr<const Telegram> telegram) {
|
|||||||
strftime(newdatetime, sizeof(dateTime_), "%d.%m.%Y %H:%M", tm_);
|
strftime(newdatetime, sizeof(dateTime_), "%d.%m.%Y %H:%M", tm_);
|
||||||
has_update(dateTime_, newdatetime, sizeof(dateTime_));
|
has_update(dateTime_, newdatetime, sizeof(dateTime_));
|
||||||
|
|
||||||
bool ivtclock = (telegram->message_data[0] & 0x80) == 0x80; // dont sync ivt-clock, #439
|
bool ivtclock = (telegram->message_data[0] & 0x80) == 0x80; // dont sync ivt-clock, #439
|
||||||
// bool junkersclock = model() == EMSdevice::EMS_DEVICE_FLAG_JUNKERS;
|
// bool junkersclock = model() == EMSdevice::EMS_DEVICE_FLAG_JUNKERS;
|
||||||
time_t ttime = mktime(tm_); // thermostat time
|
time_t ttime = mktime(tm_); // thermostat time
|
||||||
// correct thermostat clock if we have valid ntp time, and could write the command
|
// correct thermostat clock if we have valid ntp time, and could write the command
|
||||||
// if (sync && !ivtclock && !junkersclock && tset_ && EMSESP::system_.ntp_connected() && !EMSESP::system_.readonly_mode() && has_command(&dateTime_)) {
|
// if (sync && !ivtclock && !junkersclock && tset_ && EMSESP::system_.ntp_connected() && !EMSESP::system_.readonly_mode() && has_command(&dateTime_)) {
|
||||||
if (sync && !ivtclock && tset_ && EMSESP::system_.ntp_connected() && !EMSESP::system_.readonly_mode() && has_command(&dateTime_)) {
|
if (sync && !ivtclock && tset_ && EMSESP::system_.ntp_connected() && !EMSESP::system_.readonly_mode() && has_command(&dateTime_)) {
|
||||||
@@ -3085,7 +3085,7 @@ bool Thermostat::set_datetime(const char * value, const int8_t id) {
|
|||||||
time_t now = time(nullptr);
|
time_t now = time(nullptr);
|
||||||
tm * tm_;
|
tm * tm_;
|
||||||
EMSESP::esp32React.getNTPSettingsService()->read([&](const NTPSettings & settings) {
|
EMSESP::esp32React.getNTPSettingsService()->read([&](const NTPSettings & settings) {
|
||||||
switch (settings.thermostat_option) {
|
switch (settings.thermostat_sync) {
|
||||||
default:
|
default:
|
||||||
tm_ = localtime(&now);
|
tm_ = localtime(&now);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user