clampatron/assist_service

By clampatron

Updated over 1 year ago

Go server for intent-based smart home automation integrated with Home Assistant.

Image
Message queues
API management
0

181

clampatron/assist_service repository overview

Assist Pipeline Service

Overview: The Assist Pipeline Service is a robust Go-based server application designed to seamlessly integrate with Home Assistant through WebSocket connections. It provides a streamlined API endpoint (/api/assist_pipeline/run) that enables users to execute intent-based commands, such as controlling smart home devices like lights, directly from their applications or voice assistants.

Key Features:

  • Intuitive API Endpoint:

    • Exposes a RESTful API at /api/assist_pipeline/run for initiating intent-driven actions.
    • Supports JSON payloads to specify actions like turning lights on/off, adjusting settings, and more.
  • Seamless Home Assistant Integration:

    • Establishes and manages WebSocket connections with Home Assistant to execute and monitor commands in real-time.
    • Handles authentication, message construction, and response parsing to ensure reliable interactions.
  • Comprehensive Logging and Monitoring:

    • Utilizes structured logging with Logrus to capture detailed information, including client IP addresses, request data, and processing outcomes.
    • Facilitates easy debugging and monitoring through clear and informative log entries.
  • Configurable and Scalable:

    • Offers flexible configuration options for server settings, authentication tokens, and connection parameters.
    • Designed to handle multiple concurrent requests efficiently, making it suitable for both small-scale and large-scale deployments.
  • Graceful Shutdown and Error Handling:

    • Implements signal handling to ensure the server shuts down gracefully, releasing all resources and closing connections properly.
    • Provides detailed error messages and handles various failure scenarios to maintain system stability.

Technologies Used:

  • Programming Language: Go (Golang)
  • Web Framework: Gorilla WebSocket for managing WebSocket connections
  • Logging: Logrus for structured and leveled logging
  • UUID Generation: Google UUID package for unique conversation identifiers
  • Configuration Management: Custom configuration package for managing application settings

Use Cases:

  • Smart Home Automation:
    • Control and manage smart devices within a home environment through intent-based commands.
  • Voice Assistant Integration:
    • Enhance voice assistants by providing a backend service that interprets and executes user intents seamlessly.
  • IoT Applications:
    • Serve as a middleware for IoT applications that require reliable and real-time interactions with smart devices.

Getting Started:

  1. Configuration:
    • Set up the necessary configuration parameters, including Home Assistant URL and access tokens.
  2. Deployment:
    • Build and deploy the Go application on your preferred server or cloud environment.
  3. Usage:
    • Send POST requests to /api/assist_pipeline/run with the appropriate JSON payload to execute intents.

Example Request:

{
  "start_stage": "intent",
  "end_stage": "intent",
  "input": {
    "text": "turn the middle room light on"
  }
}

Example Response:

{
  "intent_output": {
    "response": {
      "speech": "Turned on the lights"
    }
  },
  "processed_locally": true
}

The Assist Pipeline Service empowers developers and smart home enthusiasts to build intuitive and responsive automation systems with ease. By bridging the gap between user intents and Home Assistant's capabilities, it delivers a seamless and efficient smart home experience.

Tag summary

Content type

Image

Digest

sha256:2480ec8e5

Size

12.7 MB

Last updated

over 1 year ago

docker pull clampatron/assist_service