mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-27 12:46:34 +00:00
Merge pull request #6958 from stefanbode/patch-1
#enhancement: Adding option to compensate on a global level temperature
This commit is contained in:
commit
95673103dd
@ -290,6 +290,7 @@
|
|||||||
#define D_JSON_GPIO "GPIO"
|
#define D_JSON_GPIO "GPIO"
|
||||||
#define D_JSON_FLAG "FLAG"
|
#define D_JSON_FLAG "FLAG"
|
||||||
#define D_JSON_BASE "BASE"
|
#define D_JSON_BASE "BASE"
|
||||||
|
#define D_CMND_TEMPOFFSET "TempOffset"
|
||||||
|
|
||||||
// Commands xdrv_01_mqtt.ino
|
// Commands xdrv_01_mqtt.ino
|
||||||
#define D_CMND_MQTTLOG "MqttLog"
|
#define D_CMND_MQTTLOG "MqttLog"
|
||||||
|
@ -434,8 +434,8 @@ struct SYSCFG {
|
|||||||
uint32_t deepsleep; // E94
|
uint32_t deepsleep; // E94
|
||||||
uint16_t energy_power_delta; // E98
|
uint16_t energy_power_delta; // E98
|
||||||
uint8_t shutter_motordelay[MAX_SHUTTERS]; // E9A
|
uint8_t shutter_motordelay[MAX_SHUTTERS]; // E9A
|
||||||
|
int8_t temp_comp;
|
||||||
uint8_t free_e9e[2]; // E9E
|
uint8_t free_e9e[1]; // E9E
|
||||||
|
|
||||||
uint8_t web_color2[2][3]; // EA0 - Needs to be on integer / 3 distance from web_color
|
uint8_t web_color2[2][3]; // EA0 - Needs to be on integer / 3 distance from web_color
|
||||||
|
|
||||||
|
@ -540,6 +540,7 @@ float ConvertTemp(float c)
|
|||||||
if (!isnan(c) && Settings.flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
|
if (!isnan(c) && Settings.flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
|
||||||
result = c * 1.8 + 32; // Fahrenheit
|
result = c * 1.8 + 32; // Fahrenheit
|
||||||
}
|
}
|
||||||
|
result = result + (0.1 * Settings.temp_comp);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -550,6 +551,7 @@ float ConvertTempToCelsius(float c)
|
|||||||
if (!isnan(c) && Settings.flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
|
if (!isnan(c) && Settings.flag.temperature_conversion) { // SetOption8 - Switch between Celsius or Fahrenheit
|
||||||
result = (c - 32) / 1.8; // Celsius
|
result = (c - 32) / 1.8; // Celsius
|
||||||
}
|
}
|
||||||
|
result = result + (0.1 * Settings.temp_comp);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ const char kTasmotaCommands[] PROGMEM = "|" // No prefix
|
|||||||
D_CMND_BUTTONDEBOUNCE "|" D_CMND_SWITCHDEBOUNCE "|" D_CMND_SYSLOG "|" D_CMND_LOGHOST "|" D_CMND_LOGPORT "|" D_CMND_SERIALSEND "|" D_CMND_BAUDRATE "|"
|
D_CMND_BUTTONDEBOUNCE "|" D_CMND_SWITCHDEBOUNCE "|" D_CMND_SYSLOG "|" D_CMND_LOGHOST "|" D_CMND_LOGPORT "|" D_CMND_SERIALSEND "|" D_CMND_BAUDRATE "|"
|
||||||
D_CMND_SERIALDELIMITER "|" D_CMND_IPADDRESS "|" D_CMND_NTPSERVER "|" D_CMND_AP "|" D_CMND_SSID "|" D_CMND_PASSWORD "|" D_CMND_HOSTNAME "|" D_CMND_WIFICONFIG "|"
|
D_CMND_SERIALDELIMITER "|" D_CMND_IPADDRESS "|" D_CMND_NTPSERVER "|" D_CMND_AP "|" D_CMND_SSID "|" D_CMND_PASSWORD "|" D_CMND_HOSTNAME "|" D_CMND_WIFICONFIG "|"
|
||||||
D_CMND_FRIENDLYNAME "|" D_CMND_SWITCHMODE "|" D_CMND_INTERLOCK "|" D_CMND_TELEPERIOD "|" D_CMND_RESET "|" D_CMND_TIME "|" D_CMND_TIMEZONE "|" D_CMND_TIMESTD "|"
|
D_CMND_FRIENDLYNAME "|" D_CMND_SWITCHMODE "|" D_CMND_INTERLOCK "|" D_CMND_TELEPERIOD "|" D_CMND_RESET "|" D_CMND_TIME "|" D_CMND_TIMEZONE "|" D_CMND_TIMESTD "|"
|
||||||
D_CMND_TIMEDST "|" D_CMND_ALTITUDE "|" D_CMND_LEDPOWER "|" D_CMND_LEDSTATE "|" D_CMND_LEDMASK "|" D_CMND_WIFIPOWER "|"
|
D_CMND_TIMEDST "|" D_CMND_ALTITUDE "|" D_CMND_LEDPOWER "|" D_CMND_LEDSTATE "|" D_CMND_LEDMASK "|" D_CMND_WIFIPOWER "|" D_CMND_TEMPOFFSET "|"
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
D_CMND_I2CSCAN "|" D_CMND_I2CDRIVER "|"
|
D_CMND_I2CSCAN "|" D_CMND_I2CDRIVER "|"
|
||||||
#endif
|
#endif
|
||||||
@ -41,7 +41,7 @@ void (* const TasmotaCommand[])(void) PROGMEM = {
|
|||||||
&CmndButtonDebounce, &CmndSwitchDebounce, &CmndSyslog, &CmndLoghost, &CmndLogport, &CmndSerialSend, &CmndBaudrate,
|
&CmndButtonDebounce, &CmndSwitchDebounce, &CmndSyslog, &CmndLoghost, &CmndLogport, &CmndSerialSend, &CmndBaudrate,
|
||||||
&CmndSerialDelimiter, &CmndIpAddress, &CmndNtpServer, &CmndAp, &CmndSsid, &CmndPassword, &CmndHostname, &CmndWifiConfig,
|
&CmndSerialDelimiter, &CmndIpAddress, &CmndNtpServer, &CmndAp, &CmndSsid, &CmndPassword, &CmndHostname, &CmndWifiConfig,
|
||||||
&CmndFriendlyname, &CmndSwitchMode, &CmndInterlock, &CmndTeleperiod, &CmndReset, &CmndTime, &CmndTimezone, &CmndTimeStd,
|
&CmndFriendlyname, &CmndSwitchMode, &CmndInterlock, &CmndTeleperiod, &CmndReset, &CmndTime, &CmndTimezone, &CmndTimeStd,
|
||||||
&CmndTimeDst, &CmndAltitude, &CmndLedPower, &CmndLedState, &CmndLedMask, &CmndWifiPower,
|
&CmndTimeDst, &CmndAltitude, &CmndLedPower, &CmndLedState, &CmndLedMask, &CmndWifiPower, &CmndTempOffset,
|
||||||
#ifdef USE_I2C
|
#ifdef USE_I2C
|
||||||
&CmndI2cScan, CmndI2cDriver,
|
&CmndI2cScan, CmndI2cDriver,
|
||||||
#endif
|
#endif
|
||||||
@ -496,6 +496,15 @@ void CmndState(void)
|
|||||||
#endif // USE_HOME_ASSISTANT
|
#endif // USE_HOME_ASSISTANT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CmndTempOffset(void)
|
||||||
|
{
|
||||||
|
if ((XdrvMailbox.payload > -127) && (XdrvMailbox.payload < 127) && (XdrvMailbox.data_len > 0)) {
|
||||||
|
Settings.temp_comp = XdrvMailbox.payload;
|
||||||
|
}
|
||||||
|
ResponseCmndNumber(Settings.temp_comp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void CmndSleep(void)
|
void CmndSleep(void)
|
||||||
{
|
{
|
||||||
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 251)) {
|
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 251)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user