canonical: https://jentic.com/apis/swaggerhub.gmacem/home-iot-api

# Gmacem home-iot-api

The API for the EatBacon IOT project. The API exposes 15 endpoints.

## For AI agents

Programmatically register, getdevices. Covers 15 operations.

## Scope

Does not handle payments, communications, or crm - use for iot and hardware only.

## Capabilities

- register
- getDevices
- setDimmer
- getSwitchState
- setSwitch

## Use cases

### IoT and Hardware Operations

Use the home-iot-api to perform iot operations programmatically. The API provides 15 endpoints covering core functionality including register, getdevices, setdimmer.

Example prompt: Call POST /devices to register

### Automated Device Management

Automate device operations by combining multiple home-iot-api endpoints. Agents can getdevices and then setdimmer in a single workflow.

Example prompt: Call GET /devices to getdevices, then verify the result

### AI Agent Integration via Jentic

AI agents discover and call home-iot-api endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle none tokens manually.

Example prompt: Search Jentic for 'register', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/devices` | register |
| GET | `/devices` | getDevices |
| POST | `/lighting/dimmers/{deviceId}/{value}` | setDimmer |
| POST | `/lighting/dimmers/{deviceId}/{value}/timer/{timeunit}` | setDimmerTimer |
| GET | `/lighting/switches/{deviceId}` | getSwitchState |
| POST | `/lighting/switches/{deviceId}/{value}` | setSwitch |
| POST | `/lighting/switches/{deviceId}/{value}/timer/{minutes}` | setSwitchTimer |
| GET | `/lightingSummary` | getLightingSummary |

## Key resources

- **Device** — Operations related to Device
- **Environment** — Operations related to Environment
- **Z-Wave** — Operations related to Z-Wave
- **Zones** — Operations related to Zones

## Why Jentic

- **Setup:** Wiring the home-iot-api by hand means coding device registration and the lighting dimmer and switch controls against its virtual host and handling responses and retries yourself. Through Jentic you install once, import home-iot-api from the API Directory, store the connection once, and your agent calls it.
- **Permission scoping:** The home-iot-api puts the device id in the URL path (`/lighting/switches/{deviceId}` and `/lighting/dimmers/{deviceId}`), so a rule can pin your agent to one device: it can read and set that device and nothing else. You choose the operations it may call, so registering new devices or timed controls are not included unless you add them.
- **Credential handling:** This API declares no authentication, so there is no secret to hand around; any connection settings are held once by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'turn on a light switch' or 'set a dimmer level', and Jentic returns the matching home-iot-api operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Particle** — Alternative iot API
- **Stripe** — Complementary API for broader integration workflows
- **Twilio** — Complementary API for broader integration workflows

## FAQ

### What authentication does the home-iot-api use?

The home-iot-api uses no authentication. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I register with the home-iot-api?

Yes. Use the POST /devices endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the home-iot-api?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I register through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'register'. Jentic returns the matching home-iot-api operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the home-iot-api have?

The home-iot-api exposes 15 endpoints covering device, environment, z-wave operations.

### Can I limit what my agent is allowed to do with the Home IoT API?

Yes. Because you run Jentic One yourself, you write the rules that decide which Home IoT API operations and connection settings your agent may use. Since the device id sits in the URL path for calls like GET `/lighting/switches/{deviceId}` and POST `/lighting/dimmers/{deviceId}/{value}`, you can pin the agent to a single device so it only reads and sets that one and nothing else. You choose the operations it may call, so registering new devices with POST /devices or setting timed controls stays off unless you add it.
