#!/usr/bin/env python3
import json
from urllib.request import Request, urlopen


class HomeAssistantClient:
    def __init__(self, base_url: str, token: str):
        self.base_url = base_url.rstrip("/")
        self.token = token

    def get_state(self, entity_id: str) -> dict:
        url = f"{self.base_url}/api/states/{entity_id}"
        req = Request(url, headers={
            "Authorization": f"Bearer {self.token}",
            "Content-Type": "application/json",
        })
        with urlopen(req, timeout=30) as resp:
            return json.loads(resp.read().decode())

    def is_person_home(self, entity_id: str) -> bool:
        try:
            return self.get_state(entity_id).get("state") == "home"
        except Exception as e:
            print(f"Failed to check {entity_id}: {e}")
            return False
