more work

This commit is contained in:
John Lancaster
2024-03-10 17:33:22 -05:00
parent e90ad5a071
commit 541475d68b
5 changed files with 93 additions and 22 deletions

38
model.py Normal file
View File

@@ -0,0 +1,38 @@
from typing import Dict
from pydantic import (
BaseModel,
ValidationError,
field_validator,
)
def validate_int(v):
if not len(bytes(v)) == 1:
raise ValidationError()
class State(BaseModel):
state: bool = True
brightness: int = None
color_temp: int = None
@field_validator('brightness')
@classmethod
def validate_brightness(cls, v: int) -> int:
assert 0 <= v <= 255
return v
@field_validator('color_temp')
@classmethod
def validate_color_temp(cls, v: int) -> int:
assert 200 <= v <= 600
return v
# Scene = RootModel[Dict[str, State]]
class ApplyScene(BaseModel):
entities: Dict[str, State]
transition: int = None