From 902dc6b69c016d99a7bc530b4b59410ddaf3758e Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Wed, 25 Sep 2019 17:56:03 +0200 Subject: [PATCH 1/2] Fix rounding issue when reading Channel value --- sonoff/xdrv_04_light.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sonoff/xdrv_04_light.ino b/sonoff/xdrv_04_light.ino index 1e30152f2..c41f1ae0e 100644 --- a/sonoff/xdrv_04_light.ino +++ b/sonoff/xdrv_04_light.ino @@ -2281,7 +2281,7 @@ void CmndChannel(void) light_controller.changeChannels(Light.current_color); coldim = true; } - ResponseCmndIdxNumber(Light.current_color[XdrvMailbox.index -1] * 100 / 255); + ResponseCmndIdxNumber(changeUIntScale(Light.current_color[XdrvMailbox.index -1],0,255,0,100)); if (coldim) { LightPreparePower(); } From 9c885079f087bf3555e4d46bb9b015e533960582 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Wed, 25 Sep 2019 18:14:58 +0200 Subject: [PATCH 2/2] Allow Hue emulation friendly names to go beyond 13 --- sonoff/xdrv_20_hue.ino | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/sonoff/xdrv_20_hue.ino b/sonoff/xdrv_20_hue.ino index 7d7146272..2b40b2eea 100644 --- a/sonoff/xdrv_20_hue.ino +++ b/sonoff/xdrv_20_hue.ino @@ -364,12 +364,15 @@ void HueLightStatus2(uint8_t device, String *response) char fname[33]; strcpy(fname, Settings.friendlyname[MAX_FRIENDLYNAMES-1]); uint32_t fname_len = strlen(fname); - if (fname_len >= 33-3) { - fname[33-3] = 0x00; - fname_len = 33-3; - } + if (fname_len > 30) { fname_len = 30; } fname[fname_len++] = '-'; - fname[fname_len++] = '0' + device - MAX_FRIENDLYNAMES; + if (device - MAX_FRIENDLYNAMES < 10) { + fname[fname_len++] = '0' + device - MAX_FRIENDLYNAMES; + } else { + fname[fname_len++] = 'A' + device - MAX_FRIENDLYNAMES - 10; + } + fname[fname_len] = 0x00; + response->replace("{j1", fname); } response->replace("{j2", GetHueDeviceId(device));