From fc3b7e22ab965aea092a429e61534868f3a6c925 Mon Sep 17 00:00:00 2001 From: arendst Date: Tue, 28 Feb 2017 16:01:48 +0100 Subject: [PATCH] v3.9.22 3.9.22 20170228 * Update web console * Fix Status 4 JSON message * Add Exception info during restart if available * Add osWatch service to detect loop hangs that might happen during (OTA) upgrades * Add WiOn support for relay and switch only (#82, #102) * Allow for user specified relay count up to four in sonoff_template.h (#109) * Add support for HTU21 compatible I2C sensors SI7013, SI7020 and SI7021 (#118) * Add NodeMCU or Wemos configuration option (#119) --- README.md | 2 +- api/arduino/sonoff.ino.bin | Bin 472656 -> 473472 bytes sonoff/_releasenotes.ino | 12 +++- sonoff/settings.h | 7 +++ sonoff/settings.ino | 82 ++++++++++++++++++++++++ sonoff/sonoff.ino | 48 +++++++++----- sonoff/sonoff_template.h | 30 +++++++++ sonoff/support.ino | 124 ++++++++++++++++++++++++++++++++++++- sonoff/user_config.h | 2 +- sonoff/webserver.ino | 58 ++++++++++------- sonoff/xsns_bh1750.ino | 10 ++- sonoff/xsns_bmp.ino | 26 ++++---- sonoff/xsns_dht.ino | 27 ++++++-- sonoff/xsns_ds18b20.ino | 8 +-- sonoff/xsns_ds18x20.ino | 44 ++++++------- sonoff/xsns_hlw8012.ino | 38 +++++++----- sonoff/xsns_htu21.ino | 60 ++++++++++++------ 17 files changed, 450 insertions(+), 128 deletions(-) diff --git a/README.md b/README.md index ee5810873..707214aae 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## Sonoff-Tasmota Provide ESP8266 based Sonoff by [iTead Studio](https://www.itead.cc/) and ElectroDragon IoT Relay with Serial, Web and MQTT control allowing 'Over the Air' or OTA firmware updates using Arduino IDE. -Current version is **3.9.21** - See ```sonoff/_releasenotes.ino``` for change information. +Current version is **3.9.22** - See ```sonoff/_releasenotes.ino``` for change information. - This version provides all (Sonoff) modules in one file and starts up with Sonoff Basic. - Once uploaded select module using the configuration webpage or the commands ```Modules``` and ```Module```. diff --git a/api/arduino/sonoff.ino.bin b/api/arduino/sonoff.ino.bin index d2fb0d14da1a8f3340c403040a54df262294645a..fed5932816544cbbf179bc6a93acfb610bc5abb3 100644 GIT binary patch delta 122678 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 z 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 F{{s*I7kU5y delta 121787 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

    SUx(*<ybPXU0Jqw3->NP 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 N>_Xw|6eTJ1{{c_iGx`7k diff --git a/sonoff/_releasenotes.ino b/sonoff/_releasenotes.ino index 0bcd5e4d5..29f7f4c19 100644 --- a/sonoff/_releasenotes.ino +++ b/sonoff/_releasenotes.ino @@ -1,4 +1,14 @@ -/* 3.9.21 20170224 +/* 3.9.22 20170228 + * Update web console + * Fix Status 4 JSON message + * Add Exception info during restart if available + * Add osWatch service to detect loop hangs that might happen during (OTA) upgrades + * Add WiOn support for relay and switch only (#82, #102) + * Allow for user specified relay count up to four in sonoff_template.h (#109) + * Add support for HTU21 compatible I2C sensors SI7013, SI7020 and SI7021 (#118) + * Add NodeMCU or Wemos configuration option (#119) + * + * 3.9.21 20170224 * Add ajax to web root page and web console (#79) * Add commands SwitchMode1..4 and enable user switches 2, 3 and 4 (#84, #88) * Fix MQTT upgrade when webserver is active diff --git a/sonoff/settings.h b/sonoff/settings.h index 55ee022c4..c0aced8e8 100644 --- a/sonoff/settings.h +++ b/sonoff/settings.h @@ -189,3 +189,10 @@ struct SYSCFG { } sysCfg; +struct RTCMEM { + uint16_t valid; + byte osw_flag; + byte nu1; + unsigned long hlw_kWhtoday; +} rtcMem; + diff --git a/sonoff/settings.ino b/sonoff/settings.ino index 9112638a2..f94567546 100644 --- a/sonoff/settings.ino +++ b/sonoff/settings.ino @@ -23,6 +23,85 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/*********************************************************************************************\ + * RTC memory +\*********************************************************************************************/ + +#define RTC_MEM_VALID 0xA55A + +uint32_t _rtcHash = 0; + +uint32_t getRtcHash() +{ + uint32_t hash = 0; + uint8_t *bytes = (uint8_t*)&rtcMem; + + for (uint16_t i = 0; i < sizeof(RTCMEM); i++) hash += bytes[i]*(i+1); + return hash; +} + +void RTC_Save() +{ + if (getRtcHash() != _rtcHash) { + rtcMem.valid = RTC_MEM_VALID; + ESP.rtcUserMemoryWrite(100, (uint32_t*)&rtcMem, sizeof(RTCMEM)); + _rtcHash = getRtcHash(); +#ifdef DEBUG_THEO + addLog_P(LOG_LEVEL_DEBUG, PSTR("Dump: Save")); + RTC_Dump(); +#endif // DEBUG_THEO + } +} + +void RTC_Load() +{ + ESP.rtcUserMemoryRead(100, (uint32_t*)&rtcMem, sizeof(RTCMEM)); +#ifdef DEBUG_THEO + addLog_P(LOG_LEVEL_DEBUG, PSTR("Dump: Load")); + RTC_Dump(); +#endif // DEBUG_THEO + if (rtcMem.valid != RTC_MEM_VALID) { + memset(&rtcMem, 0x00, sizeof(RTCMEM)); + rtcMem.valid = RTC_MEM_VALID; + RTC_Save(); + } + _rtcHash = getRtcHash(); +} + +boolean RTC_Valid() +{ + return (rtcMem.valid == RTC_MEM_VALID); +} + +#ifdef DEBUG_THEO +void RTC_Dump() +{ + #define CFG_COLS 16 + + char log[LOGSZ]; + uint16_t idx, maxrow, row, col; + + uint8_t *buffer = (uint8_t *) &rtcMem; + maxrow = ((sizeof(RTCMEM)+CFG_COLS)/CFG_COLS); + + for (row = 0; row < maxrow; row++) { + idx = row * CFG_COLS; + snprintf_P(log, sizeof(log), PSTR("%04X:"), idx); + for (col = 0; col < CFG_COLS; col++) { + if (!(col%4)) snprintf_P(log, sizeof(log), PSTR("%s "), log); + snprintf_P(log, sizeof(log), PSTR("%s %02X"), log, buffer[idx + col]); + } + snprintf_P(log, sizeof(log), PSTR("%s |"), log); + for (col = 0; col < CFG_COLS; col++) { +// if (!(col%4)) snprintf_P(log, sizeof(log), PSTR("%s "), log); + snprintf_P(log, sizeof(log), PSTR("%s%c"), log, ((buffer[idx + col] > 0x20) && (buffer[idx + col] < 0x7F)) ? (char)buffer[idx + col] : ' '); + } + snprintf_P(log, sizeof(log), PSTR("%s|"), log); + addLog(LOG_LEVEL_INFO, log); + } +} +#endif // DEBUG_THEO + /*********************************************************************************************\ * Config - Flash or Spiffs \*********************************************************************************************/ @@ -131,6 +210,7 @@ void CFG_Save() } _cfgHash = getHash(); } + RTC_Save(); } void CFG_Load() @@ -177,6 +257,8 @@ void CFG_Load() } } _cfgHash = getHash(); + + RTC_Load(); } void CFG_Migrate() diff --git a/sonoff/sonoff.ino b/sonoff/sonoff.ino index 1b6fc9c7d..0ac0d0473 100644 --- a/sonoff/sonoff.ino +++ b/sonoff/sonoff.ino @@ -10,7 +10,7 @@ * ==================================================== */ -#define VERSION 0x03091500 // 3.9.21 +#define VERSION 0x03091600 // 3.9.22 //#define BE_MINIMAL // Compile a minimal version if upgrade memory gets tight (still 404k) // To be used as step 1. Next step is compile and use desired version @@ -45,6 +45,7 @@ enum emul_t {EMUL_NONE, EMUL_WEMO, EMUL_HUE, EMUL_MAX}; #ifndef USE_DS18x20 #define USE_DS18B20 // Default DS18B20 sensor needs no external library #endif +//#define DEBUG_THEO // Add debug code #ifdef BE_MINIMAL //#ifdef USE_MQTT_TLS @@ -80,6 +81,9 @@ enum emul_t {EMUL_NONE, EMUL_WEMO, EMUL_HUE, EMUL_MAX}; #ifdef USE_IR_REMOTE #undef USE_IR_REMOTE // Disable IR driver #endif +#ifdef DEBUG_THEO +#undef DEBUG_THEO // Disable debug code +#endif #endif // BE_MINIMAL #ifndef SWITCH_MODE @@ -497,6 +501,9 @@ void mqtt_connected() mqtt_publish_topic_P(1, PSTR("INFO2"), svalue); } #endif // USE_WEBSERVER + snprintf_P(svalue, sizeof(svalue), PSTR("{\"Started\":\"%s\"}"), + (getResetReason() == "Exception") ? ESP.getResetInfo().c_str() : getResetReason().c_str()); + mqtt_publish_topic_P(1, PSTR("INFO3"), svalue); if (sysCfg.mqtt_enabled && (MQTT_MAX_PACKET_SIZE < (TOPSZ+MESSZ))) { snprintf_P(svalue, sizeof(svalue), PSTR("{\"Warning1\":\"Change MQTT_MAX_PACKET_SIZE in libraries/PubSubClient.h to at least %d\"}"), TOPSZ+MESSZ); mqtt_publish_topic_P(1, PSTR("WARNING1"), svalue); @@ -1167,7 +1174,13 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) else if ((pin[GPIO_IRSEND] < 99) && ir_send_command(type, index, dataBufUc, data_len, payload, svalue, sizeof(svalue))) { // Serviced } -#endif // USE_IR_REMOTE +#endif // USE_IR_REMOTE +#ifdef DEBUG_THEO + else if (!strcmp(type,"EXCEPTION")) { + if (data_len > 0) exception_tst(payload); + snprintf_P(svalue, sizeof(svalue), PSTR("{\"Exception\":\"Triggered\"}")); + } +#endif // DEBUG_THEO else { type = NULL; } @@ -1369,7 +1382,7 @@ void publish_status(uint8_t payload) } if ((payload == 0) || (payload == 4)) { - snprintf_P(svalue, sizeof(svalue), PSTR("{\"StatusMEM\":{\"ProgramSize\":%d, \"Free\":%d, \"Heap\":%d, \"SpiffsStart\":%d, \"SpiffsSize\":%d, \"FlashSize\":%d, \"ProgramFlashSize\":%d, \"FlashChipMode\",%d}}"), + snprintf_P(svalue, sizeof(svalue), PSTR("{\"StatusMEM\":{\"ProgramSize\":%d, \"Free\":%d, \"Heap\":%d, \"SpiffsStart\":%d, \"SpiffsSize\":%d, \"FlashSize\":%d, \"ProgramFlashSize\":%d, \"FlashChipMode\":%d}}"), ESP.getSketchSize()/1024, ESP.getFreeSketchSpace()/1024, ESP.getFreeHeap()/1024, ((uint32_t)&_SPIFFS_start - 0x40200000)/1024, (((uint32_t)&_SPIFFS_end - 0x40200000) - ((uint32_t)&_SPIFFS_start - 0x40200000))/1024, ESP.getFlashChipRealSize()/1024, ESP.getFlashChipSize()/1024, ESP.getFlashChipMode()); mqtt_publish_topic_P(option, PSTR("STATUS4"), svalue); @@ -1916,20 +1929,12 @@ void GPIO_init() } Maxdevice = 1; - switch (sysCfg.module) { - case SONOFF_DUAL: - case ELECTRODRAGON: - Maxdevice = 2; - break; - case SONOFF_4CH: - case CH4: - Maxdevice = 4; - break; + if (sysCfg.module == SONOFF_DUAL) { + Maxdevice = 2; + Baudrate = 19200; } - - swt_flg = ((pin[GPIO_SWT1] < 99) || (pin[GPIO_SWT2] < 99) || (pin[GPIO_SWT3] < 99) || (pin[GPIO_SWT4] < 99)); - - if ((sysCfg.module == SONOFF_DUAL) || (sysCfg.module == CH4)) { + else if (sysCfg.module == CH4) { + Maxdevice = 4; Baudrate = 19200; } else if (sysCfg.module == SONOFF_LED) { @@ -1937,9 +1942,13 @@ void GPIO_init() sl_init(); } else { + Maxdevice = 0; for (byte i = 0; i < 4; i++) { + if (pin[GPIO_REL1 +i] < 99) { + pinMode(pin[GPIO_REL1 +i], OUTPUT); + Maxdevice++; + } if (pin[GPIO_KEY1 +i] < 99) pinMode(pin[GPIO_KEY1 +i], INPUT_PULLUP); - if (pin[GPIO_REL1 +i] < 99) pinMode(pin[GPIO_REL1 +i], OUTPUT); } } for (byte i = 0; i < 4; i++) { @@ -1948,6 +1957,7 @@ void GPIO_init() digitalWrite(pin[GPIO_LED1 +i], led_inverted[i]); } if (pin[GPIO_SWT1 +i] < 99) { + swt_flg = 1; pinMode(pin[GPIO_SWT1 +i], INPUT_PULLUP); lastwallswitch[i] = digitalRead(pin[GPIO_SWT1 +i]); // set global now so doesn't change the saved power state on first switch check } @@ -2007,6 +2017,8 @@ void setup() CFG_Load(); CFG_Delta(); + osw_init(); + sysCfg.bootcount++; snprintf_P(log, sizeof(log), PSTR("APP: Bootcount %d"), sysCfg.bootcount); addLog(LOG_LEVEL_DEBUG, log); @@ -2073,6 +2085,8 @@ void setup() void loop() { + osw_loop(); + #ifdef USE_WEBSERVER pollDnsWeb(); #endif // USE_WEBSERVER diff --git a/sonoff/sonoff_template.h b/sonoff/sonoff_template.h index 598992632..960e00682 100644 --- a/sonoff/sonoff_template.h +++ b/sonoff/sonoff_template.h @@ -90,6 +90,8 @@ enum module_t { MOTOR, ELECTRODRAGON, EXS_RELAY, + WION, + NODEMCU, USER_TEST, MAXMODULE }; @@ -283,6 +285,34 @@ const mytmplt modules[MAXMODULE] PROGMEM = { 0, GPIO_USER // GPIO16 Module Pin 4 }, + { "WiOn", // Indoor Tap https://www.amazon.com/gp/product/B00ZYLUBJU/ref=s9_acsd_al_bw_c_x_3_w + GPIO_USER, // GPIO00 Optional sensor (pm clock) + 0, + GPIO_LED1, // GPIO02 Green Led (1 = On, 0 = Off) + 0, 0, 0, 0, 0, 0, 0, 0, 0, + GPIO_USER, // GPIO12 Optional sensor (pm data) + GPIO_KEY1, // GPIO13 Button + 0, + GPIO_REL1, // GPIO15 Relay (0 = Off, 1 = On) + 0 + }, + { "NodeMCU", // NodeMCU and Wemos hardware + GPIO_KEY1, // GPIO00 Button + GPIO_USER, // GPIO01 Serial RXD + GPIO_USER, // GPIO02 + GPIO_USER, // GPIO03 Serial TXD and Optional sensor + GPIO_USER, // GPIO04 Optional sensor + GPIO_USER, // GPIO05 + 0, 0, 0, + GPIO_USER, // GPIO09 + GPIO_USER, // GPIO10 + 0, + GPIO_USER, // GPIO12 + GPIO_USER, // GPIO13 + GPIO_USER, // GPIO14 + GPIO_USER, // GPIO15 + 0 + }, { "User Test", // Sonoff Basic User Test GPIO_KEY1, // GPIO00 Button 0, diff --git a/sonoff/support.ino b/sonoff/support.ino index a13c74447..ecbd50b52 100644 --- a/sonoff/support.ino +++ b/sonoff/support.ino @@ -23,6 +23,127 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/*********************************************************************************************\ + * Watchdog extension (https://github.com/esp8266/Arduino/issues/1532) +\*********************************************************************************************/ + +Ticker tickerOSWatch; + +#define OSWATCH_RESET_TIME 30 + +static unsigned long osw_last_loop; +byte osw_flag = 0; + +void ICACHE_RAM_ATTR osw_osWatch(void) +{ + unsigned long t = millis(); + unsigned long last_run = abs(t - osw_last_loop); + +#ifdef DEBUG_THEO + char log[LOGSZ]; + snprintf_P(log, sizeof(log), PSTR("osWatch: FreeRam %d, rssi %d, last_run %d"), ESP.getFreeHeap(), WIFI_getRSSIasQuality(WiFi.RSSI()), last_run); + addLog(LOG_LEVEL_DEBUG, log); +#endif // DEBUG_THEO + if(last_run >= (OSWATCH_RESET_TIME * 1000)) { + addLog_P(LOG_LEVEL_INFO, PSTR("osWatch: Warning, loop blocked. Restart now")); + rtcMem.osw_flag = 1; + RTC_Save(); +// ESP.restart(); // normal reboot + ESP.reset(); // hard reset + } +} + +void osw_init() +{ + osw_flag = rtcMem.osw_flag; + rtcMem.osw_flag = 0; + osw_last_loop = millis(); + tickerOSWatch.attach_ms(((OSWATCH_RESET_TIME / 3) * 1000), osw_osWatch); +} + +void osw_loop() +{ + osw_last_loop = millis(); +// while(1) delay(1000); // this will trigger the os watch +} + +String getResetReason() +{ + char buff[32]; + if (osw_flag) { + strcpy_P(buff, PSTR("Blocked Loop")); + return String(buff); + } else { + return ESP.getResetReason(); + } +} + +#ifdef DEBUG_THEO +void exception_tst(byte type) +{ +/* +Exception (28): +epc1=0x4000bf64 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000007 depc=0x00000000 + +ctx: cont +sp: 3fff1f30 end: 3fff2840 offset: 01a0 + +>>>stack>>> +3fff20d0: 202c3573 756f7247 2c302070 646e4920 +3fff20e0: 40236a6e 7954202c 45206570 00454358 +3fff20f0: 00000010 00000007 00000000 3fff2180 +3fff2100: 3fff2190 40107bfc 3fff3e4c 3fff22c0 +3fff2110: 40261934 000000f0 3fff22c0 401004d8 +3fff2120: 40238fcf 00000050 3fff2100 4021fc10 +3fff2130: 3fff32bc 4021680c 3ffeade1 4021ff7d +3fff2140: 3fff2190 3fff2180 0000000c 7fffffff +3fff2150: 00000019 00000000 00000000 3fff21c0 +3fff2160: 3fff23f3 3ffe8e08 00000000 4021ffb4 +3fff2170: 3fff2190 3fff2180 0000000c 40201118 +3fff2180: 3fff21c0 0000003c 3ffef840 00000007 +3fff2190: 00000000 00000000 00000000 40201128 +3fff21a0: 3fff23f3 000000f1 3fff23ec 4020fafb +3fff21b0: 3fff23f3 3fff21c0 3fff21d0 3fff23f6 +3fff21c0: 00000000 3fff23fb 4022321b 00000000 + +Exception 28: LoadProhibited: A load referenced a page mapped with an attribute that does not permit loads +Decoding 14 results +0x40236a6e: ets_vsnprintf at ?? line ? +0x40107bfc: vsnprintf at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/libc_replacements.c line 387 +0x40261934: bignum_exptmod at ?? line ? +0x401004d8: malloc at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\umm_malloc/umm_malloc.c line 1664 +0x40238fcf: wifi_station_get_connect_status at ?? line ? +0x4021fc10: operator new[](unsigned int) at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/abi.cpp line 57 +0x4021680c: ESP8266WiFiSTAClass::status() at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.cpp line 569 +0x4021ff7d: vsnprintf_P(char*, unsigned int, char const*, __va_list_tag) at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/pgmspace.cpp line 146 +0x4021ffb4: snprintf_P(char*, unsigned int, char const*, ...) at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/pgmspace.cpp line 146 +0x40201118: atol at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/core_esp8266_noniso.c line 45 +0x40201128: atoi at C:\Data2\Arduino\arduino-1.8.1-esp-2.3.0\portable\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/core_esp8266_noniso.c line 45 +0x4020fafb: mqttDataCb(char*, unsigned char*, unsigned int) at R:\Arduino\Work-ESP8266\Theo\sonoff\sonoff-4\sonoff/sonoff.ino line 679 (discriminator 1) +0x4022321b: pp_attach at ?? line ? + +00:00:08 MQTT: tele/sonoff/INFO3 = {"Started":"Fatal exception:28 flag:2 (EXCEPTION) epc1:0x4000bf64 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000007 depc:0x00000000"} +*/ + if (type == 1) { + char svalue[10]; + snprintf_P(svalue, sizeof(svalue), PSTR("%s"), 7); // Exception 28 as number in string (7 in excvaddr) + } +/* +14:50:52 osWatch: FreeRam 25896, rssi 68, last_run 0 +14:51:02 osWatch: FreeRam 25896, rssi 58, last_run 0 +14:51:03 CMND: exception 2 +14:51:12 osWatch: FreeRam 25360, rssi 60, last_run 8771 +14:51:22 osWatch: FreeRam 25360, rssi 62, last_run 18771 +14:51:32 osWatch: FreeRam 25360, rssi 62, last_run 28771 +14:51:42 osWatch: FreeRam 25360, rssi 62, last_run 38771 +14:51:42 osWatch: Warning, loop blocked. Restart now +*/ + if (type == 2) { + while(1) delay(1000); // this will trigger the os watch + } +} +#endif // DEBUG_THEO + /*********************************************************************************************\ * Wifi \*********************************************************************************************/ @@ -703,9 +824,6 @@ void addLog(byte loglevel, const char *line) snprintf_P(mxtime, sizeof(mxtime), PSTR("%02d:%02d:%02d"), rtcTime.Hour, rtcTime.Minute, rtcTime.Second); -#ifdef DEBUG_ESP_PORT - DEBUG_ESP_PORT.printf("%s %s\n", mxtime, line); -#endif // DEBUG_ESP_PORT if (loglevel <= seriallog_level) Serial.printf("%s %s\n", mxtime, line); #ifdef USE_WEBSERVER if (sysCfg.webserver && (loglevel <= sysCfg.weblog_level)) { diff --git a/sonoff/user_config.h b/sonoff/user_config.h index 0581ad6ed..032f72613 100644 --- a/sonoff/user_config.h +++ b/sonoff/user_config.h @@ -124,7 +124,7 @@ #define USE_I2C // I2C using library wire (+10k code, 0.2k mem) - Disable by // #define USE_BH1750 // Add I2C code for BH1750 sensor #define USE_BMP // Add I2C code for BMP/BME280 sensor - #define USE_HTU // Add I2C code for HTU21 sensor + #define USE_HTU // Add I2C code for HTU21/SI7013/SI7020/SI7021 sensor #define USE_IR_REMOTE // Send IR remote commands using library IRremoteESP8266 and ArduinoJson (+4k code, 0.3k mem) diff --git a/sonoff/webserver.ino b/sonoff/webserver.ino index 83233d952..3eba1f96f 100644 --- a/sonoff/webserver.ino +++ b/sonoff/webserver.ino @@ -70,13 +70,22 @@ const char HTTP_HEAD[] PROGMEM = "};" "x.open('GET','ay'+a,true);" "x.send();" - "lt=setTimeout(la,2000);" + "lt=setTimeout(la,2345);" "}" "var sn=0;" // Scroll position "var id=99;" // Get most of weblog initially - "function l(){" - "var e=document.getElementById('t1');" - "if(e.scrollTop>=sn){" // User scrolled back so no updates + "function l(p){" // Console log and command service + "var c,o,t;" + "clearTimeout(lt);" + "o='';" + "t=document.getElementById('t1');" + "if(p==1){" + "c=document.getElementById('c1');" + "o='&c1='+c.value;" + "c.value='';" + "t.scrollTop=sn;" + "}" + "if(t.scrollTop>=sn){" // User scrolled back so no updates "if(x!=null){x.abort();}" // Abort if no response within 2 seconds (happens on restart 1) "x=new XMLHttpRequest();" "x.onreadystatechange=function(){" @@ -84,25 +93,17 @@ const char HTTP_HEAD[] PROGMEM = "var z,d;" "d=x.responseXML;" "id=d.getElementsByTagName('i')[0].childNodes[0].nodeValue;" - "if(d.getElementsByTagName('j')[0].childNodes[0].nodeValue==0){e.value=\"\";}" + "if(d.getElementsByTagName('j')[0].childNodes[0].nodeValue==0){t.value='';}" "z=d.getElementsByTagName('l')[0].childNodes;" - "if(z.length>0){e.value+=z[0].nodeValue;}" - "e.scrollTop=99999;" - "sn=e.scrollTop;" + "if(z.length>0){t.value+=z[0].nodeValue;}" + "t.scrollTop=99999;" + "sn=t.scrollTop;" "}" "};" - "x.open('GET','ax?c2='+id,true);" + "x.open('GET','ax?c2='+id+o,true);" "x.send();" "}" - "setTimeout(l,2000);" - "}" - "function lc(){" - "var e=document.getElementById('c1');" -// "if(x!=null){x.abort();}" // Abort if no response within 2 seconds (happens on restart 1) - "var x=new XMLHttpRequest();" - "x.open('GET','ax?c1='+e.value+'&c2='+id,true);" - "x.send();" - "e.value=\"\";" + "lt=setTimeout(l,2345);" "return false;" "}" "" @@ -122,7 +123,7 @@ const char HTTP_HEAD[] PROGMEM = "" "" "" - "
    " + "
    " "

    {ha} Module

    {h}

    "; const char HTTP_MSG_RSTRT[] PROGMEM = "
    Device will restart in a few seconds

    "; @@ -234,12 +235,18 @@ const char HTTP_FORM_UPG[] PROGMEM = ""; const char HTTP_FORM_CMND[] PROGMEM = "


    " - "
    " + "" "
    " // "
    " "
    "; const char HTTP_COUNTER[] PROGMEM = "
    "; +const char HTTP_SNS_TEMP[] PROGMEM = + "%s Temperature%s°%c"; +const char HTTP_SNS_HUM[] PROGMEM = + "%s Humidity%s%"; +const char HTTP_SNS_PRESSURE[] PROGMEM = + "%s Pressure%s hPa"; const char HTTP_END[] PROGMEM = "
    " "" @@ -1168,7 +1175,7 @@ void handleAjax() { if (httpUser()) return; char svalue[MESSZ], log[LOGSZ]; - byte counter = 99; + byte cflg = 1, counter = 99; if (strlen(webServer->arg("c1").c_str())) { snprintf_P(svalue, sizeof(svalue), webServer->arg("c1").c_str()); @@ -1189,10 +1196,13 @@ void handleAjax() } message += F(""); if (counter != logidx) { - if (counter == 99) counter = logidx; + if (counter == 99) { + counter = logidx; + cflg = 0; + } do { if (Log[counter].length()) { - message += F("\n"); + if (cflg) message += F("\n"); else cflg = 1; message += Log[counter]; } counter++; @@ -1227,7 +1237,7 @@ void handleInfo() page += F("Uptime"); page += String(uptime); page += F(" Hours"); page += F("Flash write count"); page += String(sysCfg.saveFlag); page += F(""); page += F("Boot count"); page += String(sysCfg.bootcount); page += F(""); - page += F("Reset reason"); page += ESP.getResetReason(); page += F(""); + page += F("Reset reason"); page += getResetReason(); page += F(""); for (byte i = 0; i < Maxdevice; i++) { page += F("Friendly name "); page += i +1; diff --git a/sonoff/xsns_bh1750.ino b/sonoff/xsns_bh1750.ino index 603fd9805..93292d60a 100644 --- a/sonoff/xsns_bh1750.ino +++ b/sonoff/xsns_bh1750.ino @@ -67,7 +67,7 @@ boolean bh1750_detect() if (!status) { success = true; bh1750type = 1; - snprintf_P(bh1750stype, sizeof(bh1750stype), PSTR("BH1750")); + strcpy(bh1750stype, "BH1750"); } if (success) { snprintf_P(log, sizeof(log), PSTR("I2C: %s found at address 0x%x"), bh1750stype, bh1750addr); @@ -95,12 +95,16 @@ void bh1750_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) } #ifdef USE_WEBSERVER +const char HTTP_SNS_ILLUMINANCE[] PROGMEM = + "BH1750 Illuminance%d lx"; + String bh1750_webPresent() { String page = ""; if (bh1750type) { - uint16_t l = bh1750_readLux(); - page += F("Illuminance: "); page += String(l); page += F(" lx"); + char sensor[80]; + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_ILLUMINANCE, bh1750_readLux()); + page += sensor; } return page; } diff --git a/sonoff/xsns_bmp.ino b/sonoff/xsns_bmp.ino index 4ac3d7d17..1bc472222 100644 --- a/sonoff/xsns_bmp.ino +++ b/sonoff/xsns_bmp.ino @@ -397,19 +397,19 @@ boolean bmp_detect() bmpaddr--; bmptype = i2c_read8(bmpaddr, BMP_REGISTER_CHIPID); } - snprintf_P(bmpstype, sizeof(bmpstype), PSTR("BMP")); + strcpy_P(bmpstype, PSTR("BMP")); switch (bmptype) { case BMP180_CHIPID: success = bmp180_calibration(); - snprintf_P(bmpstype, sizeof(bmpstype), PSTR("BMP180")); + strcpy_P(bmpstype, PSTR("BMP180")); break; case BMP280_CHIPID: success = bmp280_calibrate(); - snprintf_P(bmpstype, sizeof(bmpstype), PSTR("BMP280")); + strcpy_P(bmpstype, PSTR("BMP280")); break; case BME280_CHIPID: success = bme280_calibrate(); - snprintf_P(bmpstype, sizeof(bmpstype), PSTR("BME280")); + strcpy_P(bmpstype, PSTR("BME280")); } if (success) { snprintf_P(log, sizeof(log), PSTR("I2C: %s found at address 0x%x"), bmpstype, bmpaddr); @@ -454,20 +454,22 @@ String bmp_webPresent() { String page = ""; if (bmptype) { - char itemp[10], iconv[10]; + char stemp[10], sensor[80]; - snprintf_P(iconv, sizeof(iconv), PSTR("°%c"), (TEMP_CONVERSION) ? 'F' : 'C'); double t_bmp = bmp_readTemperature(TEMP_CONVERSION); double p_bmp = bmp_readPressure(); double h_bmp = bmp_readHumidity(); - dtostrf(t_bmp, 1, TEMP_RESOLUTION &3, itemp); - page += F("BMP Temperature: "); page += itemp; page += iconv; page += F(""); + dtostrf(t_bmp, 1, TEMP_RESOLUTION &3, stemp); + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_TEMP, bmpstype, stemp, (TEMP_CONVERSION) ? 'F' : 'C'); + page += sensor; if (!strcmp(bmpstype,"BME280")) { - dtostrf(h_bmp, 1, HUMIDITY_RESOLUTION &3, itemp); - page += F("BMP Humidity: "); page += itemp; page += F("%"); + dtostrf(h_bmp, 1, HUMIDITY_RESOLUTION &3, stemp); + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_HUM, bmpstype, stemp); + page += sensor; } - dtostrf(p_bmp, 1, PRESSURE_RESOLUTION &3, itemp); - page += F("BMP Pressure: "); page += itemp; page += F(" hPa"); + dtostrf(p_bmp, 1, PRESSURE_RESOLUTION &3, stemp); + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_PRESSURE, bmpstype, stemp); + page += sensor; } return page; } diff --git a/sonoff/xsns_dht.ino b/sonoff/xsns_dht.ino index e1b9f9793..5b85e18a1 100644 --- a/sonoff/xsns_dht.ino +++ b/sonoff/xsns_dht.ino @@ -35,6 +35,7 @@ POSSIBILITY OF SUCH DAMAGE. #define MIN_INTERVAL 2000 uint8_t data[5]; +char dhtstype[7]; uint32_t _lastreadtime, _maxcycles; bool _lastresult; float mt, mh = 0; @@ -170,6 +171,17 @@ void dht_init() pinMode(pin[GPIO_DHT11], INPUT_PULLUP); _lastreadtime = -MIN_INTERVAL; + switch (dht_type) { + case GPIO_DHT11: + strcpy(dhtstype, "DHT11"); + break; + case GPIO_DHT21: + strcpy(dhtstype, "AM2301"); + break; + case GPIO_DHT22: + strcpy(dhtstype, "DHT22"); + } + snprintf_P(log, sizeof(log), PSTR("DHT: Max clock cycles %d"), _maxcycles); addLog(LOG_LEVEL_DEBUG, log); } @@ -186,7 +198,8 @@ void dht_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) if (dht_readTempHum(TEMP_CONVERSION, t, h)) { // Read temperature dtostrf(t, 1, TEMP_RESOLUTION &3, stemp1); dtostrf(h, 1, HUMIDITY_RESOLUTION &3, stemp2); - snprintf_P(svalue, ssvalue, PSTR("%s, \"DHT\":{\"Temperature\":%s, \"Humidity\":%s}"), svalue, stemp1, stemp2); + snprintf_P(svalue, ssvalue, PSTR("%s, \"%s\":{\"Temperature\":%s, \"Humidity\":%s}"), + svalue, dhtstype, stemp1, stemp2); *djson = 1; #ifdef USE_DOMOTICZ domoticz_sensor2(stemp1, stemp2); @@ -197,16 +210,18 @@ void dht_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) #ifdef USE_WEBSERVER String dht_webPresent() { - char stemp[10], sconv[10]; - float t, h; String page = ""; + float t, h; if (dht_readTempHum(TEMP_CONVERSION, t, h)) { // Read temperature as Celsius (the default) - snprintf_P(sconv, sizeof(sconv), PSTR("°%c"), (TEMP_CONVERSION) ? 'F' : 'C'); + char stemp[10], sensor[128]; dtostrf(t, 1, TEMP_RESOLUTION &3, stemp); - page += F("DHT Temperature: "); page += stemp; page += sconv; page += F(""); + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_TEMP, dhtstype, stemp, (TEMP_CONVERSION) ? 'F' : 'C'); + page += sensor; dtostrf(h, 1, HUMIDITY_RESOLUTION &3, stemp); - page += F("DHT Humidity: "); page += stemp; page += F("%"); + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_HUM, dhtstype, stemp); + page += sensor; + } return page; } diff --git a/sonoff/xsns_ds18b20.ino b/sonoff/xsns_ds18b20.ino index 18375531e..13fbc0053 100644 --- a/sonoff/xsns_ds18b20.ino +++ b/sonoff/xsns_ds18b20.ino @@ -191,14 +191,14 @@ void dsb_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) String dsb_webPresent() { // Needs TelePeriod to refresh data (Do not do it here as it takes too much time) - char stemp[10], sconv[10]; - float st; String page = ""; + float st; if (dsb_readTemp(TEMP_CONVERSION, st)) { // Check if read failed - snprintf_P(sconv, sizeof(sconv), PSTR("°%c"), (TEMP_CONVERSION) ? 'F' : 'C'); + char stemp[10], sensor[80]; dtostrf(st, 1, TEMP_RESOLUTION &3, stemp); - page += F("DSB Temperature: "); page += stemp; page += sconv; page += F(""); + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_TEMP, "DS18B20", stemp, (TEMP_CONVERSION) ? 'F' : 'C'); + page += sensor; } return page; } diff --git a/sonoff/xsns_ds18x20.ino b/sonoff/xsns_ds18x20.ino index 22fc92654..77cb2c4d0 100644 --- a/sonoff/xsns_ds18x20.ino +++ b/sonoff/xsns_ds18x20.ino @@ -41,6 +41,7 @@ OneWire *ds = NULL; uint8_t ds18x20_addr[DS18X20_MAX_SENSORS][8]; uint8_t ds18x20_idx[DS18X20_MAX_SENSORS]; uint8_t ds18x20_snsrs = 0; +char dsbstype[8]; void ds18x20_init() { @@ -90,23 +91,6 @@ String ds18x20_address(uint8_t sensor) return String(addrStr); } -String ds18x20_type(uint8_t sensor) -{ - char typeStr[10]; - - switch(ds18x20_addr[ds18x20_idx[sensor]][0]) { - case 0x10: - strcpy(typeStr, "DS18S20"); - break; - case 0x28: - strcpy(typeStr, "DS18B20"); - break; - default: - strcpy(typeStr, "DS18x20"); - } - return String(typeStr); -} - void ds18x20_convert() { ds->reset(); @@ -160,6 +144,19 @@ boolean ds18x20_read(uint8_t sensor, bool S, float &t) * Presentation \*********************************************************************************************/ +void ds18x20_type(uint8_t sensor) +{ + strcpy_P(dsbstype, PSTR("DS18x20")); + switch(ds18x20_addr[ds18x20_idx[sensor]][0]) { + case 0x10: + strcpy_P(dsbstype, PSTR("DS18S20")); + break; + case 0x28: + strcpy_P(dsbstype, PSTR("DS18B20")); + break; + } +} + void ds18x20_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) { char stemp1[10], stemp2[10]; @@ -168,6 +165,7 @@ void ds18x20_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) byte dsxflg = 0; for (byte i = 0; i < ds18x20_sensors(); i++) { if (ds18x20_read(i, TEMP_CONVERSION, t)) { // Check if read failed + ds18x20_type(i); dtostrf(t, 1, TEMP_RESOLUTION &3, stemp2); if (!dsxflg) { snprintf_P(svalue, ssvalue, PSTR("%s, \"DS18x20\":{"), svalue); @@ -176,7 +174,7 @@ void ds18x20_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) } dsxflg++; snprintf_P(svalue, ssvalue, PSTR("%s%s\"DS%d\":{\"Type\":\"%s\", \"Address\":\"%s\", \"Temperature\":%s}"), - svalue, stemp1, i +1, ds18x20_type(i).c_str(), ds18x20_address(i).c_str(), stemp2); + svalue, stemp1, i +1, dsbstype, ds18x20_address(i).c_str(), stemp2); strcpy(stemp1, ", "); #ifdef USE_DOMOTICZ if (dsxflg == 1) domoticz_sensor1(stemp2); @@ -189,15 +187,17 @@ void ds18x20_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) #ifdef USE_WEBSERVER String ds18x20_webPresent() { - char stemp[10], sconv[10]; - float t; String page = ""; + char stemp[10], stemp2[16], sensor[80]; + float t; - snprintf_P(sconv, sizeof(sconv), PSTR("°%c"), (TEMP_CONVERSION) ? 'F' : 'C'); for (byte i = 0; i < ds18x20_sensors(); i++) { if (ds18x20_read(i, TEMP_CONVERSION, t)) { // Check if read failed + ds18x20_type(i); dtostrf(t, 1, TEMP_RESOLUTION &3, stemp); - page += F("DS"); page += String(i +1); page += F(" Temperature: "); page += stemp; page += sconv; page += F(""); + snprintf_P(stemp2, sizeof(stemp2), PSTR("%s-%d"), dsbstype, i +1); + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_TEMP, stemp2, stemp, (TEMP_CONVERSION) ? 'F' : 'C'); + page += sensor; } } return page; diff --git a/sonoff/xsns_hlw8012.ino b/sonoff/xsns_hlw8012.ino index 3ed5e24c3..95a851f19 100644 --- a/sonoff/xsns_hlw8012.ino +++ b/sonoff/xsns_hlw8012.ino @@ -102,11 +102,13 @@ void hlw_200mS() hlw_EDcntr = 0; hlw_temp = (HLW_PREF * sysCfg.hlw_pcal) / hlw_len; hlw_kWhtoday += (hlw_temp * 100) / 36; + rtcMem.hlw_kWhtoday = hlw_kWhtoday; } if (rtcTime.Valid) { if (rtc_loctime() == rtc_midnight()) { sysCfg.hlw_kWhyesterday = hlw_kWhtoday; hlw_kWhtoday = 0; + rtcMem.hlw_kWhtoday = hlw_kWhtoday; hlw_mkwh_state = 3; } if ((rtcTime.Hour == sysCfg.hlw_mkwhs) && (hlw_mkwh_state == 3)) { @@ -114,6 +116,7 @@ void hlw_200mS() } if (hlw_startup && (rtcTime.DayOfYear == sysCfg.hlw_kWhdoy)) { hlw_kWhtoday = sysCfg.hlw_kWhtoday; + rtcMem.hlw_kWhtoday = hlw_kWhtoday; hlw_startup = 0; } } @@ -236,7 +239,7 @@ void hlw_init() hlw_Ecntr = 0; hlw_EDcntr = 0; - hlw_kWhtoday = 0; + hlw_kWhtoday = (RTC_Valid()) ? rtcMem.hlw_kWhtoday : 0; hlw_SELflag = 0; // Voltage; @@ -540,18 +543,16 @@ void hlw_mqttStat(byte option, char* svalue, uint16_t ssvalue) void hlw_mqttPresent() { - char svalue[MESSZ], stime[21]; + char svalue[MESSZ]; - snprintf_P(stime, sizeof(stime), PSTR("%04d-%02d-%02dT%02d:%02d:%02d"), + snprintf_P(svalue, sizeof(svalue), PSTR("{\"Time\":\"%04d-%02d-%02dT%02d:%02d:%02d\", "), rtcTime.Year, rtcTime.Month, rtcTime.Day, rtcTime.Hour, rtcTime.Minute, rtcTime.Second); - snprintf_P(svalue, sizeof(svalue), PSTR("{\"Time\":\"%s\", "), stime); hlw_mqttStat(1, svalue, sizeof(svalue)); // snprintf_P(stopic, sizeof(stopic), PSTR("%s/%s/ENERGY"), PUB_PREFIX2, sysCfg.mqtt_topic); // mqtt_publish(stopic, svalue); mqtt_publish_topic_P(1, PSTR("ENERGY"), svalue); - } void hlw_mqttStatus(char* svalue, uint16_t ssvalue) @@ -562,24 +563,29 @@ void hlw_mqttStatus(char* svalue, uint16_t ssvalue) } #ifdef USE_WEBSERVER +const char HTTP_ENERGY_SNS[] PROGMEM = + "Voltage%d V" + "Current%s A" + "Power%d W" + "Power Factor%s" + "Energy Today%s kWh" + "Energy Yesterday%s kWh"; + String hlw_webPresent() { - char stemp[10]; + String page = ""; + char stemp[10], stemp2[10], stemp3[10], stemp4[10], sensor[300]; float ped, pi, pc; uint16_t pe, pw, pu; - String page = ""; hlw_readEnergy(0, ped, pe, pw, pu, pi, pc); - page += F("Voltage: "); page += String(pu); page += F(" V"); + dtostrf(pi, 1, 3, stemp); - page += F("Current: "); page += stemp; page += F(" A"); - page += F("Power: "); page += String(pw); page += F(" W"); - dtostrf(pc, 1, 2, stemp); - page += F("Power Factor: "); page += stemp; page += F(""); - dtostrf(ped, 1, 3, stemp); - page += F("Energy Today: "); page += stemp; page += F(" kWh"); - dtostrf((float)sysCfg.hlw_kWhyesterday / 100000000, 1, 3, stemp); - page += F("Energy Yesterday: "); page += stemp; page += F(" kWh"); + dtostrf(pc, 1, 2, stemp2); + dtostrf(ped, 1, 3, stemp3); + dtostrf((float)sysCfg.hlw_kWhyesterday / 100000000, 1, 3, stemp4); + snprintf_P(sensor, sizeof(sensor), HTTP_ENERGY_SNS, pu, stemp, pw, stemp2, stemp3, stemp4); + page += sensor; return page; } #endif // USE_WEBSERVER diff --git a/sonoff/xsns_htu21.ino b/sonoff/xsns_htu21.ino index 64ea0cde4..da57baa9e 100644 --- a/sonoff/xsns_htu21.ino +++ b/sonoff/xsns_htu21.ino @@ -33,6 +33,9 @@ #define HTU21_ADDR 0x40 +#define SI7013_CHIPID 0x0D +#define SI7020_CHIPID 0x14 +#define SI7021_CHIPID 0x15 #define HTU21_CHIPID 0x32 #define HTU21_READTEMP 0xE3 @@ -48,17 +51,15 @@ #define HTU21_HEATER_ON 0x04 #define HTU21_HEATER_OFF 0xFB -#define HTU21_RES_RH12_T14 0x00 // Default +#define HTU21_RES_RH12_T14 0x00 // Default #define HTU21_RES_RH8_T12 0x01 #define HTU21_RES_RH10_T13 0x80 #define HTU21_RES_RH11_T11 0x81 -#define HTU21_MAX_HUM 16 // 16ms max time -#define HTU21_MAX_TEMP 50 // 50ms max time - #define HTU21_CRC8_POLYNOM 0x13100 uint8_t htuaddr, htutype = 0; +uint8_t delayT, delayH = 50; char htustype[7]; uint8_t check_crc8(uint16_t data) @@ -149,7 +150,7 @@ float htu21_readHumidity(void) Wire.beginTransmission(HTU21_ADDR); Wire.write(HTU21_READHUM); if(Wire.endTransmission() != 0) return 0.0; // In case of error - delay(HTU21_MAX_HUM); // HTU21 time at max resolution + delay(delayH); // Sensor time at max resolution Wire.requestFrom(HTU21_ADDR, 3); if(3 <= Wire.available()) @@ -163,8 +164,8 @@ float htu21_readHumidity(void) sensorval ^= 0x02; // clear status bits humidity = 0.001907 * (float)sensorval - 6; - if(humidity>100) return 100.0; - if(humidity<0) return 0.01; + if(humidity > 100) return 100.0; + if(humidity < 0) return 0.01; return humidity; } @@ -178,7 +179,7 @@ float htu21_readTemperature(bool S) Wire.beginTransmission(HTU21_ADDR); Wire.write(HTU21_READTEMP); if(Wire.endTransmission() != 0) return 0.0; // In case of error - delay(HTU21_MAX_TEMP); // HTU21 time at max resolution + delay(delayT); // Sensor time at max resolution Wire.requestFrom(HTU21_ADDR, 3); if(3 == Wire.available()) @@ -210,11 +211,32 @@ uint8_t htu_detect() htuaddr = HTU21_ADDR; htutype = htu21_readDeviceID(); - snprintf_P(htustype, sizeof(htustype), PSTR("HTU")); + success = htu21_init(); switch (htutype) { case HTU21_CHIPID: - success = htu21_init(); - snprintf_P(htustype, sizeof(htustype), PSTR("HTU21")); + strcpy_P(htustype, PSTR("HTU21")); + delayT=50; + delayH=16; + break; + case SI7013_CHIPID: + strcpy_P(htustype, PSTR("SI7013")); + delayT=12; + delayH=23; + break; + case SI7020_CHIPID: + strcpy_P(htustype, PSTR("SI7020")); + delayT=12; + delayH=23; + break; + case SI7021_CHIPID: + strcpy_P(htustype, PSTR("SI7021")); + delayT=12; + delayH=23; + break; + default: + strcpy_P(htustype, PSTR("T/RH?")); + delayT=50; + delayH=23; } if (success) { snprintf_P(log, sizeof(log), PSTR("I2C: %s found at address 0x%x"), htustype, htuaddr); @@ -240,7 +262,8 @@ void htu_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) h = htu21_compensatedHumidity(h, t); dtostrf(t, 1, TEMP_RESOLUTION &3, stemp1); dtostrf(h, 1, HUMIDITY_RESOLUTION &3, stemp2); - snprintf_P(svalue, ssvalue, PSTR("%s, \"%s\":{\"Temperature\":%s, \"Humidity\":%s}"), svalue, htustype, stemp1, stemp2); + snprintf_P(svalue, ssvalue, PSTR("%s, \"%s\":{\"Temperature\":%s, \"Humidity\":%s}"), + svalue, htustype, stemp1, stemp2); *djson = 1; #ifdef USE_DOMOTICZ domoticz_sensor2(stemp1, stemp2); @@ -252,16 +275,17 @@ String htu_webPresent() { String page = ""; if (htutype) { - char itemp[10], iconv[10]; + char stemp[10], sensor[128]; - snprintf_P(iconv, sizeof(iconv), PSTR("°%c"), (TEMP_CONVERSION) ? 'F' : 'C'); float t_htu21 = htu21_readTemperature(TEMP_CONVERSION); float h_htu21 = htu21_readHumidity(); h_htu21 = htu21_compensatedHumidity(h_htu21, t_htu21); - dtostrf(t_htu21, 1, TEMP_RESOLUTION &3, itemp); - page += F("HTU Temperature: "); page += itemp; page += iconv; page += F(""); - dtostrf(h_htu21, 1, HUMIDITY_RESOLUTION &3, itemp); - page += F("HTU Humidity: "); page += itemp; page += F("%"); + dtostrf(t_htu21, 1, TEMP_RESOLUTION &3, stemp); + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_TEMP, htustype, stemp, (TEMP_CONVERSION) ? 'F' : 'C'); + page += sensor; + dtostrf(h_htu21, 1, HUMIDITY_RESOLUTION &3, stemp); + snprintf_P(sensor, sizeof(sensor), HTTP_SNS_HUM, htustype, stemp); + page += sensor; } return page; }