Initial commit - Support for Get Hydrometer and Get Fermentation Chamber

This commit is contained in:
2025-10-09 16:27:33 +02:00
commit df1be4c144
27 changed files with 1794 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
from rapt.client import ClientException
from rapt.model.fermentation_chamber import FermentationChamberModel, FermentationChamberTelemetryModel
from typing import Optional, List
from pydantic import TypeAdapter
from loguru import logger
class FermentationChamber():
def __init__(self, client) -> None:
self.client = client
def get_fermentation_chambers(self) -> Optional[List[FermentationChamberModel]]:
logger.debug("## GET FERMENTATION CHAMBERS ##")
try:
response_json = self.client.get_json("/api/fermentationchambers/getfermentationchambers", None)
logger.trace(response_json)
fermentation_chambers_adapter = TypeAdapter(list[FermentationChamberModel])
return fermentation_chambers_adapter.validate_python(response_json)
except ClientException:
#TODO: Handle Exception gracefully
return None
def get_fermentation_chamber(self, fermentation_chamber_id) -> Optional[FermentationChamberModel]:
logger.debug("## GET FERMENTATION CHAMBER ##")
params = {
"fermentationChamberId": fermentation_chamber_id
}
try:
response_json = self.client.get_json("/api/fermentationchambers/getfermentationchamber", params)
logger.trace(response_json)
return FermentationChamberModel.model_validate(response_json)
except ClientException:
#TODO: Handle Exception gracefully
return None
def get_telemetry(self, fermentation_chamber_id, start_date, end_date, profile_session_id) -> Optional[List[FermentationChamberTelemetryModel]]:
logger.debug("## GET TELEMETRY ##")
params = {
"fermentationChamberId": fermentation_chamber_id,
"startDate": start_date,
"endDate": end_date,
"profileSessionId": profile_session_id
}
try:
response_json = self.client.get_json("/api/fermentationchambers/gettelemetry", params)
logger.trace(response_json)
fermentation_chambers_adapter = TypeAdapter(list[FermentationChamberTelemetryModel])
return fermentation_chambers_adapter.validate_python(response_json)
except ClientException:
#TODO: Handle Exception gracefully
return None