Files
HomeAssistantVS/custom_components/intelligent_heating_pilot/infrastructure/adapters/context_reader.py
T
2026-07-08 10:43:39 -04:00

57 lines
2.0 KiB
Python

"""Home Assistant environment context reader adapter."""
from __future__ import annotations
from typing import Any
from homeassistant.core import HomeAssistant
from ...domain.interfaces import IContextReader
class HAContextReader(IContextReader):
"""Exposes HA context and sensor metadata for historical data adapters."""
def __init__(
self,
hass: HomeAssistant,
outdoor_temp_entity_id: str | None = None,
humidity_in_entity_id: str | None = None,
humidity_out_entity_id: str | None = None,
cloud_cover_entity_id: str | None = None,
) -> None:
"""Initialize the context reader.
Args:
hass: Home Assistant instance
outdoor_temp_entity_id: Outdoor temperature sensor (optional)
humidity_in_entity_id: Indoor humidity sensor (optional)
humidity_out_entity_id: Outdoor humidity sensor (optional)
cloud_cover_entity_id: Cloud coverage sensor (optional)
"""
self._hass = hass
self._outdoor_temp_entity_id = outdoor_temp_entity_id
self._humidity_in_entity_id = humidity_in_entity_id
self._humidity_out_entity_id = humidity_out_entity_id
self._cloud_cover_entity_id = cloud_cover_entity_id
def get_hass(self) -> Any:
"""Return the Home Assistant instance for adapters."""
return self._hass
def get_humidity_in_entity_id(self) -> str | None:
"""Return the indoor humidity sensor entity id (optional)."""
return self._humidity_in_entity_id
def get_humidity_out_entity_id(self) -> str | None:
"""Return the outdoor humidity sensor entity id (optional)."""
return self._humidity_out_entity_id
def get_outdoor_temp_entity_id(self) -> str | None:
"""Return the outdoor temperature sensor entity id (optional)."""
return self._outdoor_temp_entity_id
def get_cloud_cover_entity_id(self) -> str | None:
"""Return the cloud coverage sensor entity id (optional)."""
return self._cloud_cover_entity_id