NRZ-2024-134-B5 * Go back to Arduino Core 2.7.4 as a workaround for stalling OTA downloads * Change setting of compiler optimization to -O3 for better performance * Replace LetsEncrypt DST Root CA X3 with ISRG Root X1 certificate * Language updates and fixes * Add displaying errors with config parsing and network connections * Minor bug fixes and cosmetics * Update Github Actions CI workflow NRZ-2021-134-B4 * Added Tera Sensor Next PM fulltime support * Added Piera Systems IPS-7100 support * Implement power save feature (experimental) * Minor improvements to config page * Decrease GPS update interval * Update various translations * Contribution.md: Added Information of all known I2C addresses and the devices behind that the firmware is aware of * more SCD30 info on status page * Some ciphers removed (MD5,3DES) * Upgrade to Arduino Core 3.0.1 * Libraries updated * changes for compatibility to latest ArduinoJSON * more BearSSL ciphers enabled (ECDSA certs, AES-GCM-SHA + CHACHA20 ciphers) * SCD autocalibration status now shown on status page NRZ-2020-134-B3 * support for SCD30 added NRZ-2020-134-B2 * dew point added * pressure at sea level added * additional languages (via DeepL) * static IP config NRZ-2020-134-B1 * next beta version NRZ-2020-133 online since 2020-11-29 * same as NRZ-2020-132-B3 NRZ-2020-132-B3 * Move favicon.ico fetching last NRZ-2020-132-B2 * Adjust /metrics to be OpenMetrics protocol compatible * Track last Wifi disconnect reason in Device Status page * Rework SDS011 response handling to remain non-blocking NRZ-2020-132-B1 * next beta version NRZ-2020-131 online since 2020-10-17 * same as NRZ-2020-130-B11 NRZ-2020-130-B11 * Remove floating point subroutines from IRAM (related to #789) * Show clearly in webui whether we have BME280 or a BMP280 NRZ-2020-130-B10 * Show GPS date+time also as datetime timestamp * Reduce loop size (Related to #789) NRZ-2020-130-B9 * WebUI Styling refresh * GPS date+time is now sent as datetime timestamp NRZ-2020-130-B8 (online/beta Sep 5th) * Update ArduinoCore to 2.7.4 to fix WPA downgrade issue (CVE-2020-12638) NRZ-2020-130-B7 * Disabled Tera Sensor Next PM from build until conflicts with other sensors can be resolved * Fix crash on enabling OLEDs (Fixes #671) * Disabled IPv6 for stable release * Force I2C clock to 100k for better compatibility with sensors (Fixes #735) * Update ArduinoJson to 6.16.1 NRZ-2020-130-B6 * show new ID * rebranding to Sensor.Community * Tera Sensor Next PM sensor added NRZ-2020-130-B5 * Slovak translations added NRZ-2020-130-B4 * Prevent password leakage in configuration dialogs * Change default password for webpage auth to "" * Ignore measurement interval settings below 5s * Track API sending errors for each API separately NRZ-2020-130-B3 * Serial debug output on webpage * Refactoring NRZ-2020-130-B2 * Avoid crash on WiFi network scan failure (Related to #615) * Only do OTA after sensor measurements are finished * Remove uninitialized memory read in NTP handling * Accept larger flash sizes also as compatible * Switch to a tab based configuration page * Skip initialization of display's when not configured * Delay OneWire initialization until configured * Fix bulgarian translation error (Fixes #622) * Fix hang on BME/P280 measurement read * Connect up to wifi channel 13 if locale is not EN (Fixes #626) * Use IPv6 LWIP (Related to #605) * Add configurable temperature correction (Fixes #607) NRZ-2020-130-B1 * next beta version NRZ-2020-129 online since 2020-01-07 * same as NRZ-2019-128-B8 (+build date is shown in header) NRZ-2019-128-B8 * Improve NTP handling and status reporting * Fix weird placement of "save and restart" button in config * Fix handling of short intervals with SDS011 (Fixes #426) * Erase SDK config on OTA restart (Fixes #590) * Add link to report an issue to web ui * Add self-test * Split less recommended sensors into a subsection of config page (Fixes #171) NRZ-2019-128-B7 * More introspection status for OTA and sending errors * Resorting Language selection alphabetically * Disable language and beta selector when OTA is disabled NRZ-2019-128-B6 * Fix crash on device status page in some locales NRZ-2019-128-B5 * Avoid calling wifi off on startup which seems to cause some issues (Fixes #598) NRZ-2019-128-B4 * perfom blocking reads on SDS011 serial responses * Add Device Status webpage * Set DHCP hostname to the firmware config wifi name (Fixes #595) * Polish translation fixes * Mark potentially destructive actions with red highlight (idea from nettigo FW) * Add support for LCD 2004 on I2C 0x3F address NRZ-2019-128-B3 * Fix startup hang on wifis without NTP access (#580) * Update SHT3.x to 1.1.6 NRZ-2019-127-1 (intermediate version) online since 2019-12-03 * same as NRZ-2019-127-B2 NRZ-2019-128-B2 * Initialize MDNS after wifi to restore functionality NRZ-2019-128-B1 * next beta version NRZ-2019-127 online since 2019-12-02 * same as NRZ-2019-126-B9 NRZ-2019-126-B9 * Update to Arduino Core 2.6.2 to fix WiFi stability issues NRZ-2019-126-B8 * Updated translations * Collect error counters * Serbian localization added NRZ-2019-126-B7 * Updated italian translations - thanks stewecar * Fix instabilities in SDS011 measurement decoding NRZ-2019-126-B6 * Read SDS011 version once on startup * Discard power-on self-test dust sensor measurements * Do not store WiFi station credentials in SDK protected flash * Switch to ArduinoJson 6.13 * show SDS011 manufacturing date in values HTML page * Update to Arduino Core 2.6.1, including many fixes for SSL, WiFi and SoftwareSerial * Update SHT3.x to 1.1.5 NRZ-2019-126-B5 * Rename Luftdaten.info to Sensors.Community everywhere * Report the submitted wifi signal quality level in the web UI * Keep WiFi information persistent over restarts * Perform WiFi Tx power calibration on boot NRZ-2019-126-B4 * Try to configure system time from 3 different NTP sources * When system time is invalid, disable TLS verification * Use TLS for Feinstaub-App reporting NRZ-2019-126-B3 * OTA updater validates loader checksums prior update * Maintain config setting backups and fall back if current version is corrupt * Code cleanups * Fix regression in Humidity Reading of BME280 * Fix regression in logging to Feinstaub App NRZ-2019-126-B2 * Switch to Arduino Core 2.5.2 * Switch OTA updater to use TLS with server certificate verification * SSL server certificate verification for Madavi, Sensor Community and OpenSensemap * Update ESPSoftwareSerial to 5.0.4 * Add support for Sensirion SHT3x Temperature/Humidity sensors * Code size optimisations * Fix pressure precision of BMP/BME280 NRZ-2019-126-B1 * next beta version NRZ-2019-125-B1 * Revert unintentional default senseboxid change NRZ-2019-125 online since 2019-10-31 * same as NRZ-2019-124-B10 (+ renaming PM value names for SDS30) NRZ-2019-124-B10 * Persist Wifi configuration in flash * Rewrite config using current format when version changes * Fix truncation of wifi password * prometheus endpoint: esp prefix was missing NRZ-2019-124-B9 * Handle Si7021 for HTU21d replacement * Fix GPS regression NRZ-2019-124-B8 * bug fixes * translation updates NRZ-2019-124-B7 * Fix update checking interval NRZ-2019-124-B6 * noise sensor added * Sensirion SPS30 added * option to flip OLED output * Fix crash on selecting available networks in AP mode * add options to disable display of wifi and device infos * Code size optimisations * Serve config pages incrementally to avoid running out of memory * Write more compliant config JSON * Advertise as http://airrohr-$espid.local/ in AP mode * BMP280/BME280 sensors are merged into one implementation * Switch OTA updater two a two-Stage implemenation allowing more than 512kb of sketch size * Fix memory corruption when using displays * Reduce memory consumption in data sending which allows keeping the HTTP server available NRZ-2019-124-B5 * some comments removed * Var2Json casts optimized * new name "airRohr" * new logo (license CC0) NRZ-2019-124-B4 * wrong variable use in PMSx003 function * showing text on wrong LCD display NRZ-2019-124-B4 * SSL options for custom and influxdb added NRZ-2019-124-B3 * merged changes for aircms support * some optimizations of html code * changes for support of ESP32 (not working completely until now) NRZ-2018-124-B2 * redefine function overload NRZ-2018-124-B1 * code cleanup NRZ-2018-123 online since 2018-12-23 * set CPUFreqency to 160MHz (for faster TLS handling) NRZ-2018-123 online since 2018-12-23 * same as NRZ-2018-122-B1 NRZ-2018-122-B1 * try NTP server given by dhcp first * try router/gateway as NTP server as third * handle ntp time setting * turkish translation added * compile with Arduino esp8266 lib 2.4.2 NRZ-2018-121C online since 2018-12-03 * disable HTTPS as default NRZ-2018-121B online since 2018-12-03 * added danish translation * limit SNTP retries to 15 seconds NRZ-2018-121B online since 2018-12-03 * back to Arduino esp8266 lib 2.3 NRZ-2018-121A online since 2018-12-03 * disabled cert verify NRZ-2018-121 online since 2018-12-02 * same as NRZ-2018-121 NRZ-2018-120-B1 * added first parts for change to BearSSL * changed SSL as default to non-SSL NRZ-2018-117 online since 2018-11-19 * same as NRZ-2018-116-B1 NRZ-2018-116-B1 * disabling cert verification, seems to need too long, blocking server resources NRZ-2018-115 online since 2018-11-19 * same as NRZ-2018-114-B2 NRZ-2018-114-B2 * more code cleanup * replacing default Arial_MT font with Roboto_Mono_9 NRZ-2018-114-B1 * going back to beta * more code cleanup * reactivated sending as CSV to serial NRZ-2018-113 NOT published * same as NRZ-2018-112-B5 NRZ-2018-112-B5 * more merged pull requests (fmeerkoetter), i.e. move font to own include file * move ca cert to own include file NRZ-2018-112-B4 * merged pull requests (fmeerkoetter), i.e. refactoring some functions, memory optimizations * added translations NRZ-2018-112-B3 * changing config to restart after every change/save * translations (PROGMEM var names from german to english) NRZ-2018-112-B3 * verify certificates for HTTPS connections to Luftdaten.info and Madavi.de API (works only with Let's Encrypt certs) * memory optimizations NRZ-2018-112-B2 * merged pull requests (fmeerkoetter) typedef, duplicate code in function * same read function for all Plantower sensors NRZ-2018-112-B1 * setting PHY layer to 802.11n in station mode * switching to Arduino EXP8266 library 2.4.2 (see README.md) * added cert validation for API requests (Letsencrypt only at the moment) NRZ-2018-111 online since 2018-09-20 * same as NRZ-2018-110-B11 NRZ-2018-110-B11 * config for sending data to "Feinstaub App" server * corrected removing hidden SSIDs from wifi list NRZ-2018-110-B10 removing debug output of wifi password NRZ-2018-110-B9 * removing hidden SSIDs from wifi list * another change for Captive portal support for iOS devices NRZ-2018-110-B8 * changing back to previous version of Captive portal for iOS NRZ-2018-110-B7 * adding SSL switch for API server (Luftdaten.info, Madavi.de, OpenSenseMap) * changes added to avoid message "Initialize indices array with constant value" in some IDEs * disable caching of config page, just in case that the client has received a blank page before * modified Captive portal for iOS devices NRZ-2018-110-B6 * shorter config page in AP mode * removing 'save' buttons except the last on config page * deleting password for AP mode (for WPA/WPA2) wasn't possible NRZ-2018-110-B5 * captive portal should work with iOS devices also * setting PHY layer 802.11g and max. signal strength just to be sure * removing some unneeded wifi connects after wifi config NRZ-2018-110-B4 * scan for wifi networks before going to config mode to avoid wifi mode changes * select channel with lowest signal for AP mode NRZ-2018-110-B3 * cosmetic changes to get rid of some compiler warnings NRZ-2018-110-B2 * changed deprecated ArduinoJSON function calls NRZ-2018-110-B1 * setting wifi mode to AP only in config mode NRZ-2018-109 online since 2018-09-04 * same as NRZ-2018-108-B1 NRZ-2018-108-B1 * wrong string in BMP280 function NRZ-2018-107 online since 2018-08-09 * same as NRZ-2018-106-B1 NRZ-2018-106-B1 * OLED SH1106 only showing text if SSD1306 if enabled * LCD2004 only showing text if LCS1602 is enabled NRZ-2018-105 online since 2018-08-07 * same as NRZ-2018-104-B12 NRZ-2018-104-B12 * config page didn't load before the first measurement seems it was a memory problem removing some unneeded html reduced size to 9,5kByte, page is loading NRZ-2018-104-B11 * wrong comparison in influx config * combining pm sensor functions (start, stop, continuous mode) NRZ-2018-104-B10 * one definition per interface (I2C, one wire, serial sensors, serial gps) NRZ-2018-104-B9 * added missing '/' in path for API Madavi.de NRZ-2018-104-B8 * switched to actual version of DHT library as local copy with changes for ESP8266 timing and pins NRZ-2018-104-B7 * wrong comparison for default opensensemap box id NRZ-2018-104-B6 * changed string constants to defines * removed unneeded string conversions * more strings moved to flash NRZ-2018-104-B5 * unneeded source code removed NRZ-2018-104-B4 * freeing some RAM and flash memory after adding SH1106 OLED NRZ-2018-104-B3 * handling of special chars in config json and config page (i.e ', ", \) * added support for OLED displays with SH1106 chipset * some space optimisations NRZ-2018-104-B2 * sending signal strength to InfluxDB * optimizations in reading PM sensors * disable sending data to OpenSenseMap with 'default' BoxID * disable sending data to InfluxDB at Luftdaten.info (only used internally) * character ' in text input fields (i.e. wifi SSID) should be displayed correctly NRZ-2018-104-B1 * double quote in config strings (i.e. passwords) should work now NRZ-2018-103 online since 2018-06-02 * same as NRZ-2018-102-B2 NRZ-2018-102-B2 * added Prometheus endpoint * optimizing flash and memory usage NRZ-2018-102-B1 * test with DHT sensor library 1.1.1 instead of 1.3.0 NRZ-2018-101 * same as NRZ-2017-100-B16 NRZ-2017-100 beta * optimizing display function: more than one 'screen' for infos * added dependencies for OneWire * added wiring for new sensors to Readme.md * added support for Honeywell PM sensor * enable configurable usage of beta firmware * removing Arduino Feather code * version B4: right align values * version B4: added display of DS18B20 and HTU21D values * version B5: wpa2 password can be configured for sensor in AP mode * version B5: more info to sensors on config page * version B5: some flash memory optimizations * version B5: parseable data.json before first measurement * version B5: GPS data on value page * version B6: added swedish translations * version B6: error in start/stop commands corrected * version B7: showing GPS data on displays * version B7: wrong output on config save corrected * version B7: double date/time on values page corrected * version B7: changed codefor logo to png * version B8: new TinyGPS++ 0.94a -> 0.95 * version B8: larger buffer for GPS SoftSerial * version B8: removed INPUT_PULLUP for DHT22 * version B9: wrong value for signal quality was shown on display * version B9: 'memory leak' removed * version B9: added LICENSE.md * version B10: reduced amount of NMEA messages * version B10: don't fall back to plain HTTP on WPA2 wifi * version B10: larger buffer for serialGPS * version B11: new languages RU and CZ * version B11: changed lib for HTU21D from Sparkfun to Adafruit * version B11: added LCD2004 display * version B11: debug infos on LCD displays * version B11: changed BME280 to forced measurements to get more accurate temperature values * version B11: corrected error in sending HTU21D data to luftdaten.info API * version B12: switched to ESP8266 library/extension version 2.4 (including KRACK patch) * version B13: added new Arduino Options, CodeFor.de logo removed and other unneeded binary data removed, problem with lwIP v2 solved * version B14: setting 'continuous mode' for pm sensors * version B15: test of esp8266 lib 2.4.1 with prebuilt lwIP 1.4 * version B16: changed back to esp8266 lib 2.3.0 NRZ-2017-099 online since 2017-09-10 * time since last measurement counts in wrong direction NRZ-2017-098 online as update since 2017-09-06 * added support for PMS5003, PMS6003 * portuguese version added * reenabled masked passwords * refactored sending to luftdaten.api * time to first and time since last measurement had shown impossible values NRZ-2017-097 online since 2017-08-21 * basic auth password was saved as stars on saving config again * some minor changes to reduce flash memory usage NRZ-2017-095 online as update since 2017-08-17 * added support for HTU21D * added support for DS18B20 * added support for BMP280 * added support for PMS1003, PMS3003, PMS7003 * masked wifi password in config page NRZ-2017-092 online as update since 2017-06-24 * added time of first measurement to value page * timeout for wifi connect set to 20 seconds, some networks seem to need more than 10 seconds * time between measurements and timeout of wifi config mode now configurable NRZ-2017-090 online as update since 2017-06-17 * list of available wifi networks implemented as ajax request to speedup config page NRZ-2017-089 online as update since 2017-06-06 * wifi strength always shown with 100% NRZ-2017-087 online as update since 2017-06-05 * emergency update, gzip compressed svg logos not working on all sensors NRZ-2017-086 online as update since 2017-06-02 * error in calculating median of PM values corrected * italian and dutch version added NRZ-2017-085 online as update since 2017-06-02 * gzip compressed svg logos, to save memory * removing highest and lowest value from PM value array for mean calculation