Selaa lähdekoodia

Added button codes for rgbw night mode & changed enableNightMode()

Nils Bernhardt 8 vuotta sitten
vanhempi
commit
35c8a56202

+ 20 - 3
lib/MiLight/RgbwPacketFormatter.cpp

@@ -87,10 +87,27 @@ void RgbwPacketFormatter::updateColorWhite() {
 }
 
 void RgbwPacketFormatter::enableNightMode() {
-  uint8_t button = STATUS_COMMAND(ON, groupId);
+  // OFF-command must be sent before actual night mode command
+  command(STATUS_COMMAND(OFF, groupId), 0);
+
+  if (groupId == 0) {
+    Serial.print("Sending RGBW_GROUP_ALL_NIGHT... Group ");
+    command(RGBW_GROUP_ALL_NIGHT, 0);
+  } else if (groupId == 1) {
+    Serial.print("Sending RGBW_GROUP_1_NIGHT... Group ");
+    command(RGBW_GROUP_1_NIGHT, 0);
+  } else if (groupId == 2) {
+    Serial.print("Sending RGBW_GROUP_2_NIGHT... Group ");
+    command(RGBW_GROUP_2_NIGHT, 0);
+  } else if (groupId == 3) {
+    Serial.print("Sending RGBW_GROUP_3_NIGHT... Group ");
+    command(RGBW_GROUP_3_NIGHT, 0);
+  } else if (groupId == 4) {
+    Serial.print("Sending RGBW_GROUP_4_NIGHT... Group ");
+    command(RGBW_GROUP_4_NIGHT, 0);
+  }
 
-  command(button, 0);
-  command(button | 0x10, 0);
+  Serial.println(groupId);
 }
 
 void RgbwPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& result) {

+ 6 - 0
lib/MiLight/RgbwPacketFormatter.h

@@ -34,6 +34,12 @@ enum MiLightRgbwButton {
   RGBW_GROUP_3_MIN_LEVEL = 0x18,
   RGBW_GROUP_4_MAX_LEVEL = 0x19,
   RGBW_GROUP_4_MIN_LEVEL = 0x1A,
+
+  RGBW_GROUP_ALL_NIGHT = 0x12,
+  RGBW_GROUP_1_NIGHT = 0x14,
+  RGBW_GROUP_2_NIGHT = 0x16,
+  RGBW_GROUP_3_NIGHT = 0x18,
+  RGBW_GROUP_4_NIGHT = 0x1A,
 };
 
 #define RGBW_COMMAND_INDEX 5

+ 7 - 14
lib/Udp/V5MiLightUdpServer.cpp

@@ -24,8 +24,7 @@ void V5MiLightUdpServer::handleCommand(uint8_t command, uint8_t commandArg) {
     Serial.print(" - Group ");
     Serial.print(groupId);
     Serial.print(" - Command ");
-    Serial.print(command);
-    Serial.println();
+    Serial.println(command);
 
     this->lastGroup = groupId;
   // Command set_white for RGBW
@@ -39,8 +38,7 @@ void V5MiLightUdpServer::handleCommand(uint8_t command, uint8_t commandArg) {
     Serial.print(" - Group ");
     Serial.print(groupId);
     Serial.print(" - Command ");
-    Serial.print(command);
-    Serial.println();
+    Serial.println(command);
 
     this->lastGroup = groupId;
   } else {
@@ -85,8 +83,7 @@ void V5MiLightUdpServer::handleCommand(uint8_t command, uint8_t commandArg) {
         Serial.print("MiLight-RGBW: GROUP_ALL_NIGHT received! Device ");
         Serial.print(deviceId);
         Serial.print(" - Group ");
-        Serial.print(lastGroup);
-        Serial.println();
+        Serial.println(lastGroup);
         client->enableNightMode();
         break;
 
@@ -94,8 +91,7 @@ void V5MiLightUdpServer::handleCommand(uint8_t command, uint8_t commandArg) {
         Serial.print("MiLight-RGBW: GROUP_1_NIGHT received! Device ");
         Serial.print(deviceId);
         Serial.print(" - Group ");
-        Serial.print(lastGroup);
-        Serial.println();
+        Serial.println(lastGroup);
         client->enableNightMode();
         break;
 
@@ -103,8 +99,7 @@ void V5MiLightUdpServer::handleCommand(uint8_t command, uint8_t commandArg) {
         Serial.print("MiLight-RGBW: GROUP_2_NIGHT received! Device ");
         Serial.print(deviceId);
         Serial.print(" - Group ");
-        Serial.print(lastGroup);
-        Serial.println();
+        Serial.println(lastGroup);
         client->enableNightMode();
         break;
 
@@ -112,8 +107,7 @@ void V5MiLightUdpServer::handleCommand(uint8_t command, uint8_t commandArg) {
         Serial.print("MiLight-RGBW: GROUP_3_NIGHT received! Device ");
         Serial.print(deviceId);
         Serial.print(" - Group ");
-        Serial.print(lastGroup);
-        Serial.println();
+        Serial.println(lastGroup);
         client->enableNightMode();
         break;
 
@@ -121,8 +115,7 @@ void V5MiLightUdpServer::handleCommand(uint8_t command, uint8_t commandArg) {
         Serial.print("MiLight-RGBW: GROUP_4_NIGHT received! Device ");
         Serial.print(deviceId);
         Serial.print(" - Group ");
-        Serial.print(lastGroup);
-        Serial.println();
+        Serial.println(lastGroup);
         client->enableNightMode();
         break;