Skip to the content
PCBKitNew board
2 layersOVOS sat, the printed circuit board in 3D

Use OVOS to trigger a homey flow with key words to identify the flow

Copper layers
2
Thickness
1.6 mm
Parts
8
Nets
44
Pads
69
Tracks, vias
102, 12
Pours
4
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
2 May 2025
Updated
15 Oct 2026

Overview

OVOS sat is an open-source printed circuit board by StemCom, from the StemCom/voice-assistant-homeyflowtrigger repository on GitHub. It is a 2-layer board with 8 parts on 44 nets, routed with 102 tracks and 12 vias.

Its parts include 2 resistors, 2 connectors and 1 IC. It belongs with the Raspberry Pi (Linux) boards of this library.

README

README.md

OVOS-Skill-HomeyFlowTrigger

The ovos-skill-HomeyFlowTrigger repository is an OpenVoiceOS (OVOS) skill designed to integrate with the Homey Pro smart home ecosystem. It allows users to trigger Homey flows using voice commands, manage flow mappings, and interact with Homey through a web interface and MQTT communication.


Features

  1. Homey API Integration:

    • Communicates with Homey Pro using the Homey API v3 to retrieve and trigger flows.
    • Supports secure interaction with Homey using API keys.
  2. Homey Flow Management:

    • Dynamically fetches Homey flows and maps them to custom voice commands (utterances).
    • Allows users to edit, delete, or add new flows via a web interface.
  3. Web Interface:

    • A simple HTML-based interface for managing flow_mappings.json.
    • Users can view, edit, and save flow mappings, as well as add new flows by fetching them from Homey.
  4. MQTT Communication:

    • Uses MQTT to communicate between the web interface and the Python skill.
    • Topics include:
      • request_flow_mappings: Fetch the current flow mappings.
      • send_flow_mappings: Send the flow mappings to the web interface.
      • save_flow_mappings: Save updated flow mappings from the web interface.
      • request_flows: Fetch available flows from Homey.
      • send_flows: Send filtered flows from Homey to the web interface.
      • To-Do command to receive
  5. Fuzzy Matching:

    • Uses fuzzy logic to match voice commands to flows, even with slight deviations in utterances.
  6. Dynamic Intent Updates:

    • Automatically updates .intent files and retrain OVOS Padatious when flow mappings are modified.
  7. *Persistent User Data

    • The skill now stores user-specific configuration and flow mappings in the directory ~/.config/ovos-skill-homeyflowtrigger/.
    • This ensures that your config.json and flow_mappings.json are preserved across skill upgrades and reinstalls.

How It Works

  1. Voice Command Execution:

    • A user speaks a command (e.g., "presence in office").
    • The skill matches the command to a flow using fuzzy logic and triggers the corresponding flow via the Homey API.
  2. Flow Management via Web Interface:

    • Users can view and edit flow_mappings.json in a user-friendly format.
    • New flows can be fetched from Homey and added to the mappings.
  3. MQTT Communication:

    • The web interface publishes and subscribes to MQTT topics to interact with the Python skill.
    • The Python skill processes the requests and communicates with Homey via Node.js subprocesses.

Installation Guide

1. Prerequisites

  • Python: Ensure Python 3.8+ is installed.
  • Node.js: Install Node.js for running Homey API scripts.
  • MQTT Broker: Set up an MQTT broker (e.g., Mosquitto) with secure TLS configuration.

2. Clone the Repository

bash
git clone https://github.com/your-repo/ovos-skill-HomeyFlowTrigger.git
cd ovos-skill-HomeyFlowTrigger

3. Install Python Dependencies

Create a virtual environment and install the required Python libraries:

bash
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt

4. Install Node.js Dependencies

Navigate to the Node.js scripts directory and install dependencies:

bash
cd nodejs
npm install homey-api
  • The Node.js scripts (get_flow.js, start_flow.js) now read config.json from the user config directory:
    • ~/.config/ovos-skill-homeyflowtrigger/config.json
  • Ensure this file exists and is correctly configured before running the scripts.

5. Configure Homey API

  • Generate an API key for Homey Pro via the Homey app or web interface.
  • Update the get_flow.js and start_flow.js scripts with your Homey API key and IP address.

6. Configure MQTT Broker

  • Install and configure Mosquitto or another MQTT broker.
  • Set up secure communication with TLS and user authentication.
  • Update the Python skill and web interface with the broker's address, port, username, and password.

7. Run the Skill

Start the skill in your OVOS environment:

bash
systemctl --user restart ovos.service

8. Launch the Web Interface

  • Open the index.html file in a browser.
  • Enter the brokers' host ip address
  • Use the buttons to fetch, edit, and save flow mappings.

Connecting to the Broker and Homey

