From c7845f18641eada7de51650f01c242e543a354b3 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Thu, 10 Oct 2024 18:04:27 +0200 Subject: [PATCH] Dali add dimmer control --- tasmota/tasmota_xdrv_driver/xdrv_75_dali.ino | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tasmota/tasmota_xdrv_driver/xdrv_75_dali.ino b/tasmota/tasmota_xdrv_driver/xdrv_75_dali.ino index 06fb4086e..462cc840e 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_75_dali.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_75_dali.ino @@ -190,17 +190,25 @@ void DaliInput(void) { if (Dali->input_ready) { Dali->address = Dali->received_dali_data >> 8; Dali->command = Dali->received_dali_data; + uint8_t dimmer = Dali->dimmer; if (BROADCAST_DP == Dali->address) { Dali->power = (Dali->command); // State if (Dali->power) { Dali->dimmer = Dali->command; // Value } } - // AddLog(LOG_LEVEL_DEBUG, PSTR("DLI: Received 0x%04X"), Dali->received_dali_data); - ResponseDali(); - MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_PRFX_DALI)); - + if (Settings->sbflag1.dali_web) { // DaliWeb 1 + if (dimmer != Dali->dimmer) { + dimmer = changeUIntScale(Dali->dimmer, 0, 254, 0, 100); + char scmnd[20]; + snprintf_P(scmnd, sizeof(scmnd), PSTR(D_CMND_DIMMER " %d"), dimmer); + ExecuteCommand(scmnd, SRC_SWITCH); + } + } else { + ResponseDali(); + MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_PRFX_DALI)); + } Dali->input_ready = false; } }