diff --git a/lib/logitech_receiver/settings.py b/lib/logitech_receiver/settings.py index 904718f16..9fe57cc26 100644 --- a/lib/logitech_receiver/settings.py +++ b/lib/logitech_receiver/settings.py @@ -634,7 +634,10 @@ def __init__( def read(self, device, data_bytes=b""): assert self.feature is not None - return device.feature_request(self.feature, self.read_fnid, self.prefix, self.read_prefix, data_bytes) + if self.read_fnid is not None: + return device.feature_request(self.feature, self.read_fnid, self.prefix, self.read_prefix, data_bytes) + else: + return b"" def write(self, device, data_bytes): assert self.feature is not None diff --git a/lib/logitech_receiver/settings_templates.py b/lib/logitech_receiver/settings_templates.py index b9c06adef..d796e271f 100644 --- a/lib/logitech_receiver/settings_templates.py +++ b/lib/logitech_receiver/settings_templates.py @@ -1621,7 +1621,7 @@ def setup(cls, device, read_fnid, write_fnid, suffix): prefix = common.int2bytes(zone.index, 1) rw = settings.FeatureRW(cls.feature, read_fnid, write_fnid, prefix=prefix, suffix=suffix) validator = settings_validator.HeteroValidator( - data_class=hidpp20.LEDEffectSetting, options=zone.effects, readable=infos.readable + data_class=hidpp20.LEDEffectSetting, options=zone.effects, readable=infos.readable and read_fnid is not None ) setting = cls(device, rw, validator) setting.name = cls.name + str(int(zone.location)) @@ -1657,7 +1657,7 @@ class RGBEffectSetting(LEDZoneSetting): @classmethod def build(cls, device): - return cls.setup(device, 0xE0, 0x10, b"\x01") + return cls.setup(device, None, 0x10, b"\x01") class PerKeyLighting(settings.Settings):