mirror of
https://github.com/lumapu/ahoy.git
synced 2025-05-23 22:06:11 +02:00
0.8.41
* fix display timeout (OLED) to 60s * change offs to signed value
This commit is contained in:
parent
3dd4997094
commit
f2e1e536f5
8 changed files with 18 additions and 14 deletions
|
@ -1,5 +1,9 @@
|
||||||
# Development Changes
|
# Development Changes
|
||||||
|
|
||||||
|
## 0.8.41 - 2024-01-02
|
||||||
|
* fix display timeout (OLED) to 60s
|
||||||
|
* change offs to signed value
|
||||||
|
|
||||||
## 0.8.40 - 2024-01-02
|
## 0.8.40 - 2024-01-02
|
||||||
* fix display of sunrise and sunset in `/system` #1308
|
* fix display of sunrise and sunset in `/system` #1308
|
||||||
* fix MqTT set power limit #1313
|
* fix MqTT set power limit #1313
|
||||||
|
|
|
@ -235,7 +235,7 @@ void app::tickCalcSunrise(void) {
|
||||||
onceAt(std::bind(&app::tickCalcSunrise, this), nxtTrig, "Sunri");
|
onceAt(std::bind(&app::tickCalcSunrise, this), nxtTrig, "Sunri");
|
||||||
if (mMqttEnabled) {
|
if (mMqttEnabled) {
|
||||||
tickSun();
|
tickSun();
|
||||||
nxtTrig = mSunrise - mConfig->sun.offsetSecMorning + 1; // one second safety to trigger correctly
|
nxtTrig = mSunrise + mConfig->sun.offsetSecMorning + 1; // one second safety to trigger correctly
|
||||||
onceAt(std::bind(&app::tickSun, this), nxtTrig, "mqSr"); // trigger on sunrise to update 'dis_night_comm'
|
onceAt(std::bind(&app::tickSun, this), nxtTrig, "mqSr"); // trigger on sunrise to update 'dis_night_comm'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -254,8 +254,8 @@ void app::tickIVCommunication(void) {
|
||||||
|
|
||||||
iv->commEnabled = !iv->config->disNightCom; // if sun.disNightCom is false, communication is always on
|
iv->commEnabled = !iv->config->disNightCom; // if sun.disNightCom is false, communication is always on
|
||||||
if (!iv->commEnabled) { // inverter communication only during the day
|
if (!iv->commEnabled) { // inverter communication only during the day
|
||||||
if (mTimestamp < (mSunrise - mConfig->sun.offsetSecMorning)) { // current time is before communication start, set next trigger to communication start
|
if (mTimestamp < (mSunrise + mConfig->sun.offsetSecMorning)) { // current time is before communication start, set next trigger to communication start
|
||||||
nxtTrig = mSunrise - mConfig->sun.offsetSecMorning;
|
nxtTrig = mSunrise + mConfig->sun.offsetSecMorning;
|
||||||
} else {
|
} else {
|
||||||
if (mTimestamp >= (mSunset + mConfig->sun.offsetSecEvening)) { // current time is past communication stop, nothing to do. Next update will be done at midnight by tickCalcSunrise
|
if (mTimestamp >= (mSunset + mConfig->sun.offsetSecEvening)) { // current time is past communication stop, nothing to do. Next update will be done at midnight by tickCalcSunrise
|
||||||
nxtTrig = 0;
|
nxtTrig = 0;
|
||||||
|
|
|
@ -106,8 +106,8 @@ typedef struct {
|
||||||
typedef struct {
|
typedef struct {
|
||||||
float lat;
|
float lat;
|
||||||
float lon;
|
float lon;
|
||||||
uint16_t offsetSecMorning;
|
int16_t offsetSecMorning;
|
||||||
uint16_t offsetSecEvening;
|
int16_t offsetSecEvening;
|
||||||
} cfgSun_t;
|
} cfgSun_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -635,8 +635,8 @@ class settings {
|
||||||
} else {
|
} else {
|
||||||
getVal<float>(obj, F("lat"), &mCfg.sun.lat);
|
getVal<float>(obj, F("lat"), &mCfg.sun.lat);
|
||||||
getVal<float>(obj, F("lon"), &mCfg.sun.lon);
|
getVal<float>(obj, F("lon"), &mCfg.sun.lon);
|
||||||
getVal<uint16_t>(obj, F("offs"), &mCfg.sun.offsetSecMorning);
|
getVal<int16_t>(obj, F("offs"), &mCfg.sun.offsetSecMorning);
|
||||||
getVal<uint16_t>(obj, F("offsEve"), &mCfg.sun.offsetSecEvening);
|
getVal<int16_t>(obj, F("offsEve"), &mCfg.sun.offsetSecEvening);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 8
|
#define VERSION_MINOR 8
|
||||||
#define VERSION_PATCH 40
|
#define VERSION_PATCH 41
|
||||||
|
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -80,7 +80,7 @@ class DisplayMono {
|
||||||
|
|
||||||
uint8_t mExtra;
|
uint8_t mExtra;
|
||||||
int8_t mPixelshift=0;
|
int8_t mPixelshift=0;
|
||||||
TimeMonitor mDisplayTime = TimeMonitor(1000 * 15, true);
|
TimeMonitor mDisplayTime = TimeMonitor(1000 * DISP_DEFAULT_TIMEOUT, true);
|
||||||
bool mDisplayActive = true; // always start with display on
|
bool mDisplayActive = true; // always start with display on
|
||||||
char mFmtText[DISP_FMT_TEXT_LEN];
|
char mFmtText[DISP_FMT_TEXT_LEN];
|
||||||
|
|
||||||
|
|
|
@ -134,13 +134,13 @@ class PubMqtt {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool tickerSun(uint32_t sunrise, uint32_t sunset, uint16_t offsM, uint16_t offsE) {
|
bool tickerSun(uint32_t sunrise, uint32_t sunset, int16_t offsM, int16_t offsE) {
|
||||||
if (!mClient.connected())
|
if (!mClient.connected())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
publish(subtopics[MQTT_SUNRISE], String(sunrise).c_str(), true);
|
publish(subtopics[MQTT_SUNRISE], String(sunrise).c_str(), true);
|
||||||
publish(subtopics[MQTT_SUNSET], String(sunset).c_str(), true);
|
publish(subtopics[MQTT_SUNSET], String(sunset).c_str(), true);
|
||||||
publish(subtopics[MQTT_COMM_START], String(sunrise - offsM).c_str(), true);
|
publish(subtopics[MQTT_COMM_START], String(sunrise + offsM).c_str(), true);
|
||||||
publish(subtopics[MQTT_COMM_STOP], String(sunset + offsE).c_str(), true);
|
publish(subtopics[MQTT_COMM_STOP], String(sunset + offsE).c_str(), true);
|
||||||
|
|
||||||
Inverter<> *iv;
|
Inverter<> *iv;
|
||||||
|
@ -155,7 +155,7 @@ class PubMqtt {
|
||||||
|
|
||||||
|
|
||||||
snprintf(mSubTopic, 32 + MAX_NAME_LENGTH, "comm_disabled");
|
snprintf(mSubTopic, 32 + MAX_NAME_LENGTH, "comm_disabled");
|
||||||
publish(mSubTopic, (((*mUtcTimestamp > (sunset + offsE)) || (*mUtcTimestamp < (sunrise - offsM))) ? dict[STR_TRUE] : dict[STR_FALSE]), true);
|
publish(mSubTopic, (((*mUtcTimestamp > (sunset + offsE)) || (*mUtcTimestamp < (sunrise + offsM))) ? dict[STR_TRUE] : dict[STR_FALSE]), true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -895,7 +895,7 @@
|
||||||
document.getElementsByName("sunLon")[0].value = obj["lon"];
|
document.getElementsByName("sunLon")[0].value = obj["lon"];
|
||||||
for(p of [["sunOffsSr", "offsSr"], ["sunOffsSs", "offsSs"]]) {
|
for(p of [["sunOffsSr", "offsSr"], ["sunOffsSs", "offsSs"]]) {
|
||||||
const sel = document.getElementsByName(p[0])[0];
|
const sel = document.getElementsByName(p[0])[0];
|
||||||
for(var i = 0; i <= 60; i++) {
|
for(var i = -60; i <= 60; i++) {
|
||||||
sel.appendChild(opt(i, i + " minutes", (i == (obj[p[1]] / 60))));
|
sel.appendChild(opt(i, i + " minutes", (i == (obj[p[1]] / 60))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
ml("tbody", {}, [
|
ml("tbody", {}, [
|
||||||
tr("Sunrise", new Date(obj.ts_sunrise * 1000).toLocaleString('de-DE')),
|
tr("Sunrise", new Date(obj.ts_sunrise * 1000).toLocaleString('de-DE')),
|
||||||
tr("Sunset", new Date(obj.ts_sunset * 1000).toLocaleString('de-DE')),
|
tr("Sunset", new Date(obj.ts_sunset * 1000).toLocaleString('de-DE')),
|
||||||
tr("Communication start", new Date((obj.ts_sunrise - obj.ts_offsSr) * 1000).toLocaleString('de-DE')),
|
tr("Communication start", new Date((obj.ts_sunrise + obj.ts_offsSr) * 1000).toLocaleString('de-DE')),
|
||||||
tr("Communication stop", new Date((obj.ts_sunset + obj.ts_offsSs) * 1000).toLocaleString('de-DE')),
|
tr("Communication stop", new Date((obj.ts_sunset + obj.ts_offsSs) * 1000).toLocaleString('de-DE')),
|
||||||
tr("Night behaviour", badge(obj.disNightComm, ((obj.disNightComm) ? "not" : "") + " communicating", "warning"))
|
tr("Night behaviour", badge(obj.disNightComm, ((obj.disNightComm) ? "not" : "") + " communicating", "warning"))
|
||||||
])
|
])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue