diff --git a/sonoff/_releasenotes.ino b/sonoff/_releasenotes.ino index d924953435d3..5583d95fc389 100644 --- a/sonoff/_releasenotes.ino +++ b/sonoff/_releasenotes.ino @@ -1,5 +1,8 @@ /* 5.12.0i * Add 16 timers using commands Timer and Timers (#1091) + * Add commands Timer 0 to clear timer and Timer 1..16 to copy timer + * Add optional Timer configuration webpage to be enabled in user_config.h with define USE_TIMERS_WEB + * Change webpage parameter communication * * 5.12.0h * Add optional Arduino OTA support to be enabled in user_config.h (#1998) diff --git a/sonoff/language/cs-CZ.h b/sonoff/language/cs-CZ.h index e78d0a8e0750..617524e2036d 100644 --- a/sonoff/language/cs-CZ.h +++ b/sonoff/language/cs-CZ.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Aktualizace stopek" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energie Dnes" #define D_ENERGY_YESTERDAY "Energie Včera" diff --git a/sonoff/language/de-DE.h b/sonoff/language/de-DE.h index b0ea8033acad..f6f5c78a0906 100644 --- a/sonoff/language/de-DE.h +++ b/sonoff/language/de-DE.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Update timer" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energie heute" #define D_ENERGY_YESTERDAY "Energie gestern" diff --git a/sonoff/language/en-GB.h b/sonoff/language/en-GB.h index 5fb862b5e591..c7db040dbb10 100644 --- a/sonoff/language/en-GB.h +++ b/sonoff/language/en-GB.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Update timer" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energy Today" #define D_ENERGY_YESTERDAY "Energy Yesterday" diff --git a/sonoff/language/es-AR.h b/sonoff/language/es-AR.h index dbe2417311bc..5ad7d344c506 100644 --- a/sonoff/language/es-AR.h +++ b/sonoff/language/es-AR.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "Calidad del Aire" #define D_DOMOTICZ_UPDATE_TIMER "Intervalo de refresco" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energía Hoy" #define D_ENERGY_YESTERDAY "Energía Ayer" diff --git a/sonoff/language/fr-FR.h b/sonoff/language/fr-FR.h index 7b9c0137f9e8..64953f3b3e5f 100644 --- a/sonoff/language/fr-FR.h +++ b/sonoff/language/fr-FR.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Update timer" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xsns_03_energy.ino #define D_ENERGY_TODAY "Energie aujourd'hui" #define D_ENERGY_YESTERDAY "Energie hier" diff --git a/sonoff/language/hu-HU.h b/sonoff/language/hu-HU.h index 82dde4c385c9..dd6ec3292910 100644 --- a/sonoff/language/hu-HU.h +++ b/sonoff/language/hu-HU.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "Légminőség" #define D_DOMOTICZ_UPDATE_TIMER "Update időzítő" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Mai Energia" #define D_ENERGY_YESTERDAY "Tegnapi Energia" diff --git a/sonoff/language/it-IT.h b/sonoff/language/it-IT.h index 4e16869a4a57..c9134c7dd27c 100644 --- a/sonoff/language/it-IT.h +++ b/sonoff/language/it-IT.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Intervallo di aggiornamento" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energia Oggi" #define D_ENERGY_YESTERDAY "Energia Ieri" diff --git a/sonoff/language/nl-NL.h b/sonoff/language/nl-NL.h index 53bdb7f6724d..3b91d3d84cbf 100644 --- a/sonoff/language/nl-NL.h +++ b/sonoff/language/nl-NL.h @@ -110,7 +110,7 @@ #define D_OFF "Uit" #define D_OFFLINE "Offline" #define D_OK "Ok" -#define D_ON "Ann" +#define D_ON "Aan" #define D_ONLINE "Online" #define D_PASSWORD "Wachtwoord" #define D_PORT "Poort" @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Bijwerk timer" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configureer Tijdschakelaar" +#define D_TIMER_PARAMETERS "Tijdschakelaar parameters" +#define D_TIMER_ARM "Actief" +#define D_TIMER_TIME "Tijd" +#define D_TIMER_DAYS "Dagen" +#define D_TIMER_REPEAT "Herhaal" +#define D_TIMER_DEVICE "Uitgang" +#define D_TIMER_POWER "Actie" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Verbruik vandaag" #define D_ENERGY_YESTERDAY "Verbruik gisteren" diff --git a/sonoff/language/pl-PL.h b/sonoff/language/pl-PL.h index 90a69afb516d..f1023e5e4faa 100644 --- a/sonoff/language/pl-PL.h +++ b/sonoff/language/pl-PL.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Zaktualizuj czasomierz" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energia Dzisiaj" #define D_ENERGY_YESTERDAY "Energia Wczoraj" diff --git a/sonoff/language/pt-PT.h b/sonoff/language/pt-PT.h index 7d8f0512c9a3..73a8b53ea6d1 100644 --- a/sonoff/language/pt-PT.h +++ b/sonoff/language/pt-PT.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "Qualidade do Ar" #define D_DOMOTICZ_UPDATE_TIMER "Tempo de atualização" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Consumo energético de hoje" #define D_ENERGY_YESTERDAY "Consumo energético de ontem" diff --git a/sonoff/language/ru-RU.h b/sonoff/language/ru-RU.h index 640b8bef7fe6..5c5b964e659a 100644 --- a/sonoff/language/ru-RU.h +++ b/sonoff/language/ru-RU.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "AirQuality" #define D_DOMOTICZ_UPDATE_TIMER "Update timer" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "Энергия Сегодня" #define D_ENERGY_YESTERDAY "Энергия Вчера" diff --git a/sonoff/language/zh-CN.h b/sonoff/language/zh-CN.h index 0cd86bcc8d51..86c352dbf546 100644 --- a/sonoff/language/zh-CN.h +++ b/sonoff/language/zh-CN.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "空气质量" #define D_DOMOTICZ_UPDATE_TIMER "更新计时器" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "今日用电量" #define D_ENERGY_YESTERDAY "昨日用电量" diff --git a/sonoff/language/zh-TW.h b/sonoff/language/zh-TW.h index c3efc118b272..f015232e3bec 100644 --- a/sonoff/language/zh-TW.h +++ b/sonoff/language/zh-TW.h @@ -358,6 +358,16 @@ #define D_DOMOTICZ_AIRQUALITY "空氣品質" #define D_DOMOTICZ_UPDATE_TIMER "更新計時器" +// xdrv_09_timers.ino +#define D_CONFIGURE_TIMER "Configure Timer" +#define D_TIMER_PARAMETERS "Timer parameters" +#define D_TIMER_ARM "Arm" +#define D_TIMER_TIME "Time" +#define D_TIMER_DAYS "Days" +#define D_TIMER_REPEAT "Repeat" +#define D_TIMER_DEVICE "Device" +#define D_TIMER_POWER "Power" + // xdrv_03_energy.ino #define D_ENERGY_TODAY "今日用電量" #define D_ENERGY_YESTERDAY "昨日用電量" diff --git a/sonoff/settings.h b/sonoff/settings.h index 173958b86022..5c18c9ca26df 100644 --- a/sonoff/settings.h +++ b/sonoff/settings.h @@ -93,10 +93,10 @@ typedef union { uint32_t data; struct { uint32_t time : 11; // bits 0 - 10 = minutes in a day - uint32_t mday : 5; // bits 11 - 15 = optional day in a month + uint32_t mday : 5; // bits 11 - 15 = 32 days in a month uint32_t days : 7; // bits 16 - 22 = week day mask uint32_t device : 4; // bits 23 - 26 = 16 devices - uint32_t power : 2; // bits 27 - 28 = 4 power states - Off, On, Toggle + uint32_t power : 2; // bits 27 - 28 = 4 power states - Off, On, Toggle, Blink uint32_t repeat : 1; // bit 29 uint32_t arm : 1; // bit 30 uint32_t spare : 1; // bit 31 diff --git a/sonoff/user_config.h b/sonoff/user_config.h index 5de54309a8f9..d49373f6788a 100644 --- a/sonoff/user_config.h +++ b/sonoff/user_config.h @@ -163,6 +163,7 @@ #define NTP_SERVER3 "0.nl.pool.ntp.org" // [NtpServer3] Select third NTP server by name or IP address (93.94.224.67) #define USE_TIMERS // Add support for up to 16 timers (+2k2 code) + #define USE_TIMERS_WEB // Add timer webpage support (+4k5 code) // -- Time - Start Daylight Saving Time and timezone offset from UTC in minutes #define TIME_DST North, Last, Sun, Mar, 2, +120 // Northern Hemisphere, Last sunday in march at 02:00 +120 minutes diff --git a/sonoff/webserver.ino b/sonoff/webserver.ino index cc843748f357..d314d09e4a55 100644 --- a/sonoff/webserver.ino +++ b/sonoff/webserver.ino @@ -39,16 +39,19 @@ const char HTTP_HEAD[] PROGMEM = "var cn,x,lt;" "cn=180;" "x=null;" // Allow for abortion + "function eb(s){" + "return document.getElementById(s);" // Save code space + "}" "function u(){" "if(cn>=0){" - "document.getElementById('t').innerHTML='" D_RESTART_IN " '+cn+' " D_SECONDS "';" + "eb('t').innerHTML='" D_RESTART_IN " '+cn+' " D_SECONDS "';" "cn--;" "setTimeout(u,1000);" "}" "}" "function c(l){" - "document.getElementById('s1').value=l.innerText||l.textContent;" - "document.getElementById('p1').focus();" + "eb('s1').value=l.innerText||l.textContent;" + "eb('p1').focus();" "}" "function la(p){" "var a='';" @@ -61,7 +64,7 @@ const char HTTP_HEAD[] PROGMEM = "x.onreadystatechange=function(){" "if(x.readyState==4&&x.status==200){" "var s=x.responseText.replace(/{t}/g,\"
\").replace(/{m}/g,\" | \").replace(/{e}/g,\" |
---|---|
\").replace(/}2/g,\" | \");"
- "document.getElementById('i').innerHTML=s;"
+ "eb('i').innerHTML=s;"
"}"
"";
const char HTTP_MSG_SLIDER1[] PROGMEM =
@@ -180,6 +183,11 @@ const char HTTP_BTN_RSTRT[] PROGMEM =
" "; const char HTTP_BTN_MENU2[] PROGMEM = " " +#ifdef USE_TIMERS +#ifdef USE_TIMERS_WEB + " " +#endif // USE_TIMERS_WEB +#endif // USE_TIMERS " "; const char HTTP_BTN_MENU3[] PROGMEM = " " @@ -206,7 +214,7 @@ const char HTTP_BTN_CONF[] PROGMEM = " "; const char HTTP_FORM_MODULE[] PROGMEM = " |