Skip to content
Back to skills

051 Api Reference Ac25e371

ASecurity

Quick reference for Home Agent services, events, and tools.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationtestingapiperformancedocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 051-api_reference_ac25e371 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 051 Api Reference Ac25e371?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 051 Api Reference Ac25e371
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-051-api-reference-ac25e371/badge)](https://www.skillsdirectory.com/skills/tools-only-051-api-reference-ac25e371)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# API Reference

Quick reference for Home Agent services, events, and tools.

## Core Services

| Service | Description | Key Parameters |
|---------|-------------|----------------|
| **home_agent.process** | Process a conversation message | `text` (required), `conversation_id` (optional) |
| **home_agent.clear_history** | Clear conversation history | `conversation_id` (optional - omit to clear all) |
| **home_agent.execute_tool** | Manually execute a tool for testing | `tool_name`, `parameters` |
| **home_agent.add_memory** | Manually add a memory | `content`, `type`, `importance` |
| **home_agent.search_memories** | Search memories semantically | `query`, `limit`, `min_importance` |

## Key Events

| Event | Triggered When | Key Data Fields |
|-------|----------------|-----------------|
| **home_agent.conversation.finished** | Conversation completes | `tool_calls`, `tokens`, `duration_ms`, `performance` |
| **home_agent.tool.executed** | Tool execution completes | `tool_name`, `parameters`, `result`, `success`, `duration_ms` |
| **home_agent.memory.extracted** | Memories extracted from conversation | `conversation_id`, `memories_extracted`, `extraction_llm` |
| **home_agent.error** | Error occurs | `error_type`, `error_message`, `component` |
| **home_agent.context.injected** | Context added to LLM call | `mode`, `entities_included`, `token_count` |

## Built-in Tools

| Tool | Description | Key Parameters |
|------|-------------|----------------|
| **ha_control** | Control HA devices/services | `action` (turn_on/off/toggle/set_value), `entity_id`, `parameters` (optional: brightness, temperature, etc.) |
| **ha_query** | Get entity state and attributes | `entity_id`, `attributes` (optional), `history` (optional: duration, aggregate) |
| **query_external_llm** | Query external LLM for complex analysis | `prompt`, `context` (optional) |

*Note: `query_external_llm` only available when external LLM is enabled.*

## Quick Examples

### Service Call Example

Process a conversation:

```yaml
service: home_agent.process
data:
  text: "Turn on the living room lights and set them to 50% brightness"
  conversation_id: "main_conversation"
```

Search memories:

```yaml
service: home_agent.search_memories
data:
  query: "bedroom temperature preferences"
  limit: 10
  min_importance: 0.5
```

### Event Automation Example

Track token usage:

```yaml
automation:
  - alias: "Track Token Usage"
    trigger:
      - platform: event
        event_type: home_agent.conversation.finished
    action:
      - service: input_number.set_value
        target:
          entity_id: input_number.total_tokens_used
        data:
          value: >
            {{ states('input_number.total_tokens_used') | int +
               trigger.event.data.tokens.total | int }}
```

Alert on errors:

```yaml
automation:
  - alias: "Alert on Home Agent Errors"
    trigger:
      - platform: event
        event_type: home_agent.error
    action:
      - service: notify.admin
        data:
          title: "Home Agent Error"
          message: >
            Type: {{ trigger.event.data.error_type }}
            Message: {{ trigger.event.data.error_message }}
```

### Tool Usage Example

The LLM automatically calls these tools, but you can test them manually:

**Control a device:**
```yaml
service: home_agent.execute_tool
data:
  tool_name: ha_control
  parameters:
    action: turn_on
    entity_id: light.living_room
    parameters:
      brightness: 128
```

**Query entity state:**
```yaml
service: home_agent.execute_tool
data:
  tool_name: ha_query
  parameters:
    entity_id: sensor.living_room_temperature
```

**Query with history:**
```yaml
service: home_agent.execute_tool
data:
  tool_name: ha_query
  parameters:
    entity_id: sensor.temperature
    history:
      duration: "24h"
      aggregate: "avg"
```

## Service Details

### home_agent.process

Process a conversation message.

**Parameters:**
- `text` (string, required): The message to process
- `conversation_id` (string, optional): ID for history tracking
- `user_id` (string, optional): User ID for the conversation

**Example:**
```yaml
service: home_agent.process
data:
  text: "What's the temperature in the living room?"
  conversation_id: "main_conversation"
```

### home_agent.add_memory

Manually store a memory.

**Parameters:**
- `content` (text, required): The memory content
- `type` (select, optional): Memory type (fact, preference, context, event)
- `importance` (number 0.0-1.0, optional): Importance score

**Example:**
```yaml
service: home_agent.add_memory
data:
  content: "User prefers bedroom temperature at 68°F for sleeping"
  type: preference
  importance: 0.8
```

### home_agent.clear_history

Clear conversation history.

**Parameters:**
- `conversation_id` (string, optional): Specific conversation to clear (omit to clear all)

**Examples:**
```yaml
# Clear specific conversation
service: home_agent.clear_history
data:
  conversation_id: "living_room_conversation"

# Clear all conversations
service: home_agent.clear_history
```

## Event Details

### home_agent.conversation.finished

Triggered when a conversation completes.

**Key Data Fields:**
```json
{
  "conversation_id": "main_conversation",
  "tool_calls": 3,
  "tool_breakdown": {
    "ha_query": 2,
    "ha_control": 1
  },
  "tokens": {
    "prompt": 150,
    "completion": 75,
    "total": 225
  },
  "duration_ms": 2345,
  "performance": {
    "llm_latency_ms": 1200,
    "tool_latency_ms": 450,
    "context_latency_ms": 150
  }
}
```

### home_agent.tool.executed

Triggered after each tool execution.

**Key Data Fields:**
```json
{
  "tool_name": "ha_control",
  "parameters": {
    "action": "turn_on",
    "entity_id": "light.living_room",
    "parameters": {
      "brightness": 128
    }
  },
  "result": {
    "success": true,
    "entity_id": "light.living_room",
    "new_state": "on"
  },
  "success": true,
  "duration_ms": 45.2,
  "conversation_id": "main_conversation"
}
```

### home_agent.memory.extracted

Triggered when memories are extracted.

**Key Data Fields:**
```json
{
  "conversation_id": "main_conversation",
  "memories_extracted": 3,
  "extraction_llm": "external",
  "timestamp": "2024-01-15T10:30:00"
}
```

## Tool Details

### ha_control

Control Home Assistant devices.

**Actions:**
- `turn_on` - Turn entity on
- `turn_off` - Turn entity off
- `toggle` - Toggle entity state
- `set_value` - Set specific value

**Common Parameters:**
- **Lights:** `brightness` (0-255), `rgb_color` ([R,G,B])
- **Climate:** `temperature`, `hvac_mode` (heat/cool/auto/off)
- **Covers:** `position` (0-100)
- **Media:** `volume_level` (0.0-1.0)

**Examples:**
```json
// Turn on light
{
  "action": "turn_on",
  "entity_id": "light.living_room"
}

// Turn on light with brightness
{
  "action": "turn_on",
  "entity_id": "light.living_room",
  "parameters": {
    "brightness": 128
  }
}

// Set thermostat
{
  "action": "set_value",
  "entity_id": "climate.thermostat",
  "parameters": {
    "temperature": 72
  }
}
```

### ha_query

Get entity state and attributes.

**Parameters:**
- `entity_id` (required): Entity to query (supports wildcards like `light.*`)
- `attributes` (optional): Specific attributes to retrieve
- `history` (optional): Retrieve historical data
  - `duration`: Time range (e.g., "1h", "24h", "7d")
  - `aggregate`: Aggregation method (avg, min, max, sum, count)

**Examples:**
```json
// Query single entity
{
  "entity_id": "sensor.living_room_temperature"
}

// Query with wildcard
{
  "entity_id": "light.*"
}

// Query with history
{
  "entity_id": "sensor.temperature",
  "history": {
    "duration": "24h",
    "aggregate": "avg"
  }
}
```

### query_external_llm

Query external LLM for complex analysis (only available when external LLM is enabled).

**Parameters:**
- `prompt` (required): Question or prompt to send
- `context` (optional): Additional context (sensor data, tool results, etc.)

**Examples:**
```json
// Simple query
{
  "prompt": "Should I adjust the thermostat based on current conditions?"
}

// Query with context
{
  "prompt": "Analyze this energy usage data and suggest optimizations",
  "context": {
    "current_temperature": "68°F",
    "energy_usage_kwh": 45.2,
    "time_period": "last 24 hours"
  }
}
```

## Need More Details?

See the [Complete Reference](reference/API_REFERENCE.md) for comprehensive API documentation with all services, events, and tools.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.