import struct from core.utils import console from core.protocol import COMMANDS class get_setting: def __init__(self, bus): self.bus = bus def get(self, key: str): key_bytes = key.encode('utf-8') payload = struct.pack('B', len(key_bytes)) + key_bytes self.bus.send_request(COMMANDS['get_setting'], payload) # varlen_params=1 liest exakt 1 Byte Länge + entsprechend viele Datenbytes data = self.bus.receive_response(length=0, varlen_params=1) if not data or data.get('type') == 'error': return None raw = data['data'] val_len = raw[0] val_buf = raw[1:1+val_len] # Binärdaten zurück in Python-Typen parsen if key == "audio/vol" and val_len == 1: return struct.unpack('