Add software brightness control for Adalight devices
Emulates hardware brightness by multiplying pixel values before serial send. Stored per-device and persisted across restarts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,7 @@ class Device:
|
||||
enabled: bool = True,
|
||||
device_type: str = "wled",
|
||||
baud_rate: Optional[int] = None,
|
||||
software_brightness: int = 255,
|
||||
calibration: Optional[CalibrationConfig] = None,
|
||||
created_at: Optional[datetime] = None,
|
||||
updated_at: Optional[datetime] = None,
|
||||
@@ -44,6 +45,7 @@ class Device:
|
||||
self.enabled = enabled
|
||||
self.device_type = device_type
|
||||
self.baud_rate = baud_rate
|
||||
self.software_brightness = software_brightness
|
||||
self.calibration = calibration or create_default_calibration(led_count)
|
||||
self.created_at = created_at or datetime.utcnow()
|
||||
self.updated_at = updated_at or datetime.utcnow()
|
||||
@@ -63,6 +65,8 @@ class Device:
|
||||
}
|
||||
if self.baud_rate is not None:
|
||||
d["baud_rate"] = self.baud_rate
|
||||
if self.software_brightness != 255:
|
||||
d["software_brightness"] = self.software_brightness
|
||||
return d
|
||||
|
||||
@classmethod
|
||||
@@ -87,6 +91,7 @@ class Device:
|
||||
enabled=data.get("enabled", True),
|
||||
device_type=data.get("device_type", "wled"),
|
||||
baud_rate=data.get("baud_rate"),
|
||||
software_brightness=data.get("software_brightness", 255),
|
||||
calibration=calibration,
|
||||
created_at=datetime.fromisoformat(data.get("created_at", datetime.utcnow().isoformat())),
|
||||
updated_at=datetime.fromisoformat(data.get("updated_at", datetime.utcnow().isoformat())),
|
||||
|
||||
Reference in New Issue
Block a user