mirror of https://github.com/arendst/Tasmota.git
Update changelogs
This commit is contained in:
parent
efce07086c
commit
4196f753c8
|
@ -15,7 +15,7 @@ All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- ESP32 platform update from 2024.09.10 to 2024.09.30 and Framework (Arduino Core) from v3.0.5 to v3.1.0.240926 (#22203)
|
- ESP32 platform update from 2024.09.10 to 2024.09.30 and Framework (Arduino Core) from v3.0.5 to v3.1.0.240926 (#22203)
|
||||||
- Berry improve `persist` dirty data handling
|
- Berry improve `persist` dirty data handling (#22246)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- ESP32 Range Extender compile error with core 3.0.0 (#22205)
|
- ESP32 Range Extender compile error with core 3.0.0 (#22205)
|
||||||
|
|
|
@ -178,6 +178,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
|
||||||
- Berry avoid `readbytes()` from crashing when file is too large [#22057](https://github.com/arendst/Tasmota/issues/22057)
|
- Berry avoid `readbytes()` from crashing when file is too large [#22057](https://github.com/arendst/Tasmota/issues/22057)
|
||||||
- Berry energy missing attributes [#22116](https://github.com/arendst/Tasmota/issues/22116)
|
- Berry energy missing attributes [#22116](https://github.com/arendst/Tasmota/issues/22116)
|
||||||
- Berry I2C to prepare M5Stack I2C STM32 based devices [#22143](https://github.com/arendst/Tasmota/issues/22143)
|
- Berry I2C to prepare M5Stack I2C STM32 based devices [#22143](https://github.com/arendst/Tasmota/issues/22143)
|
||||||
|
- Berry improve `persist` dirty data handling [#22246](https://github.com/arendst/Tasmota/issues/22246)
|
||||||
- ESP32-S3 uDisplay force cache writes to RGB display [#22222](https://github.com/arendst/Tasmota/issues/22222)
|
- ESP32-S3 uDisplay force cache writes to RGB display [#22222](https://github.com/arendst/Tasmota/issues/22222)
|
||||||
- LVGL Added OpenHASP icons to font `montserrat-28` [#22048](https://github.com/arendst/Tasmota/issues/22048)
|
- LVGL Added OpenHASP icons to font `montserrat-28` [#22048](https://github.com/arendst/Tasmota/issues/22048)
|
||||||
- LVGL compilation of lv_menu [#22188](https://github.com/arendst/Tasmota/issues/22188)
|
- LVGL compilation of lv_menu [#22188](https://github.com/arendst/Tasmota/issues/22188)
|
||||||
|
|
|
@ -65,6 +65,8 @@ struct DALI {
|
||||||
uint16_t received_dali_data; // Data received from DALI bus
|
uint16_t received_dali_data; // Data received from DALI bus
|
||||||
uint8_t pin_rx;
|
uint8_t pin_rx;
|
||||||
uint8_t pin_tx;
|
uint8_t pin_tx;
|
||||||
|
uint8_t address;
|
||||||
|
uint8_t command;
|
||||||
uint8_t dimmer;
|
uint8_t dimmer;
|
||||||
bool power;
|
bool power;
|
||||||
bool input_ready;
|
bool input_ready;
|
||||||
|
@ -138,6 +140,8 @@ void DaliDigitalWrite(bool pin_value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void DaliSendData(uint8_t firstByte, uint8_t secondByte) {
|
void DaliSendData(uint8_t firstByte, uint8_t secondByte) {
|
||||||
|
Dali->address = firstByte;
|
||||||
|
Dali->command = secondByte;
|
||||||
if (BROADCAST_DP == firstByte) {
|
if (BROADCAST_DP == firstByte) {
|
||||||
Dali->power = (secondByte); // State
|
Dali->power = (secondByte); // State
|
||||||
Dali->dimmer = secondByte; // Value
|
Dali->dimmer = secondByte; // Value
|
||||||
|
@ -184,25 +188,31 @@ void DaliPower(uint8_t val) {
|
||||||
|
|
||||||
/***********************************************************/
|
/***********************************************************/
|
||||||
|
|
||||||
|
void ResponseAppendDali(void) {
|
||||||
|
ResponseAppend_P(PSTR("\"" D_NAME_DALI "\":{\"Power\":\"%s\",\"Dimmer\":%d,\"Address\":%d,\"Command\":%d}"),
|
||||||
|
GetStateText(Dali->power), Dali->dimmer, Dali->address, Dali->command);
|
||||||
|
}
|
||||||
|
|
||||||
void DaliInput(void) {
|
void DaliInput(void) {
|
||||||
if (Dali->input_ready) {
|
if (Dali->input_ready) {
|
||||||
uint8_t DALIaddr = Dali->received_dali_data >> 8;
|
Dali->address = Dali->received_dali_data >> 8;
|
||||||
uint8_t DALIcmnd = Dali->received_dali_data;
|
Dali->command = Dali->received_dali_data;
|
||||||
if (BROADCAST_DP == DALIaddr) {
|
if (BROADCAST_DP == Dali->address) {
|
||||||
Dali->power = (DALIcmnd); // State
|
Dali->power = (Dali->command); // State
|
||||||
Dali->dimmer = DALIcmnd; // Value
|
Dali->dimmer = Dali->command; // Value
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddLog(LOG_LEVEL_DEBUG, PSTR("DLI: Received 0x%04X"), Dali->received_dali_data);
|
// AddLog(LOG_LEVEL_DEBUG, PSTR("DLI: Received 0x%04X"), Dali->received_dali_data);
|
||||||
Response_P(PSTR("{\"" D_NAME_DALI "\":{\"Power\":\"%s\",\"Dimmer\":%d,\"Address\":%d,\"Command\":%d}}"),
|
Response_P(PSTR("{"));
|
||||||
GetStateText(Dali->power), Dali->dimmer, DALIaddr, DALIcmnd);
|
ResponseAppendDali();
|
||||||
|
ResponseJsonEnd();
|
||||||
MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_NAME_DALI));
|
MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_NAME_DALI));
|
||||||
|
|
||||||
Dali->input_ready = false;
|
Dali->input_ready = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DaliPreInit(void) {
|
void DaliInit(void) {
|
||||||
if (!PinUsed(GPIO_DALI_TX) || !PinUsed(GPIO_DALI_RX)) { return; }
|
if (!PinUsed(GPIO_DALI_TX) || !PinUsed(GPIO_DALI_RX)) { return; }
|
||||||
|
|
||||||
Dali = (DALI*)calloc(sizeof(DALI), 1);
|
Dali = (DALI*)calloc(sizeof(DALI), 1);
|
||||||
|
@ -226,6 +236,10 @@ void DaliPreInit(void) {
|
||||||
DaliEnableRxInterrupt();
|
DaliEnableRxInterrupt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*********************************************************************************************\
|
||||||
|
* Experimental - Not functioning
|
||||||
|
\*********************************************************************************************/
|
||||||
|
|
||||||
bool DaliMqtt(void) {
|
bool DaliMqtt(void) {
|
||||||
/*
|
/*
|
||||||
XdrvMailbox.topic = topic;
|
XdrvMailbox.topic = topic;
|
||||||
|
@ -300,6 +314,10 @@ bool DaliMqtt(void) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*********************************************************************************************\
|
||||||
|
* Commands
|
||||||
|
\*********************************************************************************************/
|
||||||
|
|
||||||
bool DaliJsonParse(void) {
|
bool DaliJsonParse(void) {
|
||||||
// {"addr":254,"cmd":100}
|
// {"addr":254,"cmd":100}
|
||||||
// {"addr":2}
|
// {"addr":2}
|
||||||
|
@ -347,10 +365,6 @@ bool DaliJsonParse(void) {
|
||||||
return served;
|
return served;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*********************************************************************************************\
|
|
||||||
* Commands
|
|
||||||
\*********************************************************************************************/
|
|
||||||
|
|
||||||
void CmndDali(void) {
|
void CmndDali(void) {
|
||||||
if (XdrvMailbox.data_len > 0) {
|
if (XdrvMailbox.data_len > 0) {
|
||||||
if (DaliJsonParse()) {
|
if (DaliJsonParse()) {
|
||||||
|
@ -377,7 +391,12 @@ void CmndDaliDimmer(void) {
|
||||||
* Presentation
|
* Presentation
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
|
void DaliShow(bool json) {
|
||||||
|
if (json) {
|
||||||
|
ResponseAppend_P(PSTR(","));
|
||||||
|
ResponseAppendDali();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
* Interface
|
* Interface
|
||||||
|
@ -387,7 +406,7 @@ bool Xdrv75(uint32_t function) {
|
||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
if (FUNC_INIT == function) {
|
if (FUNC_INIT == function) {
|
||||||
DaliPreInit();
|
DaliInit();
|
||||||
}
|
}
|
||||||
else if (Dali) {
|
else if (Dali) {
|
||||||
switch (function) {
|
switch (function) {
|
||||||
|
@ -397,6 +416,14 @@ bool Xdrv75(uint32_t function) {
|
||||||
case FUNC_MQTT_DATA:
|
case FUNC_MQTT_DATA:
|
||||||
result = DaliMqtt();
|
result = DaliMqtt();
|
||||||
break;
|
break;
|
||||||
|
case FUNC_JSON_APPEND:
|
||||||
|
DaliShow(true);
|
||||||
|
break;
|
||||||
|
#ifdef USE_WEBSERVER
|
||||||
|
case FUNC_WEB_SENSOR:
|
||||||
|
DaliShow(false);
|
||||||
|
break;
|
||||||
|
#endif // USE_WEBSERVER
|
||||||
case FUNC_COMMAND:
|
case FUNC_COMMAND:
|
||||||
result = DecodeCommand(kDALICommands, DALICommand);
|
result = DecodeCommand(kDALICommands, DALICommand);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue