import os
import logging
from avenieca.api.eca import ECA
from avenieca.api.model import Config, ESSInsert, Error, AggregateError
# Setup logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# Initialize client with error handling
try:
config = Config(
uri="http://localhost:2580/v1",
username=os.getenv("USERNAME"),
password=os.getenv("PASSWORD")
)
eca = ECA(config)
logger.info("Successfully initialized ECA client")
except Exception as e:
logger.error(f"Failed to initialize ECA: {e}")
raise
# Create ESS with comprehensive error handling
ess_data = ESSInsert(
module_id="air_conditioner",
state=[25.0],
valence=10.0,
score=5
)
res, status = eca.ess.create(data=ess_data)
if status == 201:
logger.info(f"Created ESS {res.id}")
print(f"Success: ESS {res.id} created")
elif isinstance(res, AggregateError):
logger.error(f"Aggregate validation failed: {res.__dict__}")
print("Aggregate validation errors - check logs")
elif isinstance(res, Error):
logger.error(f"API errors: {res.errors}")
print(f"Failed: {', '.join(res.errors)}")
else:
logger.error(f"Unexpected error (status {status}): {res}")
print(f"Failed with status {status}")