Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rotary encoder only works in one direction (and two other bugs) #19164

Closed
9 of 14 tasks
MyriadBugs opened this issue Jul 22, 2023 · 4 comments
Closed
9 of 14 tasks

Rotary encoder only works in one direction (and two other bugs) #19164

MyriadBugs opened this issue Jul 22, 2023 · 4 comments

Comments

@MyriadBugs
Copy link

MyriadBugs commented Jul 22, 2023

PROBLEM DESCRIPTION

EDITED:
I missed part of the code for rotary interrupt support. This part of the issue was user error. The other bugs were real and were fixed.

The commit 541443f to support_rotary.ino broke rotary support for anyone except those specifying the "Xiaomi Mi Desk" rotary configuration (i.e. not using the OPTION_A 5 setting).

By selecting ROTARY_OPTION3 as the "default" the ISR (RotaryIsArg) is only called on the falling edge of channel A. Going back to the first implementation of rotary support I'm not sure how this option ever worked as it will only capture incremental encoders in the same state (Channel B will always be high on the rising edge of A and will always be low on the falling edge of A).

                              _______         _______
            GPIO_ROT1A ______|       |_______|       |______ GPIO_ROT1A
negative <--              _______         _______         __            --> positive
            GPIO_ROT1B __|       |_______|       |_______|   GPIO_ROT1B

It could be fixed by either making the code match the MiDesk ISR (i.e. trigger on change for both Channel A and B, then check both pins in the ISR), or, if you really want to have one fewer interrupts at the cost of halving the encoder resolution you could change the interrupt to trigger on CHANGE instead of RISING or FALLING. I'd probably lean towards just merging the ISRs and removing the debounce code but another solution would be to change the interrupt trigger at support_rotary.ino#L179 to CHANGE.

