Max Prokhorov
c18490cc4a
PIO: pass APP_REVISION via extra scripts ( #1946 )
* utils/version: use git description token as version, add memoization
* pio: move extra scripts to a separate directory
* pio: add -DAPP_REVISION=... as local build flag
5 years ago
Max Prokhorov
13c1a19328
Home Assistant updates ( #1885 )
- remove "platform" key, see #1440 . this implicitly sets schema to "basic". pending some other clean-up regarding json and mqtt queueing, other schema can be added down the line
- updated ws module queue elem to capture callbacks list, allows to pass more than one callback (for example, when they are generated on the fly as lambdas, see ha wsPost usage)
- modified method to send ha config to use global ws queue, fix #1762 problem with empty topics and ensure json allocation is consistent.
- use existing defines to set mqtt payload options. amend #1085 , #1188 , #1883 to use the set payload value. drop HOMEASSISTANT_PAYLOAD... defines.
- update MQTT_STATUS_ONLINE/OFFLINE and RELAY_MQTT_ON/OFF with runtime configuration
- filter payload strings so that the resulting yaml value is not interpreted as bool (python True, False)
- helper method for settings to streamline string values manipulation
5 years ago
Max Prokhorov
ef153b4eff
Core 2.6.0+ fixes ( #1852 )
* Core 2.6.0+ fixes
* fix env -> config, run travis04 job
* don't duplicate free heap in frag data, use single stats struct
* fix dtostrf warnings, bump buffer sizes
* ...and even less words for fragmentation stat
5 years ago
Max Prokhorov
21423431ce
Fixed size json payload & other WS bugfixes ( #1843 )
- update every dynamicjsonbuffer with fixed size constructor argument
- change to ws callback registration to use a class builder (just cosmetic)
- test multiple ws data callbacks for each module
- remove some of the static strings in favour of ws data callback
- improve sensor ws callback data size, remove duplicated strings
- use static buffer in wsDebugSend
- postpone wsSend until loop, implement wsPost to allow other modules to queue message callbacks. remove Ticker based ws callbacks for data
- update WebUI files
5 years ago
Max Prokhorov
9156eb1477
Experimental support of HTTPUpdate for OTA ( #1751 )
- add httpupdate ota impelementation
- move async ota into a separate module
- support bearssl & axtls through wificlientsecure
- allow to disable arduino ide ota module
5 years ago
Max Prokhorov
bd00758162
Thingspeak: async client fixes ( #1806 )
* Thingspeak: async client fixes
- remove memory management in async client callbacks
- instead of global one, reference asyncclient from callback argument
- transfer temporary data-buffer to the global scope, avoid accidental String copy
- implement strnstr to search onData payload
* fixup format strings
* update retry time each attempt
* start with default attempts value
* trying to work with lwip2-536
* count time from last request
* promptly run flush
5 years ago
Max Prokhorov
0dbfce1444
Show Core revision as hex string ( #1786 )
5 years ago
Max Prokhorov
dfd3a14abc
Terminal: heap fragmentation stat ( #1740 )
* debug: heap fragmentation stat
* Rework method detection
- return check integral type as a result of detection instead of method type
- type-tagging instead of enable_if
* fix alias
* typo
* only need one bool_type instance
* Move heap debug into HeapStats header
- don't show fragmentation stats on the first call
- prettify fragmentation display
- pack function params into helper struct
- naming
* pass external flag instead
* add missing prototypes
5 years ago
Xose Pérez
2cd7a8717a
Upgraded NoFUSS support to 0.3, added build header to request, fixed bug in device string size
5 years ago
Luciano Andrade
55b9f2a52f
Send Vcc, LoadAvg and Ssid to influxdb ( #1714 )
5 years ago
Max Prokhorov
820d8c4be8
Initial implementation of RTCMEM storage ( #1420 )
- store system crash counter and reset reason in rtcmem instead of eeprom
- store relay state mask in rtc in addition to the eeprom
- store relay state in eeprom only when boot mode requires it
- simplify relay state mask calculation / reading using std::bitset
- light state save and restore
- energy total save and restore
5 years ago
Max Prokhorov
3f37556cdd
Safer loop delay default ( #1574 , #1631 , #1699 )
* Call delay() after callbacks
* Use safer loop delay value
5 years ago
Xose Pérez
175fcbf6cf
Support for WPS in core build. Using UNUSED macro to prevent warnings
5 years ago
Xose Pérez
546c8f09b2
Update Copyright notice
5 years ago
Max Prokhorov
8de61598f6
Fix ESP.eraseConfig() when using Core 2.3.0 ( #1595 , #1616 )
5 years ago
Dmitry Blinov
af07494f00
Add thermostat module
5 years ago
Max Prokhorov
5db1523e20
Fix warning
5 years ago
Max Prokhorov
3c1cfbfdbe
Set wifi sleep mode from settings
5 years ago
Max Prokhorov
a02eb5c4ab
Revert loopDelay dependency on wifi sleep mode
5 years ago
Xose Pérez
31195ba3b6
Removing loop delay if WIFI is not set to sleep, reducing it to 1ms otherwise ( #1541 )
5 years ago
Max Prokhorov
75ab7a844a
Fix HEARTBEAT_REPORT_DESCRIPTION typo
5 years ago
Xose Pérez
f6b8baf37d
Adding description field to web UI, reporting it via MQTT ( #1523 )
5 years ago
Martins Ierags
465b5230ff
Configure Heartbeat & option HEARTBEAT_REPEAT_STATUS:
- Heartbeat mode and interval configuration added to WebUI ADMIN page
- New option HEARTBEAT_REPEAT_STATUS: on device startup full heartbeat information and after HEARTBEAT_INTERVAL only STATUS report.
- Enhanced first heartbeat message - on device startup it will send heartbeat after ntpSynced will be true to get device time.
P.S. Code is tested. Web part is not compiled, and not tested. I hope it will work :)
6 years ago
Xose Pérez
64c8cf313d
Added API entry points for RFBridge module ( #1407 )
6 years ago
Max Prokhorov
59685150b4
Runtime heartbeat configuration ( #1406 )
6 years ago
BuildTheRobots
1d50e3cc2f
Add RSSI to InfluxDB heartbeat ( #1400 )
6 years ago
Xose Pérez
88a7076ad3
Report SSID with heartbeat messages
6 years ago
Max Prokhorov
004a485e6f
Defer restart until next loop
6 years ago
Max Prokhorov
f8cb3d12f3
Show sector info in EEPROM command
6 years ago
Xose Pérez
620fe39122
Change copy in heap message
6 years ago
Xose Pérez
6fee2f1f9f
Avoid EEPROM commits on callbacks ( #1214 )
6 years ago
Xose Pérez
daf7864212
Fix issue when SPIFFS_SUPPORT is enabled ( #1225 )
6 years ago
Xose Pérez
2b9a7341c3
Replace HEARTBEAT_ENABLED by HEARTBEAT_MDE allowing disable, single heartbeat on MQTT connect or repeat (default) ( #1196 )
6 years ago
Max Prokhorov
ed3e24ff4b
Inline getFreeStack and mention 2.5.0 helper method
6 years ago
Max Prokhorov
d463d7cfdd
Proper cont_t name for core 2.4.2 and higher
6 years ago
Xose Pérez
88e2ecccce
Improve memory info
6 years ago
Xose Pérez
d476557329
Move string parts to progmem
6 years ago
Xose Pérez
530f8a75f9
Fix build
6 years ago
Xose Pérez
1227994be3
Refactor info output
6 years ago
Xose Pérez
390d39d05e
Remove wifi info from File: dir, Node: Top, This is the top of the INFO tree.
This is the Info main menu (aka directory node).
A few useful Info commands:
'q' quits;
'?' lists all Info commands;
'h' starts the Info tutorial;
'mTexinfo RET' visits the Texinfo manual, etc.
* Menu:
Basics
* Common options: (coreutils)Common options.
* Coreutils: (coreutils). Core GNU (file, text, shell) utilities.
* Date input formats: (coreutils)Date input formats.
* Ed: (ed). The GNU line editor
* File permissions: (coreutils)File permissions.
Access modes.
* Finding files: (find). Operating on files matching certain criteria.
C++ libraries
* autosprintf: (autosprintf). Support for printf format strings in C++.
Compression
* Gzip: (gzip). General (de)compression of files (lzw).
Development
* SSIP: (ssip). Speech Synthesis Interface Protocol.
* Speech Dispatcher: (speech-dispatcher).
Speech Dispatcher.
* libffi: (libffi). Portable foreign-function interface library.
DOS
* Mtools: (mtools). Mtools: utilities to access DOS disks in Unix.
Editors
* nano: (nano). Small and friendly text editor.
General Commands
* Screen: (screen). Full-screen window manager.
GNU Gettext Utilities
* autopoint: (gettext)autopoint Invocation.
Copy gettext infrastructure.
* envsubst: (gettext)envsubst Invocation.
Expand environment variables.
* gettextize: (gettext)gettextize Invocation.
Prepare a package for gettext.
* gettext: (gettext). GNU gettext utilities.
* ISO3166: (gettext)Country Codes.
ISO 3166 country codes.
* ISO639: (gettext)Language Codes.
ISO 639 language codes.
* msgattrib: (gettext)msgattrib Invocation.
Select part of a PO file.
* msgcat: (gettext)msgcat Invocation.
Combine several PO files.
* msgcmp: (gettext)msgcmp Invocation.
Compare a PO file and template.
* msgcomm: (gettext)msgcomm Invocation.
Match two PO files.
* msgconv: (gettext)msgconv Invocation.
Convert PO file to encoding.
* msgen: (gettext)msgen Invocation.
Create an English PO file.
* msgexec: (gettext)msgexec Invocation.
Process a PO file.
* msgfilter: (gettext)msgfilter Invocation.
Pipe a PO file through a filter.
* msgfmt: (gettext)msgfmt Invocation.
Make MO files out of PO files.
* msggrep: (gettext)msggrep Invocation.
Select part of a PO file.
* msginit: (gettext)msginit Invocation.
Create a fresh PO file.
* msgmerge: (gettext)msgmerge Invocation.
Update a PO file from template.
* msgunfmt: (gettext)msgunfmt Invocation.
Uncompile MO file into PO file.
* msguniq: (gettext)msguniq Invocation.
Unify duplicates for PO file.
* ngettext: (gettext)ngettext Invocation.
Translate a message with plural.
* xgettext: (gettext)xgettext Invocation.
Extract strings into a PO file.
GNU organization
* Maintaining Findutils: (find-maint).
Maintaining GNU findutils
GNU Utilities
* dirmngr-client: (gnupg). X.509 CRL and OCSP client.
* dirmngr: (gnupg). X.509 CRL and OCSP server.
* gpg: (gnupg1). OpenPGP encryption and signing tool (v1).
* gpg-agent: (gnupg). The secret key daemon.
* gpg2: (gnupg). OpenPGP encryption and signing tool.
* gpgsm: (gnupg). S/MIME encryption and signing tool.
Individual utilities
* aclocal-invocation: (automake-1.15)aclocal Invocation.
Generating aclocal.m4.
* arch: (coreutils)arch invocation. Print machine hardware name.
* automake-invocation: (automake-1.15)automake Invocation.
Generating Makefile.in.
* base32: (coreutils)base32 invocation. Base32 encode/decode data.
* base64: (coreutils)base64 invocation. Base64 encode/decode data.
* basename: (coreutils)basename invocation. Strip directory and suffix.
* bibtex: (web2c)bibtex invocation. Maintaining bibliographies.
* cat: (coreutils)cat invocation. Concatenate and write files.
* chcon: (coreutils)chcon invocation. Change SELinux CTX of files.
* chgrp: (coreutils)chgrp invocation. Change file groups.
* chmod: (coreutils)chmod invocation. Change access permissions.
* chown: (coreutils)chown invocation. Change file owners and groups.
* chroot: (coreutils)chroot invocation. Specify the root directory.
* cksum: (coreutils)cksum invocation. Print POSIX CRC checksum.
* cmp: (diffutils)Invoking cmp. Compare 2 files byte by byte.
* comm: (coreutils)comm invocation. Compare sorted files by line.
* cp: (coreutils)cp invocation. Copy files.
* csplit: (coreutils)csplit invocation. Split by context.
* cut: (coreutils)cut invocation. Print selected parts of lines.
* date: (coreutils)date invocation. Print/set system date and time.
* dd: (coreutils)dd invocation. Copy and convert a file.
* df: (coreutils)df invocation. Report file system disk usage.
* diff: (diffutils)Invoking diff. Compare 2 files line by line.
* diff3: (diffutils)Invoking diff3. Compare 3 files line by line.
* dir: (coreutils)dir invocation. List directories briefly.
* dircolors: (coreutils)dircolors invocation. Color setup for ls.
* dirname: (coreutils)dirname invocation. Strip last file name component.
* du: (coreutils)du invocation. Report on disk usage.
* dvicopy: (web2c)dvicopy invocation. Virtual font expansion
* dvitomp: (web2c)dvitomp invocation. DVI to MPX (MetaPost pictures).
* dvitype: (web2c)dvitype invocation. DVI to human-readable text.
* echo: (coreutils)echo invocation. Print a line of text.
* env: (coreutils)env invocation. Modify the environment.
* expand: (coreutils)expand invocation. Convert tabs to spaces.
* expr: (coreutils)expr invocation. Evaluate expressions.
* factor: (coreutils)factor invocation. Print prime factors
* false: (coreutils)false invocation. Do nothing, unsuccessfully.
* find: (find)Invoking find. Finding and acting on files.
* fmt: (coreutils)fmt invocation. Reformat paragraph text.
* fold: (coreutils)fold invocation. Wrap long input lines.
* gftodvi: (web2c)gftodvi invocation. Generic font proofsheets.
* gftopk: (web2c)gftopk invocation. Generic to packed fonts.
* gftype: (web2c)gftype invocation. GF to human-readable text.
* groups: (coreutils)groups invocation. Print group names a user is in.
* gunzip: (gzip)Overview. Decompression.
* gzexe: (gzip)Overview. Compress executables.
* head: (coreutils)head invocation. Output the first part of files.
* hostid: (coreutils)hostid invocation. Print numeric host identifier.
* hostname: (coreutils)hostname invocation. Print or set system name.
* id: (coreutils)id invocation. Print user identity.
* install: (coreutils)install invocation. Copy files and set attributes.
* join: (coreutils)join invocation. Join lines on a common field.
* kill: (coreutils)kill invocation. Send a signal to processes.
* link: (coreutils)link invocation. Make hard links between files.
* ln: (coreutils)ln invocation. Make links between files.
* locate: (find)Invoking locate. Finding files in a database.
* logname: (coreutils)logname invocation. Print current login name.
* ls: (coreutils)ls invocation. List directory contents.
* md5sum: (coreutils)md5sum invocation. Print or check MD5 digests.
* mf: (web2c)mf invocation. Creating typeface families.
* mft: (web2c)mft invocation. Prettyprinting Metafont source.
* mkdir: (coreutils)mkdir invocation. Create directories.
* mkfifo: (coreutils)mkfifo invocation. Create FIFOs (named pipes).
* mknod: (coreutils)mknod invocation. Create special files.
* mktemp: (coreutils)mktemp invocation. Create temporary files.
* mltex: (web2c)MLTeX. Multi-lingual TeX.
* mpost: (web2c)mpost invocation. Creating technical diagrams.
* mv: (coreutils)mv invocation. Rename files.
* nice: (coreutils)nice invocation. Modify niceness.
* nl: (coreutils)nl invocation. Number lines and write files.
* nohup: (coreutils)nohup invocation. Immunize to hangups.
* nproc: (coreutils)nproc invocation. Print the number of processors.
* numfmt: (coreutils)numfmt invocation. Reformat numbers.
* od: (coreutils)od invocation. Dump files in octal, etc.
* paste: (coreutils)paste invocation. Merge lines of files.
* patch: (diffutils)Invoking patch. Apply a patch to a file.
* patgen: (web2c)patgen invocation. Creating hyphenation patterns.
* pathchk: (coreutils)pathchk invocation. Check file name portability.
* pktogf: (web2c)pktogf invocation. Packed to generic fonts.
* pktype: (web2c)pktype invocation. PK to human-readable text.
* pltotf: (web2c)pltotf invocation. Property list to TFM.
* pooltype: (web2c)pooltype invocation. Display WEB pool files.
* pr: (coreutils)pr invocation. Paginate or columnate files.
* printenv: (coreutils)printenv invocation. Print environment variables.
* printf: (coreutils)printf invocation. Format and print data.
* ptx: (coreutils)ptx invocation. Produce permuted indexes.
* pwd: (coreutils)pwd invocation. Print working directory.
* readlink: (coreutils)readlink invocation. Print referent of a symlink.
* realpath: (coreutils)realpath invocation. Print resolved file names.
* rm: (coreutils)rm invocation. Remove files.
* rmdir: (coreutils)rmdir invocation. Remove empty directories.
* runcon: (coreutils)runcon invocation. Run in specified SELinux CTX.
* sdiff: (diffutils)Invoking sdiff. Merge 2 files side-by-side.
* seq: (coreutils)seq invocation. Print numeric sequences
* sha1sum: (coreutils)sha1sum invocation. Print or check SHA-1 digests.
* sha2: (coreutils)sha2 utilities. Print or check SHA-2 digests.
* shred: (coreutils)shred invocation. Remove files more securely.
* shuf: (coreutils)shuf invocation. Shuffling text files.
* sleep: (coreutils)sleep invocation. Delay for a specified time.
* sort: (coreutils)sort invocation. Sort text files.
* split: (coreutils)split invocation. Split into pieces.
* stat: (coreutils)stat invocation. Report file(system) status.
* stdbuf: (coreutils)stdbuf invocation. Modify stdio buffering.
* stty: (coreutils)stty invocation. Print/change terminal settings.
* sum: (coreutils)sum invocation. Print traditional checksum.
* sync: (coreutils)sync invocation. Synchronize memory to disk.
* tac: (coreutils)tac invocation. Reverse files.
* tail: (coreutils)tail invocation. Output the last part of files.
* tangle: (web2c)tangle invocation. WEB to Pascal.
* tee: (coreutils)tee invocation. Redirect to multiple files.
* test: (coreutils)test invocation. File/string tests.
* tex: (web2c)tex invocation. Typesetting.
* tftopl: (web2c)tftopl invocation. TFM -> property list.
* time: (time). Run programs and summarize
system resource usage.
* timeout: (coreutils)timeout invocation. Run with time limit.
* touch: (coreutils)touch invocation. Change file timestamps.
* tr: (coreutils)tr invocation. Translate characters.
* true: (coreutils)true invocation. Do nothing, successfully.
* truncate: (coreutils)truncate invocation. Shrink/extend size of a file.
* tsort: (coreutils)tsort invocation. Topological sort.
* tty: (coreutils)tty invocation. Print terminal name.
* uname: (coreutils)uname invocation. Print system information.
* unexpand: (coreutils)unexpand invocation. Convert spaces to tabs.
* uniq: (coreutils)uniq invocation. Uniquify files.
* unlink: (coreutils)unlink invocation. Removal via unlink(2).
* updatedb: (find)Invoking updatedb. Building the locate database.
* uptime: (coreutils)uptime invocation. Print uptime and load.
* users: (coreutils)users invocation. Print current user names.
* vdir: (coreutils)vdir invocation. List directories verbosely.
* vftovp: (web2c)vftovp invocation. Virtual font -> virtual pl.
* vptovf: (web2c)vptovf invocation. Virtual pl -> virtual font.
* wc: (coreutils)wc invocation. Line, word, and byte counts.
* weave: (web2c)weave invocation. WEB to TeX.
* who: (coreutils)who invocation. Print who is logged in.
* whoami: (coreutils)whoami invocation. Print effective user ID.
* xargs: (find)Invoking xargs. Operating on many files.
* yes: (coreutils)yes invocation. Print a string indefinitely.
* zcat: (gzip)Overview. Decompression to stdout.
* zdiff: (gzip)Overview. Compare compressed files.
* zforce: (gzip)Overview. Force .gz extension on files.
* zgrep: (gzip)Overview. Search compressed files.
* zmore: (gzip)Overview. Decompression output by pages.
Kernel
* GRUB: (grub). The GRand Unified Bootloader
* grub-dev: (grub-dev). The GRand Unified Bootloader Dev
* grub-install: (grub)Invoking grub-install.
Install GRUB on your drive
* grub-mkconfig: (grub)Invoking grub-mkconfig.
Generate GRUB configuration
* grub-mkpasswd-pbkdf2: (grub)Invoking grub-mkpasswd-pbkdf2.
* grub-mkrelpath: (grub)Invoking grub-mkrelpath.
* grub-mkrescue: (grub)Invoking grub-mkrescue.
Make a GRUB rescue image
* grub-mount: (grub)Invoking grub-mount.
Mount a file system using GRUB
* grub-probe: (grub)Invoking grub-probe.
Probe device information
* grub-script-check: (grub)Invoking grub-script-check.
Libraries
* RLuserman: (rluserman). The GNU readline library User's Manual.
Man-pages
* Latex2man: (latex2man). Its Man-Page
Math
* bc: (bc). An arbitrary precision calculator language.
* dc: (dc). Arbitrary precision RPN "Desktop Calculator".
Network applications
* Wget: (wget). Non-interactive network downloader.
Programming
* flex: (flex). Fast lexical analyzer generator (lex
replacement).
* gnucash: (gnucash-design). Design of the GnuCash program
Programming Tools
* Gperf: (gperf). Perfect Hash Function Generator.
Software development
* Autoconf Archive: (autoconf-archive).
A collection of re-usable Autoconf macros.
* Automake: (automake-1.15). Making GNU standards-compliant Makefiles.
Sound
* SSIP: (ssip). Speech Synthesis Interface Protocol.
* Say for Speech Dispatcher: (spd-say).
Say.
* Speech Dispatcher: (speech-dispatcher).
Speech Dispatcher.
TeX
* DVI-to-PNG: (dvipng). Translating TeX DVI files to Portable Network
Graphics (PNG).
* DVI-to-Postscript: (dvips). Translating TeX DVI files to PostScript.
* Eplain: (eplain). Expanding on plain Tex.
* EpsPDF: (epspdf). Portable GUI- and command-line EPS/PS/PDF
conversion
* Kpathsea: (kpathsea). File lookup along search paths.
* LaTeX2e: (latex2e). Unofficial LaTeX reference manual.
* LaTeX2e-es: (latex2e-es). Manual de extraoficial de LaTeX.
* Naming TeX fonts: (fontname). Filenames for TeX fonts.
* TL-build: (tlbuild). TeX Live configuration and development.
* TeX Directories: (tds). A directory structure for TeX files.
* TeXdraw: (texdraw). A system for producing PostScript drawings
from TeX.
* Web2c: (web2c). TeX, Metafont, and companion programs.
* afm2tfm: (dvips)Invoking afm2tfm.
Making Type 1 fonts available to TeX.
* dvipng: (dvipng). A DVI-to-PNG translator.
* dvips: (dvips)Invoking Dvips. DVI-to-PostScript translator.
* kpsewhich: (kpathsea)Invoking kpsewhich.
TeX file searching.
* mf2pt1: (mf2pt1). PostScript Type 1 fonts from Metafont source.
* mktexfmt: (kpathsea)mktex scripts.
Format (fmt/base/mem) generation.
* mktexlsr: (kpathsea)Filename database.
Update ls-R.
* mktexmf: (kpathsea)mktex scripts.
MF source generation.
* mktexpk: (kpathsea)mktex scripts.
PK bitmap generation.
* mktextex: (kpathsea)mktex scripts.
TeX source generation.
* mktextfm: (kpathsea)mktex scripts.
TeX font metric generation.
Text creation and manipulation
* Diffutils: (diffutils). Comparing and merging files.
* M4: (m4). A powerful macro processor.
* grep: (grep). Print lines matching a pattern.
* sed: (sed). Stream EDitor. command. Use * SSID MODE CHAN RATE SIGNAL BARS SECURITY to get current connections
6 years ago
Xose Pérez
dd12251e43
Do not quote numbers in MQTT JSON payloads
6 years ago
Xose Pérez
8c8a268e5c
Added password check to telnet
6 years ago
Xose Pérez
5104b4ced3
Support for 2MB boards with 1MB SPIFFS and 4 sectors for EEPROM
6 years ago
Xose Pérez
412c5a672a
Show literal for webUI image in info ( #1142 )
6 years ago
Maxim Prokhorov
2879f58fb1
Show APP_REVISION value in terminal and web
6 years ago
Xose Pérez
3cd58e7f7c
Initial support for RFM69GW board
6 years ago
Xose Pérez
2a2579a7aa
Refactor module and sensor listings ( #896 )
6 years ago
Xose Pérez
f651f5f18d
Use double quotes in JSON for non-numeric values ( #929 )
6 years ago
Xose Pérez
33780edc5b
Better memory layout info, multi-sector memory layouts
6 years ago
Xose Pérez
a83115cb1b
Update API, backup EEPROM to last sector before OTA upgrades
6 years ago