From d4d174626336a20ebed7bb191958c2457a429998 Mon Sep 17 00:00:00 2001 From: jath03 Date: Wed, 5 Nov 2025 19:31:18 -0600 Subject: [PATCH 1/2] Added state_hash property to devices --- openrgb/orgb.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openrgb/orgb.py b/openrgb/orgb.py index 523e650..60d9d34 100644 --- a/openrgb/orgb.py +++ b/openrgb/orgb.py @@ -200,6 +200,7 @@ def _update(self, data: utils.ControllerData): self._colors = self.colors[:] self.active_mode = data.active_mode self.data = data + self.state_hash = hash(str(data)) def _set_device_color(self, color: utils.RGBColor, fast: bool = False): ''' From dfd97f1103a8b9720019975d667b08709b8856f5 Mon Sep 17 00:00:00 2001 From: jath03 Date: Wed, 5 Nov 2025 20:01:48 -0600 Subject: [PATCH 2/2] Added client-wide state hash --- openrgb/orgb.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openrgb/orgb.py b/openrgb/orgb.py index 60d9d34..f6206b1 100644 --- a/openrgb/orgb.py +++ b/openrgb/orgb.py @@ -411,6 +411,7 @@ def _callback(self, device: int, type: int, data: Any): self.devices[device] = Device(data, device, self.comms) else: self.devices[device]._update(data) # type: ignore + self.state_hash = hash("".join(str(dev.state_hash) for dev in self.devices if dev)) except IndexError: self.comms.requestDeviceNum() elif type == utils.PacketType.DEVICE_LIST_UPDATED: