diff --git a/CHANGELOG.md b/CHANGELOG.md index f4171acb7..ccacfb9d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ All notable changes to this project will be documented in this file. ## [14.4.1.1] ### Added - Command ``SetOption163 1`` to disable display of Device name in GUI header -- Berry `animate.crenel` primitive +- Berry `animate.crenel` primitive (#22673) ### Breaking Changed @@ -15,7 +15,7 @@ All notable changes to this project will be documented in this file. - TLS disable ECDSA for MQTT to ensure we don't break fingerprints after #22649 ### Fixed -- Berry Zigbee fix wrong attributes +- Berry Zigbee fix wrong attributes (#22684) ### Removed diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 9568d89be..2014282f8 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -117,6 +117,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm ## Changelog v14.4.1.1 ### Added - Command ``SetOption163 1`` to disable display of Device name in GUI header +- Berry `animate.crenel` primitive [#22673](https://github.com/arendst/Tasmota/issues/22673) ### Breaking Changed @@ -124,5 +125,6 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm - ESP32 disable PSRAM check (and on restart some relay toggles) with `#define DISABLE_PSRAMCHECK` [#21266](https://github.com/arendst/Tasmota/issues/21266) ### Fixed +- Berry Zigbee fix wrong attributes [#22684](https://github.com/arendst/Tasmota/issues/22684) ### Removed diff --git a/tasmota/tasmota_xdsp_display/xdsp_13_tm1640.ino b/tasmota/tasmota_xdsp_display/xdsp_13_tm1640.ino index a4f0318e2..3a600bf49 100644 --- a/tasmota/tasmota_xdsp_display/xdsp_13_tm1640.ino +++ b/tasmota/tasmota_xdsp_display/xdsp_13_tm1640.ino @@ -99,6 +99,7 @@ enum tm1640_display_options_types { typedef struct Tm1640_t { int8_t clock_pin; int8_t data_pin; + uint8_t brightness; bool show_clock; bool clock_24; bool clock_seconds; @@ -177,12 +178,20 @@ void TM1640SetBrightness(uint8_t level) { // 6 | 5 | 12/16 // 7 | 6 | 13/16 // 8 | 7 | 14/16 - uint8_t cmd = TM1640_CMD_DISPLAY | (level > 0 ? 0x8 : 0) | ((level - 1) % 8); + if (level) { + Tm1640->brightness = (level -1) & 7; + } + uint8_t cmd = TM1640_CMD_DISPLAY | (level > 0 ? 0x8 : 0) | Tm1640->brightness; TM1640Start(); TM1640Send (cmd); TM1640Stop(); } +void TM1640SetPower(int8_t state) { + uint8_t level = (1 == state) ? Tm1640->brightness +1 : 0; + TM1640SetBrightness(level); +} + /*********************************************************************************************\ * Init function \*********************************************************************************************/ @@ -313,26 +322,9 @@ void IoTTimerDim(void) } -void IoTTimerDisplayOn (void) -{ - IoTTimerDim(); -} - - -void IoTTimerDisplayOff (void) -{ - TM1640SetBrightness (0); -} - - void IoTTimerDisplayOnOff(void) { - if (disp_power) { - IoTTimerDisplayOn(); - } - else { - IoTTimerDisplayOff(); - } + TM1640SetPower(disp_power); }