I found at least one reference to someone who noticed their encoder only works in one direction (https://discord.com/channels/479389167382691863/1096811519414632619/1112403559783350352)

OTHER BUGS:

  1. The LightColorOffset function in xdrv_04_light.ino creates an unsigned int underflow instead of wrapping from 0 to 359. The effect is that if you try to offset down through the color wheel you'll get wrapped back around to 65535 and it won't work again until you spin yourself all the way back down to 359. For reference the fix I did is below. Changed first 4 lines of LightColorOffset@xdrv_04_light.ino#L1357
void LightColorOffset(int32_t offset) {
  int16_t hue;
  uint8_t sat;
  light_state.getHSB(reinterpret_cast<uint16_t*>(&hue), &sat, nullptr); 
  offset = max(min(offset, 359),-359);
  1. Increasing SetOption43 above 100 (or above 33 if using OPTION_A 5) will break the dimming function (uint division of 100 by >100 is 0). Increasing above 350/3 or 360/3 will then break CT and Color controls respectively. The quick fix I used is below for reference but I'll eventually rewrite my own fork to support fractional steps and I'd be inclined to say that that's the real fix 🤷‍♀️
  Rotary.dimmer_increment = 100 / min((uint8_t)100, max_steps);  // Dimmer 1..100 = 100
  Rotary.ct_increment =     350 / min((uint8_t)350, max_steps);  // Ct 153..500 = 347
  Rotary.color_increment =  360 / min((uint8_t)360, max_steps);  // Hue 0..359 = 360

REQUESTED INFORMATION

Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!

  • Read the Contributing Guide and Policy and the Code of Conduct
  • Searched the problem in issues
  • Searched the problem in discussions
  • Searched the problem in the docs
  • Searched the problem in the chat
  • Device used (e.g., Sonoff Basic): Custom, can be reproduced with an esp8266 and a rotary encoder.
  • Tasmota binary firmware version number used: 13.0.0.2(tasmota) (2_7_4_9/2.2.2-dev(38a443e))
    • Pre-compiled
    • Self-compiled
  • Flashing tools used: PlatformIO and USB
  • Provide the output of command: Backlog Template; Module; GPIO 255:
  Configuration output here:
NOTE: This is with OPTION_A 5 enabled and is working, without OPTION_A 5 the rotary is broken as described.
03:59:07.886 CMD: Grp 0, Cmd 'BACKLOG', Idx 1, Len 26, Pld -99, Data 'Template; Module; GPIO 255'
03:59:07.962 SRC: Backlog
03:59:07.965 CMD: Grp 0, Cmd 'TEMPLATE', Idx 1, Len 0, Pld -99, Data ''
03:59:07.971 MQT: stat/test-light/RESULT = {"NAME":"TestLight","GPIO":[32,5732,33,0,3296,3264,0,0,418,417,416,419,0,0],"FLAG":0,"BASE":18}
03:59:08.190 SRC: Backlog
03:59:08.193 CMD: Grp 0, Cmd 'MODULE', Idx 1, Len 0, Pld -99, Data ''
03:59:08.198 MQT: stat/test-light/RESULT = {"Module":{"0":"TestLight"}}
03:59:08.440 SRC: Backlog
03:59:08.443 CMD: Grp 0, Cmd 'GPIO', Idx 1, Len 3, Pld 255, Data '255'
03:59:08.454 MQT: stat/test-light/RESULT = {"GPIO0":{"32":"Button1"},"GPIO1":{"5732":"Option A5"},"GPIO2":{"33":"Button2"},"GPIO3":{"0":"None"},"GPIO4":{"3296":"Rotary B1"},"GPIO5":{"3264":"Rotary A1"},"GPIO9":{"0":"None"},"GPIO10":{"0":"None"},"GPIO12":{"418":"PWM3"},"GPIO13":{"417":"PWM2"},"GPIO14":{"416":"PWM1"},"GPIO15":{"419":"PWM4"},"GPIO16":{"0":"None"},"GPIO17":{"0":"None"}}
  • If using rules, provide the output of this command: Backlog Rule1; Rule2; Rule3:
  Rules output here:

  • Provide the output of this command: Status 0:
  STATUS 0 output here:

  • Set weblog to 4 and then, when you experience your issue, provide the output of the Console log:
  Console output here:

TO REPRODUCE

1. Setup an ESP8266 with latest tasmota
4. Connect an incremental rotary encoder
5. Configure two rotary encoder pins as "Rotary A 1" and Rotary B 1"
6. Enable something to debug (add rules, connect a light, etc)
7. Turn rotary encoder
8. Rotary encoder will only increment (or decrement if you swap the A and B pins).

Additional Bugs:

SetOptions43 101: Rotate the encoder in either direction and the dimming will not change.

SetOption98 0 (default): Holding Button 1 (index 0) and rotating encoder "down" will cause an underflow and set the hue to 65535. Hue will be stuck > 359 until you've spun the encoder enough to trigger the call to LightColorOffset ≈ 100 times.

EXPECTED BEHAVIOUR

Option_A 5 not set: Rotary encoder should increment in one direction and decrement in another.

SetOption98 0 (default): holding button 1 (index 0) and rotating the encoder left should reduce the hue and eventually wrap around back to 359.

SetOption98 0 (default): Setting the SetOption43 "too high" shouldn't silently break the dimming/color control functions, worst case scenario they should just be capped at the maximum supported resolution. Best case scenario the encoder support would allow fractional step sizes (storing the fractions and calling external functions once a full integer has accumulated and/or using higher resolution functions where appropriate).

SCREENSHOTS

If applicable, add screenshots to help explain your problem.

ADDITIONAL CONTEXT

Add any other context about the problem here.

(Please, remember to close the issue when the problem has been addressed)

@github-actions
Copy link

This issue has been automatically marked as stale because it hasn't any activity in last few weeks. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale Action - Issue left behind - Used by the BOT to call for attention label Aug 17, 2023
@MyriadBugs
Copy link
Author

This is still an issue.

@github-actions github-actions bot removed the stale Action - Issue left behind - Used by the BOT to call for attention label Aug 17, 2023
arendst added a commit that referenced this issue Aug 25, 2023
@arendst
Copy link
Owner

arendst commented Aug 25, 2023

I guess the "break" is dependent on the rotary hardware. Both my MiDesk and non-MiDesk rotaries still work fine in both directions with the corresponding hardware option (either using define MI_DESK_LAMP or (no) option A5). The difference in rotary hardware is signalled by this.

I did change both the color overflow and SO43 range issues as you suggested

@MyriadBugs
Copy link
Author

Could be some combination of noise and the debounce code, On a re-read the isr makes more sense now, but I could see how it could get locked into one direction or another.

eckelj added a commit to rddl-network/Tasmota that referenced this issue Sep 21, 2023
* Berry `var` allowed in with walrus operator `:=` (arendst#19018)

* Berry `var` allowed in with walrus operator `:=`

* fix regression

* Revert "Berry `var` allowed in with walrus operator `:=` (arendst#19018)" (arendst#19019)

This reverts commit 8f06552.

* Implement deepsleep(0)

Implement deepsleep(0) as command ``restart 9`` (arendst#19024)

* Update change logs

* Partition Wizard is now able to convert to safeboot from Shelly partition layout (arendst#19034)

* Update changelogs

* Hot fix for gitpod and CI  (pio core v6.1.8 is faulty) (arendst#19044)

* Use pio v6.1.7

* Accelerate path.listdir() (arendst#18927)

* Accelerate path.listdir()

* restore old behavior, push filename only and not the full path to the list

* Revert "Hot fix for gitpod and CI  (pio core v6.1.8 is faulty) (arendst#19044)" (arendst#19051)

This reverts commit c4f899a.

* Create GC9A01_display.ini (arendst#19043)

* Fix to Partition_Wizard for shelly (arendst#19056)

* Fix BUG: Zigbee devices cannot be added through routing nodes (arendst#19036)

* `BrRestart` now supports web handlers to work after Berry restart (arendst#19057)

* ESP32 LVGL library from v8.3.7 to v8.3.8 (no functional change) (arendst#19058)

* ESP32 LVGL library from v8.3.7 to v8.3.8 (no functional change)

* Update changelog

* Matter increase logs in save_fabrics (arendst#19060)

* Enhance ZC-Dimmer for falling and leading edge dimmer (arendst#19054)

* Update tasmota_types.h

* Update xdrv_68_zerocrossDimmer.ino

* fix modbus-tcp, add U32,U64 etc (arendst#19063)

* Berry added `getgbl` performance counter to `debug.counters()` (arendst#19070)

* Berry add `getgbl` counter

* Berry added `getgbl` performance counter to `debug.counters()`

* Matter fix bug when saving Force Static endpoints (arendst#19071)

* Matter improve latency for remote commands (arendst#19072)

* Matter increase logs when storing sessions (arendst#19073)

* Enable ESP32 shutter driver

Enable ESP32 shutter driver (arendst#18295)

* Bump version v13.0.0.2

Update changelogs

* Set ESP32-C3 max supported ADC channels to 5

* Matter add mini-profiler (arendst#19075)

* Update changelogs

* Update decode-status.py to synchronize SetOption154/155 (arendst#19078)

I noticed that the translation for SetOption154/155 bits did not match tasmota_types.h:
https://github.com/arendst/Tasmota/blob/development/tasmota/include/tasmota_types.h#L190-L191

* Matter fix session not being removed from memory (arendst#19081)

* Matter fix session not being removed from memory

* Fix

* File UI changes (arendst#19014)

* Remove recursion into folders on Manage Files.  May be enabled with UFILESYS_RECURSEFOLDERS_GUI.  On Edit of a file, Save and Magane btuttons return to the folder containgint the file being edited.  On delete file, UI returns to the folder that the deleted file was in.

* Make newfile put in in the current folder, and return to current folder on save of manage button.

* Add folderOnly and FileOnly functions to reduce code duplication.
Enable folder delete.
Enable folder listing to be aborted (x in browser)
Disbale ESP32 Download Task.  Needs attention.
Allow folder create from newfile name.

* Configuration file save and restore .xdrvsetXXX

Configuration file save and restore now backup and restore ``.xdrvsetXXX`` files too (arendst#18295)

* Berry `_class` can be used in `static var` initialization code (arendst#19088)

* Verify correct functionality

* Update changelogs

* Berry minor fixes from upstream (arendst#19091)

* Fix driver config restore

* Fix driver config backup and restore

Fix driver config backup and restore (arendst#18295)

* Fix possible buffer overflow

* Zero-Cross Dimmer fixes (arendst#19109)

* Fix Zero-Cross flickering on Savedata

* Fix reboot on DIMMER usage with Zero-Cross

* Fix Flickering on dimmer 0

* Berry add `energy.update_total()` to call `EnergyUpdateTotal()` from energy driver (arendst#19117)

* Sync with Berry upstream (arendst#19119)

* Berry extend `range(lower, upper, incr)` to arbitrary increment (arendst#19120)

* Update Berry windows exe to latest (arendst#19121)

* Berry updated syntax highlighting plugin for VSCode (arendst#19123)

* Berry check arguments for `range()` (arendst#19124)

* Berry fix syntax highlighting for escaped chars (arendst#19126)

* Fix typo

* Berry update grammar (arendst#19129)

* More user-friendly defaults for DisplayMode and DisplayDimmer (arendst#19138)

Changing default for DisplayMode from 1 to 0. Users are getting confused by the display doing something they did not ask for (and not being aware of DisplayMode). This got worse with LVGL/HASPmota displays becoming common, with users having much less reason to dive into the old DisplayXxxxx commands. And it may even be hard to see that it is even a display of time/date causing the display to flicker.

Changing default for DisplayDimmer from 10% to 50%. The low brightness of 10% is not always easy to see, especially in daylight. 50% is generally better, while not going "full blast" with 100%.

* Berry add metrics for memory allocation/deallocation/reallocation (arendst#19150)

* Zigbee DIYRuZ_Geiger (arendst#19151)

* Berry `tasmota.loglevel()` and `tasmota.rtc_utc()` for faster performance (arendst#19152)

* Berry add AES CCM decrypting in a single call to avoid any object allocation (arendst#19153)

* New DEEPSLEEP topic for HA + Battery Level % support (arendst#19134)

* New LWT on deepsleep

To allow better integration into HA LWT topic will report details of sleep status:
16:54:04.388 MQT: hm/tele/ESP_3284D1/LWT =
{"Sleep":{"Time":"2023-07-17T16:55:03","Sleep":1689612844,"Wakeup":1689612903}}

* Revert LWT back to non JSON

Send DeelSleep on LWT
Send Deepsleep parameters on topic DeepSleep

* Setting default for batteryLevel

* Enable BatteryPercentSet

Changing the battery level e.g. by rule

* Added Battery % to status message

* added battery_level_percent

* Added battery % support in STATE message

* Enable setting battery level

101 is reserved for power-plug. No battery Level reported

* Setting default for battery Level

101 is reserved for power plug
0..100 normal battery values

* Revert back LWT to Offline

Removed "DeepSleep" LWT status until further decision is made. Current implementation is technical sufficient for HA to detect a battery powered device

* Added discovery message after deepsleep change

* Added discovery for battery and deepsleep

* Matter latency improvement for single attribute reads and single commands (arendst#19158)

* Solidified Code updated

* Fix default battery level

- Fix default battery level (arendst#19160)
- Bump version to v13.0.0.3

* Update changelogs

* Fix compilation (arendst#19134)

* MAX17043 sensor integration (arendst#18788)

* Restart MAX17043 from the scratch

* revert change

* Changed battery capacity in charge (capacity is the Ah value of the battery, this degrades over time when battery ages)

* merge

* Changing xsns_109 to 110

* fix nr

* removed old xsns109

* Update I2CDEVICES.md

* clean-up usage of Interface

* Update change logs

* Berry SK6812_GRBW crash (arendst#19166)

* Update italian language (arendst#19169)

* changing reference to xsns109 (arendst#19170)

* fix empty line problem (arendst#19171)

* Update de_DE.h

* Refactor MAX17043 driver

* Refactor MAX17043 driver

Refactor MAX17043 driver optional enable library (default off providing smaller footprint (-250 bytes)

* Add alternative for PCA9685

Add alternative for PCA9685 as define PCA9685_V2 (arendst#18805)

* Update changelogs

* Core 2.0.11 (arendst#19181)

* Update changelogs

* Berry `mqtt.publish` now distinguishes between `string` and `bytes` (arendst#19196)

* Berry improve tasmota.scale_uint() (arendst#19197)

* Make TCPStart ip filter more IPv6 friendly (arendst#19199)

* IRremoteESP8266 library from v2.8.5 to v2.8.6 (arendst#19212)

* ensure minimum interrupt time (arendst#19211)

prevent interrupts <30 micro seconds because sometimes see crashes on esp8266.
esp32 stop of interrupt >30microseconds and < 105microseconds

* Zigbee decode Aqara 0000/FF01 attribute 03 as Temperature (arendst#19210)

* Zigbee decode Aqara 0000/FF01 attribute 03 as Temperature

* Changed to AqaraTemperature

* Four files which used #ifdef EPS8266 instead of #ifdef ESP8266 - which e.g. broke the MFRC522 functionality between 12.5 and 13.x. (arendst#19209)

* Auto detect flash size and adjust FS (arendst#349) (arendst#19215)

* Reduced log level for TeleInfo (arendst#19216)

* unsigned overflow fixed (arendst#19221)

fixed overflow on negative value with dimmer 100%

* Fix fabric saving exception (arendst#19224)

* Berry bytes `get` and `set` work for 3 bytes values (arendst#19225)

* Berry bytes `get` and `set` work for 3 bytes values

* Fix error message

* fix 4MB PIO script upload regression

* Matter increased polling frequency for local switches/occupancy (arendst#19242)

* Fade would fail when the difference between start and target would be too small (arendst#19246)

* Matter support for fabric_filtered request (for Google compatibility) (arendst#19249)

* Update changelogs

* Integrate MAX17043 driver mechanisms in xsns_110 (arendst#19219)

* Fixing SHUTTERINVERT issues (arendst#19243)

* fix wrong inverted shutter

* fix inverted shutter for esp32

* Update changelogs

* Matter support for large atribute responses (arendst#19252)

Support for responses (arrays) that do not fit in a single UDP packer
Do not remove children fabrics

* Matter fix auto-configuration Relay indices (arendst#19255)

* Update changelogs

* Change console height

Change console height from default 318 pixels to viewport (arendst#19241)

* Save some more code bytes

* add wifitest3 (arendst#19259)

* Zigbee Berry minor fix and cleaning (arendst#19257)

* Zigbee Berry minor fix and cleaning

* Fix compilation

* Fix compilation when IPv6 is not supported (arendst#19260)

* Fix console min height

* Fix console Firefox layout

* Change shutterbutton hold behavior with grouptopic (arendst#19263)

* skip stop on hold if grouptopic

If shutterbutton is defined with a grouptopic send on HOLD, there is no stop on releasing the button. All shutters will move to defined position

* do not stop on hold release if group submitt

If mqtt broadcast is defined on hold then release the hold button will not anymore stop the local shutter. All shutter will move to defined position

* Update ru_RU.h (arendst#19214)

* Prepare for Arduino v3 / esp-idf v5 (arendst#19264)

* Bump version to v13.0.0.4

* Prepare for Arduino v3 / esp-idf v5 2nd batch (arendst#19265)

* Tasmota based on Arduino 3.0.0 (arendst#19270)

* more idf5.1 preps: Berry SPI (arendst#19273)

* Improvements to thermostat debug output (arendst#19279)

* add: update DEBUG_THERMOSTAT to only control the virtual switch

Also, debug output is still generated but end user can control this debug level 3

* add: debug output of main controller parameters when thermostat enabled

Also, add units for debug outputs added to make them more intelligible

* Update xdrv_39_thermostat.ino

* add: debug message when sensor is detected as not alive

fix: display thermostat number in debug messages

* add: log message prefix string for thermostat

* Update xdrv_39_thermostat.ino

fix: typos in comments
add: debug messages

* add: debug prefix for thermostat

* add: debug prefix added to output lines

* fix: comment typos and small grammatical changes for clarity

* add: debug prefix 'THE' added to debug output

* add section safeboot_flags in platform_tasmota32.ini (arendst#19281)

This will make it easier to ignore a bunch of libraries in order to speed up builds without polluting the ENV sections too much.

Usage:
[env:my_safeboot_env]
lib_ignore              = ${safeboot_flags.lib_ignore}

* use common safeboot flags (arendst#19282)

* fix IRAM_ATTR specified both in function declaration and definition (arendst#19286)

* Improvements to PID controller driver (arendst#19285)

* add: update DEBUG_THERMOSTAT to only control the virtual switch

Also, debug output is still generated but end user can control this debug level 3

* add: debug output of main controller parameters when thermostat enabled

Also, add units for debug outputs added to make them more intelligible

* Update xdrv_39_thermostat.ino

* add: debug message when sensor is detected as not alive

fix: display thermostat number in debug messages

* add: log message prefix string for thermostat

* Update xdrv_39_thermostat.ino

fix: typos in comments
add: debug messages

* add: debug prefix for thermostat

* add: debug prefix added to output lines

* fix: comment typos and small grammatical changes for clarity

* add: debug prefix 'THE' added to debug output

* add:  display PID status and key info on web output

* fix: remove extraneous comments that included unused code fragments

* add: local sensor handling improvements

add: define a local sensor name
add: define the local sensor measurement parameter
add: limit sensor not seen error message to every 60 seconds to avoid flooding the logs
add: include interval since which sensor data was last updated
fix: properly update the maximum interval time so missing sensor data is properly alerted

* Update xdrv_49_pid.ino

* Typo architceture → architecture (arendst#19288)

* avoid unnecessary compiling of specific libraries in lib32_div for most builds (arendst#19293)

* ESP32: pass flashmode at build time to macro definition (arendst#19299)

* pass flashmode at build time to macro definition

* fix 8266 builds

* fix: properly detect device is offline after maximum misses reached (arendst#19298)

* Update changelogs

* [DS18x20] Enhance use of aliases (arendst#19026)

* [DS18x20] Enhance use of aliases

`defineDS18x20_USE_ID_AS_NAME`:
Always show part of the address, even for one sensor
`#define DS18x20_USE_ID_ALIAS`:
The command `DS18Alias` can now be use with alphanumeric aliases, which replace the sensor name

* [DS18x20] change to calloc()

* fix OneWire for IDF5.1 and C2/C6 (arendst#19303)

* fix OneWire for IDF5.1 and C2/C6

* Use Onewire in arduino30 builds

* use SOC specific defines for C2,C3 and C6

* Removes software based no load threshold. (arendst#19302)

Lowers ADE7953 builtin no load detection threshold to be able to measure 5 watt power levels.

* Update changelogs

* Creates a place to put the customer boards (arendst#19309)

* Add commands to allow setting of timeprop parameters (arendst#19310)

* add: commands to set timeprop settings

* Update my_user_config.h

* fix: properly generated json response to commands

* Sync dev with release v13.1

* Update platformio_tasmota32.ini (arendst#19313)

* add: shutdown command for PID controller (arendst#19318)

* Add variables to rules

Add variables ``%power<1..28>%`` and  ``%switch<1..28>%`` to rules (arendst#19331)

* Update switch comments

* fix shutterinvert (arendst#19341)

* fix shutterinvert

* fix shutterinvert

* Update changelogs

* Changed display invert setting

Changed display invert setting after tasmota start in uDisplay driver (arendst#19337)

* add platformio_tasmota_core3_env.ini to gitignore

* Remove debug messages (arendst#19365)

* Fix compile warning

* Phase 1 support C2/C6

* Phase 1 support C2/C6

* Phase 1 support C2/C6

* Phase 1 support C2/C6

* Add new webcam driver over latest dev. (arendst#19280)

* Add new webcam driver over latest dev. To use the old one, define USE_WEBCAM_LAGACY

* enable build without RTSP.
check pin_pwdn before using it n 0x105!!!

* more fixes around pwdn.  Make wcresolution -1 set the resoltuion setting to 'disbale cam' value (15).

* fix task stop - wait for debug to leave-> prevents guru. pin task to core 0.

* split motion from other code.  Add USE_WEBCAM_MOTION to control inclusion of motion code (big hit). Change from using USE_WEBCAM_LEGACY to USE_WEBCAM_V2

* logging minimisation - behind WEBCAM_DEV_DEBUG

* Shutter ESP32 fixes (arendst#19362)

* fix esp32 shutter

* fix shutterinvert+shutterbutton

* Phase 2 support C2/C6

* ignore esp-nimble-cpp (arendst#19369)

in core 2.0.11

* Phase 2 support C2/C6

* Fix Core 3 compilation

* Fix Core 3 compilation

* prepare transition to esp-nimble-cpp (arendst#19370)

* Platform ESP32 2023.08.01 (arendst#19371)

* Neopixel add SPI driver for C2 and some minor updates (arendst#19372)

* fix inverted shutter inconsistencies (arendst#19374)

* inverted shutter fix on overflow

* fix inverted_shutter > 9

fix on inverted shutter at esp32.
fix tilt behavior on inverted shutter

* fix tilt behavior on inverted shutter

* do not use NimBLE-Arduino for Mi32-legacy (arendst#19375)

* Fix compilation

* Arduino.3.0: enable Audio libs compile by disabling incompatible I2S driver (arendst#19377)

* i2s off for Arduino 3.0

* fix compile of uDisplay with IDF5.x on ESP32S3 (arendst#19378)

* Fix idf chip revision

* Revert "Fix idf chip revision"

This reverts commit e5cb367.

* Teleinfo power fix (arendst#19381)

* fix power arendst#19244

* cosmetic display

* Fix idf chip revision

* Fix crash of uDisplay on  ESP32S3 with IDF5.1 (arendst#19383)

* fix compile of uDisplay with IDF5.x on ESP32S3

* fix crash with uDisplay on S3 with IDF5.1

* Consolidate esp32 hardware info

* Finally add ESP32-P4 ;-)

* translate label (arendst#19385)

* Update change logs

* Fix rotary edge cases (arendst#19164)

* Fix crash in IRHVAC (arendst#19389)

* Update changelogs

* Allow ADE7880 user defines (arendst#19391)

* Fix IRHVAC crash v2

* Added passive mode for Sen5x sensor (required for Ike@ Vindstyrka) (arendst#19388)

* Added a passive mode in sen5x sensor for parasitic installations. This skips reset & initialization of sensor on startup and reduces the polling to every 10 seconds to not interfere with and confuse the other I2C master on the bus, e.g. Ike* Vindstyrka.

* Removed obsolete updateCount. Cleanup.

* Update decode-status

* EnergyMargins - always send MQTT telemetry message (arendst#19397)

* Add twilight info to GUI (arendst#19334)

* fix and improve pzem_dc (arendst#19402)

* enable more driver for Arduino 3.0

* More Arduino 3.0 env

* Final change to GUI twilight

* Fix xdrv_122_file_settings_demo buffer overflow (arendst#19405)

* expected changes for arduino30 (arendst#19421)

* Add ESP32-C6 GPIO26/28 in template

Add ESP32-C6 GPIO26/28 in template as Red pins used by flash (QIO) but optionally free if DIO/DOUT

* Allow display of revision v0.0

* build safeboot bin for C2/C6 (arendst#19422)

* build safeboot bin for C2/C6
* add C2/C6 safeboot to CI
* Enable core3 env settings before Pio starts

* Revert "build safeboot bin for C2/C6 (arendst#19422)" (arendst#19423)

This reverts commit f840f51.

* Build C2/C6 safeboot firmwares in GH Actions (arendst#19424)

* Added compiler option for doubleclick window (arendst#19428)

* sorry... (arendst#19429)

* Fixed PCF8574 mode 1

- Fixed PCF8574 mode 1 with base relays exception 3/28 regression from v12.4.0.4 (arendst#19408)
- Bump version v13.1.0.2

* Support for HDMI CEC protocol (arendst#19434)

* Berry fast_loop is now called every 5ms whatever the Sleep value (arendst#19436)

* all output parts for I2S and IDF5.1 (arendst#19440)

* Update italian language (arendst#19442)

* Berry make mdns compatible with non-IPv6 builds (arendst#19444)

* Berry move solidified code to C (arendst#19446)

* Fix compilation on Arduino 3 (arendst#19447)

* Fix compilation on Arduino 3

* Fix compilation

* Berry cleaned udp class (arendst#19449)

* Berry move mapping from C++ to C (arendst#19450)

* Reduce IRAM consumption of HDMI CEC to 1453 bytes (arendst#19452)

* Reduce IRAM consumption of HDMI CEC to 1453 bytes

* Add changelog

* enable IPv6 and Matter (arendst#19456)

* Fix migration error to filesystem settings (arendst#19454)

* `Sendmail` upgraded to ESP-Mail-Client v3.4.9 from v1.2.0, using BearSSL instead of MbedTLS (arendst#19460)

* `Sendmail` upgraded to ESP-Mail-Client v3.4.9 from v1.2.0, using BearSSL instead of MbedTLS

* Fix compilation on ESP8266

* Fix compilation

* fix compilation

* fix shine for gcc12 (arendst#19458)

* Enable ESP Mail Client in core 30 (arendst#19461)

* Enable multipress events on buttons (arendst#19465)

* Update changelogs

* Support for IPv6 link-local zones for esp-idf 5.1 (arendst#19469)

* cosmetic changes only (arendst#19468)

- reorder functions alphabetically
- reformat equations for better reading following guidelines
- adding comment for understanding

* Fix TLS by removing redundant BearSSL code from libmail (arendst#19472)

* Fix compilation of IRRemoteESP8266 for core3 (arendst#19473)

* Fix typo in berry mqtt (arendst#19477)

* Don't reset the MAX17043 battery fuel gauge after waking from Deep Sleep (arendst#19412)

* fix: don't reset the device when coming out of deep sleep

* fix: move debug log message to inside the device validation

* Update xsns_110_max17043.ino

* add: update global battery percentage when max17043 reports new value

* Matter events phase 1 (arendst#19484)

* Zigbee fix warnings with Arduino3 (arendst#19486)

* Fix core 2.0.12 exception

* Fix possible MQTT disconnect exception

* Tasmota ESP32 core 2.0.12 (arendst#19463)

* Matter consolidate attributes per cluster (arendst#19493)

* Improved parsing of accumulation data from HRG-15 rain sensor (arendst#19485)

* fix: more robust parsing of accumulation data

* fix: further parsing checks

* Update xdrv_29_deepsleep.ino (arendst#19492)

* Fix MAX17043 invalid JSON (arendst#19495)

* Clean up support command code

* Fix ESP8266 compilation (arendst#19485)

* Add BL0942 baudrate selection

* fix hardware serial port swap on ESP8266 (arendst#19505)

* Fix hidden invalid character

* Fix invalid character

* fix compile errors on exotic windows codepages (arendst#19508)

* Fix BL0942 higher baudrates

* Add frequency to BL0942

* ESP32 LVGL library from v8.3.8 to v8.3.9 (no functional change) (arendst#19510)

* Matter virtual lights (arendst#19511)

* Fix ESP32C3 relay click on restart

* Fix Arduino3 compilation

* Update changelogs

* Bump version v13.1.0.3

* Matter support for Virtual Devices controllable via Rules or Berry (arendst#19520)

* Fix typo

* Solidified Code updated

* Update changelogs

* fix: add command data to cmnd response (arendst#19524)

* Matter add virtual sensors (arendst#19530)

* Tasmota Core 2.0.13 (arendst#395) (arendst#19533)

Tasmota Core 2.0.13

* Fix IR compilation for ESP32 with Arduino3 (arendst#19537)

* Update RELEASENOTES.md

* Preps for IDF5.1: microphone/input for i2s audio (arendst#19544)

* fix codec compilation on IDF5.1 (arendst#19546)

* I2S improvements to MP3 play (arendst#19547)

* Fix DS18B20 for ESP32 with over 33 gpios

* Update changelogs

---------

Co-authored-by: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Co-authored-by: Theo Arends <11044339+arendst@users.noreply.github.com>
Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Co-authored-by: Christian Baars <Baars@gmx.de>
Co-authored-by: MIzzzzon <MIzzzzon@users.noreply.github.com>
Co-authored-by: xsp1989 <xsp1989@126.com>
Co-authored-by: stefanbode <stefan_bode@web.de>
Co-authored-by: gemu <gmutz2010@googlemail.com>
Co-authored-by: sfromis <47082390+sfromis@users.noreply.github.com>
Co-authored-by: btsimonh <simon@yellaumbrella.tv>
Co-authored-by: s-hadinger <s-hadinger@users.noreply.github.com>
Co-authored-by: Vincent de Groot <53112521+Vincent1964@users.noreply.github.com>
Co-authored-by: bovirus <1262554+bovirus@users.noreply.github.com>
Co-authored-by: msedv <lists@msedv.at>
Co-authored-by: Christian Baars <baars@klinikum-brandenburg.de>
Co-authored-by: usr44 <140394475+usr44@users.noreply.github.com>
Co-authored-by: Paul Blacknell <blacknell@users.noreply.github.com>
Co-authored-by: Дилян Палаузов <dpa-github@aegee.org>
Co-authored-by: SteWers <42718143+SteWers@users.noreply.github.com>
Co-authored-by: paulusbrand <75862178+paulusbrand@users.noreply.github.com>
Co-authored-by: Martin <79449686+marsman7@users.noreply.github.com>
Co-authored-by: Charles <hallard04@free.fr>
Co-authored-by: Andre H. Beckedorf <evilJazz@users.noreply.github.com>
Co-authored-by: Barbudor <barbudor@barbudor.net>
Co-authored-by: Norbert Richter <norbert.richter@prsolution.eu>
Co-authored-by: blakadder <blakadder@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants