44 lines
1 KiB
Python
44 lines
1 KiB
Python
from fastapi import APIRouter
|
|
from fastapi.responses import HTMLResponse
|
|
from .handlers.hue import HueHandler
|
|
|
|
router = APIRouter()
|
|
hue = HueHandler("192.168.178.85")
|
|
|
|
|
|
@router.get("/scenes", tags=["scene"])
|
|
async def get_scenes():
|
|
return hue.list_scenes()
|
|
|
|
|
|
@router.post(
|
|
"/room/{room_name}/scene/{scene_name}",
|
|
tags=["room", "scene"],
|
|
)
|
|
async def activate_scene(room_name: str, scene_name: str):
|
|
try:
|
|
hue.in_room_activate_scene(room_name, scene_name)
|
|
except Exception as e:
|
|
return HTMLResponse(status_code=400, content=str(e))
|
|
|
|
|
|
@router.post(
|
|
"/room/{room_name}/off",
|
|
tags=["room"],
|
|
)
|
|
async def deactivate_room(room_name: str):
|
|
try:
|
|
hue.in_room_deactivate_lights(room_name)
|
|
except Exception as e:
|
|
return HTMLResponse(status_code=400, content=str(e))
|
|
|
|
|
|
@router.post(
|
|
"/room/{room_name}/on",
|
|
tags=["room"],
|
|
)
|
|
async def activate_room(room_name: str):
|
|
try:
|
|
hue.in_room_activate_lights(room_name)
|
|
except Exception as e:
|
|
return HTMLResponse(status_code=400, content=str(e))
|