Sfoglia il codice sorgente

UDP-Gateway: Optimized handling of night mode commands

Command is send directly to the proper group.
Nils Bernhardt 8 anni fa
parent
commit
e3f3ca9930
1 ha cambiato i file con 8 aggiunte e 21 eliminazioni
  1. 8 21
      lib/Udp/V5MiLightUdpServer.cpp

+ 8 - 21
lib/Udp/V5MiLightUdpServer.cpp

@@ -21,12 +21,19 @@ void V5MiLightUdpServer::handleCommand(uint8_t command, uint8_t commandArg) {
 
     this->lastGroup = groupId;
   // Command set_white for RGBW
-} else if (command == UDP_RGBW_GROUP_ALL_WHITE || command == UDP_RGBW_GROUP_1_WHITE || command == UDP_RGBW_GROUP_2_WHITE || command == UDP_RGBW_GROUP_3_WHITE || command == UDP_RGBW_GROUP_4_WHITE) {
+  } else if (command == UDP_RGBW_GROUP_ALL_WHITE || command == UDP_RGBW_GROUP_1_WHITE || command == UDP_RGBW_GROUP_2_WHITE || command == UDP_RGBW_GROUP_3_WHITE || command == UDP_RGBW_GROUP_4_WHITE) {
     const uint8_t groupId = (command - UDP_RGBW_GROUP_ALL_WHITE)/2;
     client->prepare(&FUT096Config, deviceId, groupId);
     client->updateColorWhite();
 
     this->lastGroup = groupId;
+  // Set night_mode for RGBW
+  } else if (command == UDP_RGBW_GROUP_1_NIGHT || command == UDP_RGBW_GROUP_2_NIGHT || command == UDP_RGBW_GROUP_3_NIGHT || command == UDP_RGBW_GROUP_4_NIGHT) {
+      const uint8_t groupId = (command - UDP_RGBW_GROUP_1_NIGHT + 2)/2;
+      client->prepare(&FUT096Config, deviceId, groupId);
+      client->enableNightMode();
+
+    this->lastGroup = groupId;
   } else {
     client->prepare(&FUT096Config, deviceId, lastGroup);
     bool handled = true;
@@ -65,26 +72,6 @@ void V5MiLightUdpServer::handleCommand(uint8_t command, uint8_t commandArg) {
         );
         break;
 
-      case UDP_RGBW_GROUP_ALL_NIGHT:
-        client->enableNightMode();
-        break;
-
-      case UDP_RGBW_GROUP_1_NIGHT:
-        client->enableNightMode();
-        break;
-
-      case UDP_RGBW_GROUP_2_NIGHT:
-        client->enableNightMode();
-        break;
-
-      case UDP_RGBW_GROUP_3_NIGHT:
-        client->enableNightMode();
-        break;
-
-      case UDP_RGBW_GROUP_4_NIGHT:
-        client->enableNightMode();
-        break;
-
       default:
         handled = false;
     }