Initial commit: Javis project

This commit is contained in:
Javis committed 2026-09-21 21:44:00 +02:00
commit 435c645f36
164 files changed
+35279

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
"""Configuration loaded from environment variables / .env."""
from __future__ import annotations
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
"""Settings for the homey-mcp server.
Values are read from environment variables (prefix ``HOMEY_``) or a
local ``.env`` file.
"""
model_config = SettingsConfigDict(
env_prefix="HOMEY_",
env_file=".env",
env_file_encoding="utf-8",
extra="ignore",
)
host: str = Field(..., description="IP or hostname of the Homey Pro.")
token: str = Field(..., description="Personal Access Token (Bearer).")
scheme: str = Field("http", description="http or https.")
port: int | None = Field(
None,
description="Optional TCP port (e.g. 4859 when Homey runs in a container).",
)
timeout: float = Field(10.0, description="HTTP timeout in seconds.")
event_buffer: int = Field(200, description="Max realtime events to retain.")
realtime: bool = Field(True, description="Enable Socket.IO realtime events.")
@property
def base_url(self) -> str:
if self.port is None:
return f"{self.scheme}://{self.host}"
return f"{self.scheme}://{self.host}:{self.port}"
def load_settings() -> Settings:
return Settings() # type: ignore[call-arg]