# WiFiThermostat - Changelog ## 0.6.0 2020-01-13 * added NTP time sync + config page * added simple logging function which replaces most Serial.print()'s and can send via Serial, MQTT and WebSocket * added WebSocketServer and simple web console (experimental) * TCP port 81 * for basic security accessible only with valid session cookie which is generated on load of /console page * can send commands similar to MQTT and Serial to device * shows log output as long as the connection is up * access system information at http://[IP_ADDR]/sysinfo in JSON format * moved HTML contents to .h files * lots of smaller and bigger changes and improvements ## 0.5.0 2020-01-09 * preparations/changes for building/development using VSCode/PlatformIO * exchanged PersWiFiManager 5.0.0 library to my own forked version, PersWiFiManagerExt 1.0.0, with extended functionality: * AP auto disable after timeout, tries reconnecting a configured WiFi after that * AP only comes up at first disconnect or if no connection can established immediately * 2 different WiFi setups * cyclic connection checks and automatic (re-)connection handling preferring WiFi-1 * auto-reboot after timeout if no WiFi can be connected * HTTP basic authentication for API and config-page (if admin user/password are set they are now mandatory also here) * non-blocking mode as default * added 'Set Reduction Temps' to web interface, where the target temperatures for the reduction modes can be changed easily (former they were in a configuration page) * far improved configuration handling, now uses structs for better clarity * added functionality to save states to MQTT Retained messages instead of flash (configurable) * 'delete' function on disable, which sends empty retained messages out to delete the retained flag on the broker * added configuration MQTT Retained Sensors (former Retained option is now only for states output) * 'delete' function on disable, which sends empty retained messages out to delete the retained flag on the broker * added configuration for MQTT publish intervals (Interval States, Interval Sensors) * reduces MQTT publishing by far. Normally a publish will now occur only on changed data if retained flag is set. * moved some more code away from main .ino to functions * config commands now are also case-insensitive via serial (before that only via MQTT) * improved web configuration pages * WiFi configuration now fully integrated * clearer sections * most parameters have a description now * not all configuration pages do restart on save directly any more, only the ones where it is important * added restart note to web interface when a configuration-set was changed, which does not trigger a restart immediately * added automatically created device name, used as SSID in AP-mode * improved debug information on serial, removed unneccessary outputs * if firmware compiled in DEBUGMODE a note is displayed on web interface (cause it reveals saved passwords on serial in this mode...) * better/saver restart-function * password protected /update function (OTA Firmware Update) if admin user credentials are set * fixed many bugs * some arrays could be accessed out of bounds eventually * sprintf used wrong place holder for variable type * compare of unsigned and signed ints * many other minor and major issues not worth mentioning :-) * updated parts of documentation ## 0.4.0 2019-01-04 * updated ESP8266 Arduino Core to v2.6.3 * updated LiquidCrystal_I2C library to v1.1.3 (former version had compatibility issues with core 2.6 as it seems) https://github.com/johnrickman/LiquidCrystal_I2C/releases * updated DHT-sensor-library (Adafruit) to v1.3.8 * updated ArduinoJson library from 5.13.0 to 6.13.0, which includes breaking changes, so some code had to be changed as described here: https://arduinojson.org/v6/doc/upgrade/ * updated PersWiFiManager library to v5.0.0 * completely redesigned web interface with new features * (multi)user and admin mode for web interface * fixed/improved: HTTP authentication handling * improved MQTT (re)connection handling and heartbeat feature * removed Domoticz support completely * code cleanups ## 0.3.3 2019-11-05 * DHT sensor reading - retry if failed (does not fix issue) * improved temperature sensor timeout handling * updated Adafruit DHT22 sensor lib to 1.3.7 - that seems to have finally fixed the sensor reading issue * renamed "misc" to "scheduler" as it contains only timing/scheduling functions ## 0.3.2 2019-10-18 * fixed/improved: HTTP authentication handling * added: device hostname (announced via DHCP) can now be configured * fixed: restart function on web interface * added: show AP SSID + password on display for some seconds when AP mode is entered ## 0.3.1 2019-10-16 * fixed (issue #1): LCD - outside temp - wrong alignment on 1.1 digit values * added: configurable labels for inside and outside temperature ("I" and "O" in EN or "A" in DE) * fixed (issue #2): when (new) configuration values are not yet saved, initial values from source code are overwritten with blanks (only for most important values, not for MQTT topics, servers, users etc) ## 0.3.0 2019-10-11 * split "mode" to "mode" and "preset", changes in nearly all source files * add In+Out Temperature display (without humidity) without toggling on LCD line 1 * add publish topic "presetName" and "presetHA", where presetHA returns "none" for default preset and the name for the rest * add configuration for preset names, off-message, option for non toggling temp display (conf2 page) * minor fixed in http api and Web-IF * fixes/improvements in MQTT handling (subscribe to less topics than before using wildcard) * restart function: when holding down MODE button for >4s, display shows "Restart?". Restart is executed when: * MODE button is keeped holding * MODE button is pressed/held again as long as the "Restarting?" message is displayed * return to default operation mode when + or - button is pressed * changed position of preset mode indicator - now in LCD line 2 after the set temp * added "flame" symbol in LCD line 2, shown when the heating is active * added connection symbol (also LCD line 2), depending on received MQTT HEARTBEAT messages * added fullscreen messages for WiFi connect and MQTT connect * shows IP on startup and successful WiFi connection * shows AP mode notification and SSID on unsuccessful WiFi connection * shows to which MQTT broker we are connected if connecting was successful * added halfscreen (line 2) notifications - used for displaying the full name of the preset when using the MODE button * fixed http authentication ## 0.2.2 2019-05-31 * Home Assistant direct support (setTemp and setMode topics, real name used in setMode, mode names are configurable) * added MQTT connection message on LWT topic * default MQTT_HEARTBEAT_MAXAGE 180000 (former 12000) * updated PubSubClient to 2.7 (now included in src due to changed parameters) * minor improvements at MQTT connecting * added additional publish topic for PIR sensor (configurable) * bugfixes ## 0.2.1 2018-02-28 * added second reduction mode with different set temperature * MQTT reconnect now tries again every 5 min after 10 fails, finally restarts MCU on 20 unsuccessful retries ## 0.2.0 2018-02-16 * improved MQTT reconnection management with heartbeat and force-reconnect * improved MQTT callback function * improved overall stability * added correction value for set point temperature * added some defines for default values * added http control api with token * added mqttReconnect http call * bugfixes * some documentation Important: for now compiled using Arduino 1.8.5 with ESP8266-Arduino core 2.4.0-rc2, as WiFi (re)connection does not work properly in release 2.4.0 (spent many hours on that)!! ## 0.1.3 2018-02-08 * button handling now uses library r89m/PushButton.h * added support for external PIR motion sensor, can be configured to enable display backlight on movement, pushes status to Domoticz and MQTT * lots of code improvements * removed unused libraries, added library overview in README.md, included only used libraries * added some initial description text in README.md * added heating switch device - send to domoticz/in * improved MQTT reconnect behavior. Retry every 15s if 1-3 connnects failed and just every 5 min if more to avoid blocking. ## 0.1.2 bugfixes ## 0.1.1 feature complete for now, first alpha ## 0.1.0 initial version, not yet feature complete