A minimal async library to control Sensio (EOPT Home) smart house systems. Designed for easy integration with Home Assistant.
- Unity and HA pilot - Supports getting devices from both unity and ha-pilot.
- Local control — All device commands sent directly to your controller on the LAN
- Cloud API — Fetch device configuration from the EOPT cloud (one-time setup)
- Lights — Turn individual lights and room-level lights on/off
- Scenes — Activate lighting scenes
The library separates cloud access from local control:
SensioApi— Authenticates with the Sensio cloud and fetches device data. Used once during setup; the result can be cached.Hub— Connects to your local controller and sends commands. Works entirely offline using cached device data.
from sensio_lib import SensioApi
async with SensioApi(username, password) as api:
projects = await api.login()
project_id = next(iter(projects.values()))
functions_data = await api.get_devices(project_id)
# Cache functions_data for future usefrom sensio_lib import Hub
async with Hub("192.168.1.100") as hub:
await hub.connect(cached_functions_data)
for light in hub.get_lights():
await light.turn_on()
for scene in hub.get_scenes():
await scene.activate()This library has been tested with a Sensio X1 controller. Testing is limited, so your experience may vary. Device support is also very limited to only scenes and lights. There is no reading of data back from the controller only sending of commands.
- Python 3.10+
aiohttp
Example script reads env params for sensitive data and does not store anything. Example for launching it and testing:
SENSIO_USERNAME="your user name / email" SENSIO_PASSWORD="your password" SENSIO_HUB_IP="your hub IP" python example.pyYou can also optionally specify SENSIO_ENV to target a different cloud environment (defaults to unity, can also be pilot-ha):
SENSIO_ENV="pilot-ha" SENSIO_USERNAME="your user name / email" SENSIO_PASSWORD="your password" SENSIO_HUB_IP="your hub IP" python example.py