Commit Graph

555 Commits

Author SHA1 Message Date
Maxim Prokhorov
4d04125eb6 pio: bump toolchain-xtensa for git environments
ref. https://github.com/esp8266/Arduino/pull/8393
2021-12-07 02:11:46 +03:00
Maxim Prokhorov
c33d9960b4 ir: bump IRremoteESP8266 to 2.8.0 2021-12-07 01:08:44 +03:00
Melanie Thielker
03442608da hardware: add support for Yagusmart 1, 2 add 3 gang switches (#2488)
* Add support for Yagusmart 1, 2 ad 3 gang switches

https://www.amazon.co.uk/gp/product/B086MV5MC8

These don't come with an esp8266 anymore, but can be trivially converted
as the new chip is pin compatible. Note, GPIO15 needs to be connected to
GND on 1 and 2 gang switches in order to enable the ESP to boot.

* Update code/platformio.ini

Co-authored-by: Max Prokhorov <prokhorov.max@outlook.com>

* Adjust build flags and name to be conformant to project culture and conventions

* changelog

* sorting

Co-authored-by: Max Prokhorov <prokhorov.max@outlook.com>
2021-11-25 05:52:14 +03:00
Maxim Prokhorov
d9e37762b6 ir: bump IRremoteESP8266 to 2.7.20 2021-10-03 20:44:58 +03:00
Maxim Prokhorov
1ca8d5e7a0 pio: update platform_latest
Build with Core 3.0.2 release
2021-08-16 17:00:57 +03:00
Maxim Prokhorov
7a77d23bc5 pio: upstream toolchain
More strict than the current platform-espressif8266 and also prefer this version to for the release tag.
2021-08-06 15:07:43 +03:00
Maxim Prokhorov
4be2d370af garland: fixed-size LED arrays
Shuffle std::vector usage, trying out std::array for static data and
std::unique_ptr where common use-case is reserve / resize + emplace

Also try to workaroud exception string issue with gcc4.8, which should
not be a problem with gcc10.3 coming with Core 3.0.0, but... one solution at a time
2021-08-06 12:53:19 +03:00
Maxim Prokhorov
68436f1e72 pio: update platform_latest
Build with Core 3.0.1 release and update the git toolchain to match the upstream
2021-06-29 23:25:24 +03:00
Maxim Prokhorov
c34acf1748 ci: latest Core and split webui test into a separate job 2021-06-20 17:25:20 +03:00
Maxim Prokhorov
a9220ec2b2 pio: pin lib_deps versions and owners 2021-06-18 12:12:09 +03:00
Maxim Prokhorov
23da0b74d4 pio: use swserial from the Core 2021-06-18 12:12:09 +03:00
Maxim Prokhorov
a1e7941fa6 scripts: some more Core version fixes
Remove 2.3.0 code for ldscripts
Update
2021-06-18 12:12:08 +03:00
Maxim Prokhorov
0422d61c69 nofuss: bump to the forked 0.4.0
Make sure it does not have global flags related to the HTTPCLIENT
Use generic ::updateFS with updater, and also support generic "fs" key
in the server response
2021-06-09 12:42:32 +03:00
Andrew Leech
2fc559fa55 hardware: add support for Mirabella Genio White A60 globe (#2439) 2021-04-23 02:16:31 +03:00
Maxim Prokhorov
941ec74baf alexa: fauxmoesp 3.4 2021-04-07 03:53:40 +03:00
Maxim Prokhorov
5a97329832 wifi: refactoring / rewrite
- replace JustWifi with a custom WiFi module
- re-implemented Core methods that deal with scanning, directly work with the SDK callback
- re-implemented Core method for opmode to avoid dealing with the 2.7.x pseudo modes
- re-implemented Core method for forced-(modem)-sleep (with the intention to merge with OpmodeNull... todo)
- disable reconnect and autoconnect from SDK, avoid unintentionally storing ssid & pass for these and
  make connection routine watch for events instead. timeout is implemented as a local timer
- do not store runtime data that can be retrieved via SDK calls
- settings are loaded only when starting AP or STA, networks are no longer kept in memory
- settings STA ssidN must be unique
- remove char buffer from the event callback
- trigger station-disconnected event when actually disconnected, not when connecting or explicitly requesting it
- generic rssi sorting method for initial connection, do rssi checks while connected to find a better network

Drop (temporarily?) wps and smartconfig. Both are implementable with the new approach,
but come with some weird expectations from the SDK side (no extra heap with wps, broadcasting plain-text
passphrase with smartconfig, storing station config implicitly, etc.).

Both are sort-of fixed with RTOS SDK, but it is still a big question of whether to support them at all in the current state.
2021-03-31 09:41:05 +03:00
Rui Marinho
bfa704c2fd sns: remove need to patch bme680 static library (#2429)
Upstream released a version of their proprietary library which does not require any modification to the linker script.
2021-03-31 08:48:09 +03:00
Maxim Prokhorov
b3d9168b4a pio: bump to espressif8266 @ 2.6.3 2021-02-06 04:44:25 +03:00
Maxim Prokhorov
05cc081b7d rfm69: fix warning when building 2021-01-28 21:24:20 +03:00
Maxim Prokhorov
125ca6f9b3 rfm69: cleanup and bump version 2021-01-24 03:38:02 +03:00
Maxim Prokhorov
e50b6fe79a mdns: clean-up 2021-01-24 03:38:02 +03:00
Maxim Prokhorov
ca15752f3b pio: fixup generic build 2021-01-16 20:41:08 +03:00
Maxim Prokhorov
e7d92369fb pio: notice about macOS big sur 2021-01-04 05:01:14 +03:00
Maxim Prokhorov
d1916014c3 pio: git toolchain version bump
see https://github.com/esp8266/Arduino/issues/7792#issuecomment-750861423
2021-01-04 05:01:03 +03:00
DmitryBlinov
5aeb24f263 garland: new module (#2408)
Port of https://github.com/Vasil-Pahomov/ArWs2812 from Arduino to ESP8266
Implementing garland of WS2812

Co-authored-by: Dmitry Blinov <dblinov@blackberry.com>
2020-12-24 17:44:59 +03:00
m-kozlowski
51ad030adf alexa: bump fauxmoesp to 3.1.2
As of October 2020, this project is now being maintained at https://github.com/vintlabs/fauxmoESP

Co-authored-by: mkozlowski <gitcmt@empeka.pl>
2020-12-22 15:05:05 +03:00
Maxim Prokhorov
a62d1cdd13 pio: -latest-base -> -base for envs
Already using the "latest" stable release, no need to split things (at least for now)
2020-11-16 03:25:19 +03:00
Maxim Prokhorov
b24b0a2369 pio: fix git builds & bump current platform
- platform == platform_latest
- mcspr/toolchain-xtensa via https://github.com/platformio/platformio-core/issues/3612

Yet, this does not avoid useless warnings that platform does
not specify platformio/* prefix in the package spec :(

It should be available in the next espressif8266 version:
0859336019
2020-11-16 03:16:09 +03:00
Alex. Tircovnicu
289c8cb49c hardware: add support for Gosund P1 Power Strip (#2391) 2020-11-02 22:14:52 +03:00
Nicolas Gilles
85969e4945 hardware: add support for Benexmart GU5.3 RGBWW light (#2381)
* Add support for Benexmart GU5.3 RGBWW light

* Update arduino.h

Co-authored-by: Max Prokhorov <prokhorov.max@outlook.com>
2020-10-15 20:26:12 +03:00
tom-kaltofen
801e22a034 hardware: add support for LSC E27 10W white bulb (#2375)
* Add support for LSC E27 10W white bulb

* Add OTA config for LSC E27 10W white bulb
Add LSC E27 10W white bulb to arduino.h
2020-10-15 19:56:39 +03:00
Alex. Tircovnicu
e859f2bbf7 hw: add support for Gosund SP111 (hardware version 1.1 16A) (#2369) 2020-09-27 05:03:32 +03:00
user176176
1d895d98b8 hw: add support for Fcmila E27 7W RGB+W light bulb (#2353)
Device in question: https://www.aliexpress.com/item/32925895199.html
Named after print on the PCB.

Co-authored-by: user176176 <>
2020-09-15 23:40:37 +03:00
Max Prokhorov
d63228ef50 wifi: update to justwifi development version (#2347)
- support 32 byte hostname / ssid
- support 64 byte passphrase
- slightly reduce amount of memory allocations
- tweak initialization paths to call persistent(false) as early as possible
2020-09-10 01:05:02 +03:00
Max Prokhorov
ee1f56ad4b hw: rename zhilde eu44 -> 44eu (#2349) 2020-09-10 01:04:10 +03:00
Bert Vermeulen
f6ec2422a4 hw: add support for the Zhilde ZLD-64EU-W (#2342)
* Add support for the Zhilde ZLD-64EU-W

This is a power outlet with 6 power sockets and 4 USB ports.

* fixup based on the zld-44eu hw and tasmota template info

Co-authored-by: Maxim Prokhorov <prokhorov.max@outlook.com>
2020-09-04 23:08:28 +03:00
Maxim Prokhorov
9b3ef89dab Merge remote-tracking branch 'origin/dev' into rfb/refactoring 2020-08-26 23:00:45 +03:00
Maxim Prokhorov
844d0b4c53 pio: remove the note about PIO incompatibility
ref. 6af2bad123
2.3.0 is still not supported, but at least buildable
2020-08-26 22:54:38 +03:00
Maxim Prokhorov
a51b57b57d fix rfbridge-direct pio env 2020-08-23 11:56:07 +03:00
Maxim Prokhorov
e19c16e222 Merge remote-tracking branch 'origin/dev' into rfb/refactoring 2020-08-23 11:54:21 +03:00
Maxim Prokhorov
7a24806adb test: try using rc-switch from open-mqtt-gateway 2020-08-23 11:50:59 +03:00
Max Prokhorov
1d957506b3 PIO: remove Arduino Core 2.3.0 support (#2333)
As this is no longer an option since PIO 4.4.0
ref.
04694b4126
https://docs.platformio.org/en/latest/core/history.html

*...I have known you for so long
When we ran in circles...*
2020-08-22 01:36:44 +03:00
Max Prokhorov
2b69c7eb6d rpn: update to rpnlib 0.24.1 (#2314)
* rpn: bump to rpnlib 0.24.1

- `i` and `u` suffixes for numbers in expressions, parse as Integer or Unsigned respectively
- `checkedTo...()` method variants for numeric conversions
- strings can contain escape sequences (\x61\x62\x63, \n, \t, \r)
- improve float number parsing
- more consistent whitespace checks, tokens also can be separated by \n or \t
- various parser fixes

* fix captures
2020-08-10 20:13:12 +03:00
Max Prokhorov
8510f77d12 pio: use gcc10.1 package from registry
ref.
https://github.com/platformio/platform-espressif8266/issues/224#issuecomment-667053958
https://bintray.com/platformio/dl-packages/toolchain-xtensa/2.100100.200706
2020-08-02 13:36:15 +03:00
Max Prokhorov
35305f1f36 Update rpnlib to 0.23.x (#2274)
## [0.23.0] 2020-07-26
### Added
- `p` operator to print the top of the stack via debug function
- `&var` syntax to create variable reference in expression
- `=` operator for variable assignment in expression
- `exists` operator to check for variable existance (only for references)
- `deref` operator to convert variable reference into a value (only for references)
- Allow to use either float or double as floating type, parse numbers in expressions as specified type
- Add boolean type, parse `true` and `false` in expressions
- Add null type, parse `null` in expressions
- Add string type, parse double-quoted `"string"` in expressions
- Add integer and unsigned integer type, used in operators
- Allow to configure underlying types from rpnlib\_config.h and -D... flags
- Return `rpn_error` from operators, split error types into categories
- Create a new stack by using `[` keyword. Move stack contents into the previous stack + size by using `]`.

### Changed
- Stack structure no longer holds raw `float`, but internal `rpn_value` type
- rpn\_... setter and getter methods use `rpn_value` type
- Operator functions return `rpn_error` type, allowing to return both value and operator errors
- Variables in expressions are no longer required to exist when using `&var`
  Expression will automatically create the variable, set it to `null` and push it's reference on the stack
- It is possible to create 'reference' stack values
- Improve precision of `e` and `pi`

### Fixed
- Proper value for `e` constant
- Allow to use multiple contexts simultaniously, replace `rpn_error` and `rpn_debug_callback`
  with the current `rpn_context` members `error` and `debug_callback` respectively
2020-08-02 13:14:44 +03:00
Rui Marinho
6266930a4d sns: Add BME680 (#2295)
Add support for BME680 using libalgobsec proprietary algorithms for precise Indoor Air Quality (IAQ) measurement. Unlike traditional CO2 sensors - and good ones are expensive - it measures nearly all VOCs compounds in the air (plus other gases) and compensates those measurements with its built-in temperature and humidity sensors to determine indoor air quality.

Co-authored-by: Max Prokhorov <prokhorov.max@outlook.com>
2020-08-02 09:12:38 +03:00
Maxim Prokhorov
b7a01466fc pio: fix lib_deps order
See https://github.com/platformio/platformio-core/issues/3598
2020-07-16 05:27:42 +03:00
dpeddi
547f52fe79 hw: Implement support for ProDino WIFI (#2269)
- implement mcp23s08
- support mcp pins in relays and buttons
- add hardware profile for ProDino WiFi

Co-authored-by: dpeddi <dpeddi@gmail.com>
Co-authored-by: Maxim Prokhorov <prokhorov.max@outlook.com>
2020-07-16 05:15:34 +03:00
Max Prokhorov
2be8d10601 PIO: fix git, bump versions (#2298)
- bump to espressif8266@2.5.3 (but, 2.5.4 will be here soon...)
- pwm asm -> __asm__
- re-shuffle dependencies a bit, remove brzo from -git and -latest, ref https://github.com/pasko-zh/brzo_i2c/issues/40
2020-07-08 17:44:29 +03:00
Max Prokhorov
3145e8be24 Rework settings (#2282)
* wip based on early draft. todo benchmarking

* fixup eraser, assume keys are unique

* fix cursor copy, test removal at random

* small benchmark via permutations. todo lambdas and novirtual

* fix empty condition / reset

* overwrite optimizations, fix move offsets overflows

* ...erase using 0xff instead of 0

* test the theory with code, different length kv were bugged

* try to check for out-of-bounds writes / reads

* style

* trying to fix mover again

* clarify length, defend against reading len on edge

* fix uncommited rewind change

* prove space assumptions

* more concise traces, fix move condition (agrh!!!)

* slightly more internal knowledge (estimates API?)

* make sure cursor is only valid within the range

* ensure 0 does not blow things

* go back up

* cursor comments

* comments

* rewrite writes through cursor

* in del too

* estimate kv storage requirements, return available size

* move raw erase / move into a method, allow ::set to avoid scanning storage twice

* refactor naming, use in code

* amend storage slicing test

* fix crash handler offsets, cleanup configuration

* start -> begin

* eeprom readiness

* dependencies

* unused

* SPI_FLASH constants for older Core

* vtables -> templates

* less include dependencies

* gcov help, move estimate outside of the class

* writer position can never match, use begin + offset

* tweak save_crash to trigger only once in a serious crash

* doh, header function should be inline

* foreach api, tweak structs for public api

* use test helper class

* when not using foreach, move cursor reset closer to the loop using read_kv

* coverage comments, fix typo in tests decltype

* ensure set() does not break with offset

* make codacy happy again
2020-07-03 22:07:48 +03:00