Forráskód Böngészése

More appropriate name for GroupId (BulbId)

Chris Mullins 8 éve
szülő
commit
b6c0c430ea

+ 10 - 10
lib/MQTT/BulbStateUpdater.cpp

@@ -7,28 +7,28 @@ BulbStateUpdater::BulbStateUpdater(Settings& settings, MqttClient& mqttClient, G
     lastFlush(0)
 { }
 
-void BulbStateUpdater::enqueueUpdate(GroupId groupId, GroupState& groupState) {
+void BulbStateUpdater::enqueueUpdate(BulbId bulbId, GroupState& groupState) {
   // If can flush immediately, do so (avoids lookup of group state later).
   if (canFlush()) {
-    flushGroup(groupId, groupState);
+    flushGroup(bulbId, groupState);
   } else {
-    staleGroups.push(groupId);
+    staleGroups.push(bulbId);
   }
 }
 
 void BulbStateUpdater::loop() {
   while (canFlush() && staleGroups.size() > 0) {
-    GroupId groupId = staleGroups.shift();
-    GroupState& groupState = stateStore.get(groupId);
+    BulbId bulbId = staleGroups.shift();
+    GroupState& groupState = stateStore.get(bulbId);
 
     if (groupState.isMqttDirty()) {
-      flushGroup(groupId, groupState);
+      flushGroup(bulbId, groupState);
       groupState.clearMqttDirty();
     }
   }
 }
 
-inline void BulbStateUpdater::flushGroup(GroupId groupId, GroupState& state) {
+inline void BulbStateUpdater::flushGroup(BulbId bulbId, GroupState& state) {
   char buffer[200];
   StaticJsonBuffer<200> jsonBuffer;
   JsonObject& message = jsonBuffer.createObject();
@@ -36,9 +36,9 @@ inline void BulbStateUpdater::flushGroup(GroupId groupId, GroupState& state) {
   message.printTo(buffer);
 
   mqttClient.sendState(
-    *MiLightRemoteConfig::fromType(groupId.deviceType),
-    groupId.deviceId,
-    groupId.groupId,
+    *MiLightRemoteConfig::fromType(bulbId.deviceType),
+    bulbId.deviceId,
+    bulbId.groupId,
     buffer
   );
 

+ 3 - 3
lib/MQTT/BulbStateUpdater.h

@@ -14,17 +14,17 @@ class BulbStateUpdater {
 public:
   BulbStateUpdater(Settings& settings, MqttClient& mqttClient, GroupStateStore& stateStore);
 
-  void enqueueUpdate(GroupId groupId, GroupState& groupState);
+  void enqueueUpdate(BulbId bulbId, GroupState& groupState);
   void loop();
 
 private:
   Settings& settings;
   MqttClient& mqttClient;
   GroupStateStore& stateStore;
-  CircularBuffer<GroupId, MILIGHT_MAX_STALE_MQTT_GROUPS> staleGroups;
+  CircularBuffer<BulbId, MILIGHT_MAX_STALE_MQTT_GROUPS> staleGroups;
   unsigned long lastFlush;
 
-  inline void flushGroup(GroupId groupId, GroupState& state);
+  inline void flushGroup(BulbId bulbId, GroupState& state);
   inline bool canFlush() const;
 };
 

+ 3 - 3
lib/MiLight/CctPacketFormatter.cpp

@@ -146,10 +146,10 @@ MiLightStatus CctPacketFormatter::cctCommandToStatus(uint8_t command) {
   }
 }
 
-GroupId CctPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore) {
+BulbId CctPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore) {
   uint8_t command = packet[CCT_COMMAND_INDEX] & 0x7F;
 
-  GroupId groupId(
+  BulbId bulbId(
     (packet[1] << 8) | packet[2],
     packet[3],
     REMOTE_TYPE_CCT
@@ -170,7 +170,7 @@ GroupId CctPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& resul
     result["button_id"] = command;
   }
 
-  return groupId;
+  return bulbId;
 }
 
 void CctPacketFormatter::format(uint8_t const* packet, char* buffer) {

+ 1 - 1
lib/MiLight/CctPacketFormatter.h

@@ -43,7 +43,7 @@ public:
 
   virtual void format(uint8_t const* packet, char* buffer);
   virtual void initializePacket(uint8_t* packet);
-  virtual GroupId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
+  virtual BulbId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
 
   static uint8_t getCctStatusButton(uint8_t groupId, MiLightStatus status);
   static uint8_t cctCommandIdToGroup(uint8_t command);

+ 6 - 6
lib/MiLight/FUT089PacketFormatter.cpp

@@ -45,12 +45,12 @@ void FUT089PacketFormatter::enableNightMode() {
   command(FUT089_ON | 0x80, arg);
 }
 
-GroupId FUT089PacketFormatter::parsePacket(const uint8_t *packet, JsonObject& result, GroupStateStore* stateStore) {
+BulbId FUT089PacketFormatter::parsePacket(const uint8_t *packet, JsonObject& result, GroupStateStore* stateStore) {
   uint8_t packetCopy[V2_PACKET_LEN];
   memcpy(packetCopy, packet, V2_PACKET_LEN);
   V2RFEncoding::decodeV2Packet(packetCopy);
 
-  GroupId groupId(
+  BulbId bulbId(
     (packetCopy[2] << 8) | packetCopy[3],
     packetCopy[7],
     REMOTE_TYPE_FUT089
@@ -68,10 +68,10 @@ GroupId FUT089PacketFormatter::parsePacket(const uint8_t *packet, JsonObject& re
       result["command"] = "white_mode";
     } else if (arg <= 8) { // Group is not reliably encoded in group byte. Extract from arg byte
       result["state"] = "ON";
-      groupId.groupId = arg;
+      bulbId.groupId = arg;
     } else if (arg >= 9 && arg <= 17) {
       result["state"] = "OFF";
-      groupId.groupId = arg-9;
+      bulbId.groupId = arg-9;
     }
   } else if (command == FUT089_COLOR) {
     uint8_t rescaledColor = (arg - FUT089_COLOR_OFFSET) % 0x100;
@@ -83,7 +83,7 @@ GroupId FUT089PacketFormatter::parsePacket(const uint8_t *packet, JsonObject& re
   // saturation == kelvin. arg ranges are the same, so can't distinguish
   // without using state
   } else if (command == FUT089_SATURATION) {
-    GroupState& state = stateStore->get(groupId);
+    GroupState& state = stateStore->get(bulbId);
 
     if (state.getBulbMode() == BULB_MODE_COLOR) {
       result["saturation"] = 100 - constrain(arg, 0, 100);
@@ -97,5 +97,5 @@ GroupId FUT089PacketFormatter::parsePacket(const uint8_t *packet, JsonObject& re
     result["argument"] = arg;
   }
 
-  return groupId;
+  return bulbId;
 }

+ 1 - 1
lib/MiLight/FUT089PacketFormatter.h

@@ -39,7 +39,7 @@ public:
   virtual void modeSpeedUp();
   virtual void updateMode(uint8_t mode);
 
-  virtual GroupId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
+  virtual BulbId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
 };
 
 #endif

+ 2 - 2
lib/MiLight/PacketFormatter.cpp

@@ -64,8 +64,8 @@ void PacketFormatter::enableNightMode() { }
 void PacketFormatter::updateTemperature(uint8_t value) { }
 void PacketFormatter::updateSaturation(uint8_t value) { }
 
-GroupId PacketFormatter::parsePacket(const uint8_t *packet, JsonObject &result, GroupStateStore* stateStore) {
-  return DEFAULT_GROUP_ID;
+BulbId PacketFormatter::parsePacket(const uint8_t *packet, JsonObject &result, GroupStateStore* stateStore) {
+  return DEFAULT_BULB_ID;
 }
 
 void PacketFormatter::pair() {

+ 1 - 1
lib/MiLight/PacketFormatter.h

@@ -71,7 +71,7 @@ public:
   virtual void prepare(uint16_t deviceId, uint8_t groupId);
   virtual void format(uint8_t const* packet, char* buffer);
 
-  virtual GroupId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
+  virtual BulbId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
 
   static void formatV1Packet(uint8_t const* packet, char* buffer);
 

+ 5 - 5
lib/MiLight/RgbCctPacketFormatter.cpp

@@ -63,12 +63,12 @@ void RgbCctPacketFormatter::enableNightMode() {
   command(RGB_CCT_ON | 0x80, arg);
 }
 
-GroupId RgbCctPacketFormatter::parsePacket(const uint8_t *packet, JsonObject& result, GroupStateStore* stateStore) {
+BulbId RgbCctPacketFormatter::parsePacket(const uint8_t *packet, JsonObject& result, GroupStateStore* stateStore) {
   uint8_t packetCopy[V2_PACKET_LEN];
   memcpy(packetCopy, packet, V2_PACKET_LEN);
   V2RFEncoding::decodeV2Packet(packetCopy);
 
-  GroupId groupId(
+  BulbId bulbId(
     (packetCopy[2] << 8) | packetCopy[3],
     packetCopy[7],
     REMOTE_TYPE_RGB_CCT
@@ -84,10 +84,10 @@ GroupId RgbCctPacketFormatter::parsePacket(const uint8_t *packet, JsonObject& re
       result["command"] = "mode_speed_up";
     } else if (arg < 5) { // Group is not reliably encoded in group byte. Extract from arg byte
       result["state"] = "ON";
-      groupId.groupId = arg;
+      bulbId.groupId = arg;
     } else {
       result["state"] = "OFF";
-      groupId.groupId = arg-5;
+      bulbId.groupId = arg-5;
     }
   } else if (command == RGB_CCT_COLOR) {
     uint8_t rescaledColor = (arg - RGB_CCT_COLOR_OFFSET) % 0x100;
@@ -122,5 +122,5 @@ GroupId RgbCctPacketFormatter::parsePacket(const uint8_t *packet, JsonObject& re
     result["argument"] = arg;
   }
 
-  return groupId;
+  return bulbId;
 }

+ 1 - 1
lib/MiLight/RgbCctPacketFormatter.h

@@ -50,7 +50,7 @@ public:
   virtual void nextMode();
   virtual void previousMode();
 
-  virtual GroupId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
+  virtual BulbId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
 
 protected:
 

+ 3 - 3
lib/MiLight/RgbPacketFormatter.cpp

@@ -79,10 +79,10 @@ void RgbPacketFormatter::previousMode() {
   command(RGB_MODE_DOWN, 0);
 }
 
-GroupId RgbPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore) {
+BulbId RgbPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore) {
   uint8_t command = packet[RGB_COMMAND_INDEX] & 0x7F;
 
-  GroupId groupId(
+  BulbId bulbId(
     (packet[1] << 8) | packet[2],
     0,
     REMOTE_TYPE_RGB
@@ -108,7 +108,7 @@ GroupId RgbPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& resul
     result["button_id"] = command;
   }
 
-  return groupId;
+  return bulbId;
 }
 
 void RgbPacketFormatter::format(uint8_t const* packet, char* buffer) {

+ 1 - 1
lib/MiLight/RgbPacketFormatter.h

@@ -39,7 +39,7 @@ public:
   virtual void modeSpeedUp();
   virtual void nextMode();
   virtual void previousMode();
-  virtual GroupId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
+  virtual BulbId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
 
   virtual void initializePacket(uint8_t* packet);
 };

+ 4 - 4
lib/MiLight/RgbwPacketFormatter.cpp

@@ -93,10 +93,10 @@ void RgbwPacketFormatter::enableNightMode() {
   command(button | 0x10, 0);
 }
 
-GroupId RgbwPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore) {
+BulbId RgbwPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore) {
   uint8_t command = packet[RGBW_COMMAND_INDEX] & 0x7F;
 
-  GroupId groupId(
+  BulbId bulbId(
     (packet[1] << 8) | packet[2],
     packet[RGBW_BRIGHTNESS_GROUP_INDEX] & 0x7,
     REMOTE_TYPE_RGBW
@@ -107,7 +107,7 @@ GroupId RgbwPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& resu
     // Determine group ID from button ID for on/off. The remote's state is from
     // the last packet sent, not the current one, and that can be wrong for
     // on/off commands.
-    groupId.groupId = GROUP_FOR_STATUS_COMMAND(command);
+    bulbId.groupId = GROUP_FOR_STATUS_COMMAND(command);
   } else if (command == RGBW_BRIGHTNESS) {
     uint8_t brightness = 31;
     brightness -= packet[RGBW_BRIGHTNESS_GROUP_INDEX] >> 3;
@@ -128,7 +128,7 @@ GroupId RgbwPacketFormatter::parsePacket(const uint8_t* packet, JsonObject& resu
     result["button_id"] = command;
   }
 
-  return groupId;
+  return bulbId;
 }
 
 void RgbwPacketFormatter::format(uint8_t const* packet, char* buffer) {

+ 1 - 1
lib/MiLight/RgbwPacketFormatter.h

@@ -62,7 +62,7 @@ public:
   virtual void previousMode();
   virtual void updateMode(uint8_t mode);
   virtual void enableNightMode();
-  virtual GroupId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
+  virtual BulbId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
 
   virtual void initializePacket(uint8_t* packet);
 

+ 6 - 6
lib/MiLightState/GroupState.cpp

@@ -3,7 +3,7 @@
 #include <MiLightRemoteConfig.h>
 #include <RGBConverter.h>
 
-const GroupId DEFAULT_GROUP_ID;
+const BulbId DEFAULT_BULB_ID;
 
 const GroupState& GroupState::defaultState(MiLightRemoteType remoteType) {
   static GroupState instances[MiLightRemoteConfig::NUM_REMOTES];
@@ -21,19 +21,19 @@ const GroupState& GroupState::defaultState(MiLightRemoteType remoteType) {
   return state;
 }
 
-GroupId::GroupId()
+BulbId::BulbId()
   : deviceId(0),
     groupId(0),
     deviceType(REMOTE_TYPE_UNKNOWN)
 { }
 
-GroupId::GroupId(const GroupId &other)
+BulbId::BulbId(const BulbId &other)
   : deviceId(other.deviceId),
     groupId(other.groupId),
     deviceType(other.deviceType)
 { }
 
-GroupId::GroupId(
+BulbId::BulbId(
   const uint16_t deviceId, const uint8_t groupId, const MiLightRemoteType deviceType
 )
   : deviceId(deviceId),
@@ -41,13 +41,13 @@ GroupId::GroupId(
     deviceType(deviceType)
 { }
 
-void GroupId::operator=(const GroupId &other) {
+void BulbId::operator=(const BulbId &other) {
   deviceId = other.deviceId;
   groupId = other.groupId;
   deviceType = other.deviceType;
 }
 
-bool GroupId::operator==(const GroupId &other) {
+bool BulbId::operator==(const BulbId &other) {
   return deviceId == other.deviceId
     && groupId == other.groupId
     && deviceType == other.deviceType;

+ 7 - 13
lib/MiLightState/GroupState.h

@@ -6,16 +6,16 @@
 #ifndef _GROUP_STATE_H
 #define _GROUP_STATE_H
 
-struct GroupId {
+struct BulbId {
   uint16_t deviceId;
   uint8_t groupId;
   MiLightRemoteType deviceType;
 
-  GroupId();
-  GroupId(const GroupId& other);
-  GroupId(const uint16_t deviceId, const uint8_t groupId, const MiLightRemoteType deviceType);
-  bool operator==(const GroupId& other);
-  void operator=(const GroupId& other);
+  BulbId();
+  BulbId(const BulbId& other);
+  BulbId(const uint16_t deviceId, const uint8_t groupId, const MiLightRemoteType deviceType);
+  bool operator==(const BulbId& other);
+  void operator=(const BulbId& other);
 };
 
 enum BulbMode {
@@ -122,12 +122,6 @@ private:
   Data state;
 };
 
-struct GroupStateNode {
-  GroupState state;
-  GroupId nextNode;
-  GroupId prevNode;
-};
-
-extern const GroupId DEFAULT_GROUP_ID;
+extern const BulbId DEFAULT_BULB_ID;
 
 #endif

+ 4 - 4
lib/MiLightState/GroupStateCache.cpp

@@ -4,11 +4,11 @@ GroupStateCache::GroupStateCache(const size_t maxSize)
   : maxSize(maxSize)
 { }
 
-GroupState* GroupStateCache::get(const GroupId& id) {
+GroupState* GroupStateCache::get(const BulbId& id) {
   return getInternal(id);
 }
 
-GroupState* GroupStateCache::set(const GroupId& id, const GroupState& state) {
+GroupState* GroupStateCache::set(const BulbId& id, const GroupState& state) {
   GroupCacheNode* pushedNode = NULL;
   if (cache.size() >= maxSize) {
     pushedNode = cache.pop();
@@ -34,7 +34,7 @@ GroupState* GroupStateCache::set(const GroupId& id, const GroupState& state) {
   return cachedState;
 }
 
-GroupId GroupStateCache::getLru() {
+BulbId GroupStateCache::getLru() {
   GroupCacheNode* node = cache.getLast();
   return node->id;
 }
@@ -47,7 +47,7 @@ ListNode<GroupCacheNode*>* GroupStateCache::getHead() {
   return cache.getHead();
 }
 
-GroupState* GroupStateCache::getInternal(const GroupId& id) {
+GroupState* GroupStateCache::getInternal(const BulbId& id) {
   ListNode<GroupCacheNode*>* cur = cache.getHead();
 
   while (cur != NULL) {

+ 6 - 6
lib/MiLightState/GroupStateCache.h

@@ -6,10 +6,10 @@
 
 struct GroupCacheNode {
   GroupCacheNode() {}
-  GroupCacheNode(const GroupId& id, const GroupState& state)
+  GroupCacheNode(const BulbId& id, const GroupState& state)
     : id(id), state(state) { }
 
-  GroupId id;
+  BulbId id;
   GroupState state;
 };
 
@@ -17,9 +17,9 @@ class GroupStateCache {
 public:
   GroupStateCache(const size_t maxSize);
 
-  GroupState* get(const GroupId& id);
-  GroupState* set(const GroupId& id, const GroupState& state);
-  GroupId getLru();
+  GroupState* get(const BulbId& id);
+  GroupState* set(const BulbId& id, const GroupState& state);
+  BulbId getLru();
   bool isFull() const;
   ListNode<GroupCacheNode*>* getHead();
 
@@ -27,7 +27,7 @@ private:
   LinkedList<GroupCacheNode*> cache;
   const size_t maxSize;
 
-  GroupState* getInternal(const GroupId& id);
+  GroupState* getInternal(const BulbId& id);
 };
 
 #endif

+ 4 - 4
lib/MiLightState/GroupStatePersistence.cpp

@@ -3,7 +3,7 @@
 
 static const char FILE_PREFIX[] = "group_states/";
 
-void GroupStatePersistence::get(const GroupId &id, GroupState& state) {
+void GroupStatePersistence::get(const BulbId &id, GroupState& state) {
   char path[30];
   memset(path, 0, 30);
   buildFilename(id, path);
@@ -15,7 +15,7 @@ void GroupStatePersistence::get(const GroupId &id, GroupState& state) {
   }
 }
 
-void GroupStatePersistence::set(const GroupId &id, const GroupState& state) {
+void GroupStatePersistence::set(const BulbId &id, const GroupState& state) {
   char path[30];
   memset(path, 0, 30);
   buildFilename(id, path);
@@ -25,7 +25,7 @@ void GroupStatePersistence::set(const GroupId &id, const GroupState& state) {
   f.close();
 }
 
-void GroupStatePersistence::clear(const GroupId &id) {
+void GroupStatePersistence::clear(const BulbId &id) {
   char path[30];
   buildFilename(id, path);
 
@@ -34,7 +34,7 @@ void GroupStatePersistence::clear(const GroupId &id) {
   }
 }
 
-char* GroupStatePersistence::buildFilename(const GroupId &id, char *buffer) {
+char* GroupStatePersistence::buildFilename(const BulbId &id, char *buffer) {
   uint32_t compactId = (id.deviceId << 24) | (id.deviceType << 8) | id.groupId;
   return buffer + sprintf(buffer, "%s%x", FILE_PREFIX, compactId);
 }

+ 4 - 10
lib/MiLightState/GroupStatePersistence.h

@@ -3,22 +3,16 @@
 #ifndef _GROUP_STATE_PERSISTENCE_H
 #define _GROUP_STATE_PERSISTENCE_H
 
-struct PersistedStateNode {
-  GroupState state;
-  GroupId next;
-  GroupId prev;
-};
-
 class GroupStatePersistence {
 public:
-  void get(const GroupId& id, GroupState& state);
-  void set(const GroupId& id, const GroupState& state);
+  void get(const BulbId& id, GroupState& state);
+  void set(const BulbId& id, const GroupState& state);
 
-  void clear(const GroupId& id);
+  void clear(const BulbId& id);
 
 private:
 
-  static char* buildFilename(const GroupId& id, char* buffer);
+  static char* buildFilename(const BulbId& id, char* buffer);
 };
 
 #endif

+ 2 - 2
lib/MiLightState/GroupStateStore.cpp

@@ -4,7 +4,7 @@ GroupStateStore::GroupStateStore(const size_t maxSize)
   : cache(GroupStateCache(maxSize))
 { }
 
-GroupState& GroupStateStore::get(const GroupId& id) {
+GroupState& GroupStateStore::get(const BulbId& id) {
   GroupState* state = cache.get(id);
 
   if (state == NULL) {
@@ -18,7 +18,7 @@ GroupState& GroupStateStore::get(const GroupId& id) {
   return *state;
 }
 
-GroupState& GroupStateStore::set(const GroupId &id, const GroupState& state) {
+GroupState& GroupStateStore::set(const BulbId &id, const GroupState& state) {
   GroupState& storedState = get(id);
   storedState = state;
   return storedState;

+ 3 - 3
lib/MiLightState/GroupStateStore.h

@@ -9,15 +9,15 @@ class GroupStateStore {
 public:
   GroupStateStore(const size_t maxSize);
 
-  GroupState& get(const GroupId& id);
-  GroupState& set(const GroupId& id, const GroupState& state);
+  GroupState& get(const BulbId& id);
+  GroupState& set(const BulbId& id, const GroupState& state);
 
   void flush();
 
 private:
   GroupStateCache cache;
   GroupStatePersistence persistence;
-  LinkedList<GroupId> evictedIds;
+  LinkedList<BulbId> evictedIds;
 
   void trackEviction();
 };

+ 6 - 6
lib/WebServer/MiLightHttpServer.cpp

@@ -318,9 +318,9 @@ void MiLightHttpServer::handleGetGroup(const UrlTokenBindings* urlBindings) {
     return;
   }
 
-  GroupId groupId(parseInt<uint16_t>(_deviceId), _groupId, _remoteType->type);
-  GroupState& state = stateStore.get(groupId);
-  sendGroupState(stateStore.get(groupId));
+  BulbId bulbId(parseInt<uint16_t>(_deviceId), _groupId, _remoteType->type);
+  GroupState& state = stateStore.get(bulbId);
+  sendGroupState(stateStore.get(bulbId));
 }
 
 void MiLightHttpServer::handleUpdateGroup(const UrlTokenBindings* urlBindings) {
@@ -350,7 +350,7 @@ void MiLightHttpServer::handleUpdateGroup(const UrlTokenBindings* urlBindings) {
   TokenIterator groupIdItr(groupIds, _groupIds.length());
   TokenIterator remoteTypesItr(remoteTypes, _remoteTypes.length());
 
-  GroupId foundGroupId;
+  BulbId foundBulbId;
   size_t groupCount = 0;
 
   while (remoteTypesItr.hasNext()) {
@@ -374,14 +374,14 @@ void MiLightHttpServer::handleUpdateGroup(const UrlTokenBindings* urlBindings) {
 
         milightClient->prepare(config, deviceId, groupId);
         handleRequest(request);
-        foundGroupId = GroupId(deviceId, groupId, config->type);
+        foundBulbId = BulbId(deviceId, groupId, config->type);
         groupCount++;
       }
     }
   }
 
   if (groupCount == 1) {
-    sendGroupState(stateStore.get(foundGroupId));
+    sendGroupState(stateStore.get(foundBulbId));
   } else {
     server.send(200, APPLICATION_JSON, "true");
   }

+ 1 - 1
platformio.ini

@@ -23,7 +23,7 @@ lib_deps_external =
   CircularBuffer
 extra_scripts =
   pre:.build_web.py
-build_flags = !python .get_version.py -DMQTT_MAX_PACKET_SIZE=200 -Idist -Ilib/DataStructures
+build_flags = !python .get_version.py -DMQTT_MAX_PACKET_SIZE=200 -Idist -Ilib/DataStructures -DDEBUG_PRINTF
 # -D DEBUG_PRINTF
 # -D MQTT_DEBUG
 # -D MILIGHT_UDP_DEBUG

+ 6 - 6
src/main.cpp

@@ -85,27 +85,27 @@ void initMilightUdpServers() {
 void onPacketSentHandler(uint8_t* packet, const MiLightRemoteConfig& config) {
   StaticJsonBuffer<200> buffer;
   JsonObject& result = buffer.createObject();
-  GroupId groupId = config.packetFormatter->parsePacket(packet, result, &stateStore);
+  BulbId bulbId = config.packetFormatter->parsePacket(packet, result, &stateStore);
 
-  if (&groupId == &DEFAULT_GROUP_ID) {
+  if (&bulbId == &DEFAULT_BULB_ID) {
     Serial.println(F("Skipping packet handler because packet was not decoded"));
     return;
   }
 
   const MiLightRemoteConfig& remoteConfig =
-    *MiLightRemoteConfig::fromType(groupId.deviceType);
+    *MiLightRemoteConfig::fromType(bulbId.deviceType);
 
   if (mqttClient) {
-    GroupState& groupState = stateStore.get(groupId);
+    GroupState& groupState = stateStore.get(bulbId);
     groupState.patch(result);
 
     // Sends the state delta derived from the raw packet
     char output[200];
     result.printTo(output);
-    mqttClient->sendUpdate(remoteConfig, groupId.deviceId, groupId.groupId, output);
+    mqttClient->sendUpdate(remoteConfig, bulbId.deviceId, bulbId.groupId, output);
 
     // Sends the entire state
-    bulbStateUpdater->enqueueUpdate(groupId, groupState);
+    bulbStateUpdater->enqueueUpdate(bulbId, groupState);
   }
 
   httpServer->handlePacketSent(packet, remoteConfig);