started stages logic

This commit is contained in:
John Lancaster
2025-11-21 07:54:49 -06:00
parent 19d1f9bdfe
commit 98d9ad0556
3 changed files with 124 additions and 3 deletions

36
apps/stages.py Normal file
View File

@@ -0,0 +1,36 @@
import functools
from datetime import datetime, time
from pathlib import Path
from typing import Annotated, Any
from appdaemon.adapi import ADAPI
from pydantic import (
BaseModel,
BeforeValidator,
Field,
PrivateAttr,
TypeAdapter,
field_serializer,
field_validator,
)
from rich import print as rprint
class EntityState(BaseModel):
state: bool = True
color_temp_kelvin: int
brightness: int
@field_serializer("state")
def convert_state(self, val: Any):
if val:
return "on"
else:
return "off"
class Stage(BaseModel):
# start: Annotated[time, BeforeValidator(lambda v: parser(v).time())]
start: str
_start: time = PrivateAttr()
scene: dict[str, EntityState]