* Fixes and updates for thermostat and display:
- Switch to original esp8266-oled-ssd1306 library
- Fixes and updates for thermostat and display
- Add display switching off after interval
- If THERMOSTAT_DISPLAY_SUPPORT enabled, then one click enable display, long click switch relay. This functionality also depend on fix for long click. See pull request https://github.com/xoseperez/espurna/pull/2172
* Move buttons definitions for display to dependencies.h
* Pin ThingPulse/esp8266-oled-ssd1306#3398c97
- continue #2140 , use the correct implementation for http requests not confuse code readers with our parsing
- fix data sender data duplication, run build test
- add note that this is actually really RAM heavy, some connection failures are not easily distinguishable from any code errors and are simply OOM.
also
- fix arduinoota prototype error when building without it (... ino2cpp, again)
- add comment about 160mhz into the platformio.ini
* Permit thingspeak urn edit
* Update thinkspeak.ino
* Update index.html
* Replace Host, Port, and URL with Address in Thingspeak
* Create AsyncThingspeak object
Create AsyncThingspeak object to contain the url of the component.
* replace pointer by class member
Thingspeak class improvement to answer Max's question:
why use a pointer when it can be a class member?
So now address parameter isn't a pointer anymore.
* Update Thingspeak address on post
* ntp: try using sntp app from lwip, drop ntpclientlib
* fix display
* thermostat: fix day and month getters
* test build sizes with scheduler
* use system timers for once-a-minute scheduling, no polling
* tick
* avoid timestamps, use tm
* drop utc rpn operator, add utc_hour and utc_dow
* try to build with old implementation too
* dep
* notify ws
* progmem
* cleanup types
* offset tm values by 1 to match existing schedules
* avoid using ntpclientlib with rpn
* test. show debug strings in sch
* fix secureclient
* consts, fix unsyncing when changing tz (and not triggering sntp after reinit for some reason)
* startup time in seconds
* same delay as lwip
* header
* assume build timestamp is unixtime
* cache server value
* fmt
* typo
* handle dhcp request
* rename
* web
* TZ.h
* add notice about what alias means
* fix disabling NTP_SUPPORT
* scheduled ticker
* same behaviour as old module
* rollback rpn dependency check, utc_ prefixes
* ...
* comments, refactor naming
* Sensors: refactor configuration
- move sensor implementaion to the .ino,
remove dependency undef / define from sensor files
- update test/build/sensor.h from SENSOR_SUPPORT
- allow to change sensor config variables externally
- `#include <...>` for global headers and libraries,
fix relative path for math library
* add missing sns <-> i2c dependency
* ledrelay should return relay_none as default
* rollback to original test header
* include debug header when requested (relative)
* debug: store boot log
* order
* roll single header
* hide when not implemented
* fix capacity check
* dependencies
* refactor names, can just use malloc
* settings formatting
* dbgBuf prefix
* show size
* release memory after buffer is displayed
* fix uptime unused warning, combine printer
* comments
* use arg flag instead of static to handle boot
* ci test fix
* Hide whole info() without debug
* typo
* cleanup setDebugOutput condition
This LED strip is sold by ACTION in Germany and comes with a Tuya (TYWE3L) chip. It can be "freed" by using tuya-convert. It has (yet another) IR remote control that uses another set of codes. Which is added, too. The color codes are copies from SET 1 and 2.
I kind of think that they don't match my remote control but since i'm using my smart home system for controlling, i don't care enough to figure out the correct color codes.
The circuit board supports also a CW channel on PIN 5 (which is not used on by version), nevertheless I've added a comment in case anybody has a similar device with CW
- mask is defined as (relay# status << number)
- transparently handle base-2 and base-10 numbers
- if the relay mode requires us to save the mask, it will be saved as base-2
- add experimental `relayDummy` to configure dummy relays at runtime
- add tuya-generic-dimmer #1729
- cleanup broker interface to allow Tuya module to properly receive events, modify broker methods to allow different function signatures
- add basic tests for Tuya frame and data protocol
* Use generic typechecks, OTA add followRedirects
* revamp using is_detected
* relative include
* mention ts draft instead, fix c++17 includes (still not buildable)
* typo
* Always create WiFiClient pointer
* Remove old CREATE_CHECK macro
* do not create wificlient obj when running old Core
* Added restore last schedule support
* Merged RestoreLastScheduleState function into the _schCheck function
* handle lights in restore action
* hide webui chbox when not using scheduler
* use settings instead of struct member, hide under ifdef scheduler_support
* relayLastSchedule uses SCHEDULER_RESTORE_LAST_SCHEDULE as default
* Changed all the variable names to be the same so there would be no confusions
* Fixed client side to create an array from relayLastschedule
* Fixed cosmetic issue with the toggle display in webui
* Fixed variable name and disabled comparison at the end
* Added another check if the switch type is light provider
* Changed variables naming
* Naming mistake
* telnet: buffered output for async server
* telnet: make async buffer an option
* just use the queue containers directly
* try with simpler list
* exhaust buffers as much as possible in a single try
* don't forget to destroy the client object
* naming
* kill the connection earlier
* fix merge issues
- customize relay TOGGLE payload
- match payload string when receiving mqtt status message
- reference enum values instead of raw integers, spell out intended status
- remove dead code
amend #1885, capitalize `relayPayload...` suffix instead of using uppercase
add `relayPayloadToggle`
- 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
* test: etharp_gratuitous
* proper checks before calling etharp_gratuitous, move includes
* disable at runtime
* ms values
* reload
* debug
* reword
* filter by ifnum instead of checking for AP mode
* drop station_if check
2.3.0/lwip1 builds netif->num increments on for each sta or ap
lwip2 keeps those constant, but that seems like a implementation detail
might break in the future anyways...
* Light: proper printf format for HSV, use lround
* core: warn about map() and 2.3.0, type-strict constrain()
* use generic format
* value already has brightness
* MQTT rewrite with SSL fixes
- Added Arduino MQTT library support (actively maintained)
- Added support for BearSSL (core >= 2.5)
- BearSSL validation: insecure, fingerprinting and CA validation
- AxTLS validation: insecure and fingerprinting
- Support MFLN in order to reduce heap usage
* Better header incl, fix building w/ no NTP_SUPPORT
* Clean up code, use DEBUG_MSG_P
* Fix compile error
* 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
- add httpupdate ota impelementation
- move async ota into a separate module
- support bearssl & axtls through wificlientsecure
- allow to disable arduino ide ota module
* Telnet rewrite, no longer using ESPAsyncTCP
* Support two telnet server implementations
* Clean up diff
* Update types, no free() calls, cleanup
* Use std::unique_ptr
* Fix nullptr checks
* Fix double log with async server
* Common new connection method
* use same connected() check as sync variant
* fixup! use same connected() check as sync variant
* Fix compile issue, close connection in case of timeout and when max connections reached
* Use AyncsClient* in function call
* Allow overriding telnet port + max clients
* Do not allocate 512 bytes by default
* Use TERMINAL_BUFFER_SIZE
* Make compilation more flexible allowing to define in custom.h your own variation to devices and define four wifi networks
* Implement suggestion from Max Prokhorov, it's simpler and cleaner
* Change a #elif by #else
* Move ESPurna Core comment
* Update encoder
- import modified Encoder library
- customize minimum delta value
* minimum delta in header config
* fixup! minimum delta in header config
* fix dead code, actually use interrupts
* move static class methods to normal funcs, apply namespace
* drop hardcoded register use
- use peripheral api (see cores/esp8266/esp8266_peri.h)
- remove bitmask and register struct members
* add a note about changes
* fixup! add a note about changes
- 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
- remove optional RFRAW_SUPPORT
- enable module when RF_SUPPORT=1, optionally enable RCSwitch
- reorder ifdef checks to treat RFB_DIRECT and old RF_SUPPORT the same
- rename RF_PIN to RFB_RX_PIN
- depend on RF_SUPPORT instead of ITEAD_SONOFF_RFBRIDGE
- runtime TX & RX PIN setting
1. Add thermostat to the espurna_modules in progmem.h
2. Add thermostat to webui, gulp, html, js.
3. in general.h MQTT_USE_JSON returned to 0 by default and 1 if thermostat enabled.