1. Broker Configuration

  • Ensure the MQTT broker is running and accessible.
  • Update the Python skill and web interface with the broker's connection details.

2. Homey API Configuration

  • Ensure you have the Homey Pro 2023
  • Create a API access key on the homey
  • Ensure the Homey Pro device is reachable on the network.
  • Update the Node.js scripts with the correct API key and IP address.

3. Testing the Connection

  • Use the web interface to publish a request_flow_mappings topic.
  • Verify that the Python skill responds with the send_flow_mappings topic.

Example Workflow

  1. Fetch Flow Mappings:

    • Click the "Fetch Flow Mappings" button in the web interface.
    • The Python skill publishes the current flow_mappings.json to the web interface.
  2. Edit Flow Mappings:

    • Modify the flow mappings in the web interface (e.g., add or edit utterances).
    • Save the changes, which publishes the updated mappings to the broker.
  3. Add a New Flow:

    • Click the "Request Flows" button to fetch available flows from Homey.
    • Select a flow and add it to the local mappings.
  4. Trigger a Flow:

    • Speak a command that (almost) matches the intent/command given in the website.
    • The skill triggers the corresponding flow via the Homey API.

Topics Overview

Published Topics

  1. request_flow_mappings: Request the current flow mappings.
  2. save_flow_mappings: Save updated flow mappings.
  3. request_flows: Request available flows from Homey.

Subscribed Topics

  1. send_flow_mappings: Receive the current flow mappings.
  2. saved_flow_mappings: Receive a confirmation of saved mappings.
  3. send_flows: Receive filtered flows from Homey.

Block Diagam

mermaid
  info
mermaid
graph TD;
    OVOS_Core <--> Hivemind-Listener; 
    Hivemind-Listener  <--> Hivemind_Satellite_raspZero_2;
    OVOS_Core <--> OVOS_MQTT_Client;
    OVOS_MQTT_Client <--> MQTT_Broker;
    Laptop <--> HTML;
    HTML <--> User_MQTT_Client; 
    User_MQTT_Client <--> MQTT_Broker;
    Homey_Pro_2023 <--> Local_v3_API;
    Local_v3_API <--> GetFlow_TriggerFlow;
    GetFlow_TriggerFlow <--> OVOS_Core;

This repository provides a powerful and flexible way to control Homey flows using OVOS, enabling seamless integration between voice commands and smart home automation.


Persistent User Data

  • The skill now stores user-specific configuration and flow mappings in the directory ~/.config/ovos-skill-homeyflowtrigger/.
  • This ensures that your config.json and flow_mappings.json are preserved across skill upgrades and reinstalls.

Parts

8
QtyValueFootprintReferences
2R_SmallResistor_THT:R_Axial_DIN0411_L9.9mm_D3.6mm_P12.70mm_HorizontalR1, R2
2SPH0645Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalMicLeft, MicRight
1LEDTerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type059_RT06303HBWC_1x03_P3.50mm_HorizontalLED
1MAX98357aConnector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalU1
1RPi_Zero2Connector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_VerticalJ1
1VolumeTerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type059_RT06303HBWC_1x03_P3.50mm_HorizontalJ3 Volume

Questions

What parts does the OVOS sat use?

8 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the OVOS sat KiCad files?

From the StemCom/voice-assistant-homeyflowtrigger repository on GitHub, at the commit this page was made from: the board is Hardware/KiCad_OVOS_sat/OVOS_sat.kicad_pcb and its schematic Hardware/KiCad_OVOS_sat/OVOS_sat.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the OVOS sat design in my own project?

Its repository states no licence, so its author keeps all rights: ask StemCom before reusing the design.

Similar boards

  • 2 layers20.5 × 24.8 mmPi interface, the printed circuit board in 3D

    Pi interface

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    8 parts3.7k
  • 2 layers59.9 × 25.7 mmBuffer, the printed circuit board in 3D

    Buffer

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    8 parts1kGPL-3.0
  • 2 layers52 × 12.6 mmUSB, the printed circuit board in 3D

    USB

    shanteacontrols/OpenDeck

    A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.

    8 parts960Apache-2.0
  • 2 layers87.5 × 48.5 mm7 input macropad, the printed circuit board in 3D

    7 input macropad

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    8 parts915
  • 2 layers36.2 × 63.1 mmPicoMemcard pico, the printed circuit board in 3D

    PicoMemcard pico

    dangiu/PicoMemcard

    Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico

    8 parts694GPL-3.0
  • 2 layers36 × 10 mmPCB4-PWR BTN Rev.A, the printed circuit board in 3D

    PCB4-PWR BTN Rev.A

    OLIMEX/DIY-LAPTOP

    Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop

    8 parts578Apache-2.0