

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.mdOVOS-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
-
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.
-
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.
-
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.
- A simple HTML-based interface for managing
-
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
-
Fuzzy Matching:
- Uses fuzzy logic to match voice commands to flows, even with slight deviations in utterances.
-
Dynamic Intent Updates:
- Automatically updates
.intentfiles and retrain OVOS Padatious when flow mappings are modified.
- Automatically updates
-
*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.jsonandflow_mappings.jsonare preserved across skill upgrades and reinstalls.
- The skill now stores user-specific configuration and flow mappings in the directory
How It Works
-
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.
-
Flow Management via Web Interface:
- Users can view and edit
flow_mappings.jsonin a user-friendly format. - New flows can be fetched from Homey and added to the mappings.
- Users can view and edit
-
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
git clone https://github.com/your-repo/ovos-skill-HomeyFlowTrigger.git
cd ovos-skill-HomeyFlowTrigger3. Install Python Dependencies
Create a virtual environment and install the required Python libraries:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt4. Install Node.js Dependencies
Navigate to the Node.js scripts directory and install dependencies:
cd nodejs
npm install homey-api- The Node.js scripts (
get_flow.js,start_flow.js) now readconfig.jsonfrom 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.jsandstart_flow.jsscripts 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:
systemctl --user restart ovos.service8. Launch the Web Interface
- Open the
index.htmlfile 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_mappingstopic. - Verify that the Python skill responds with the
send_flow_mappingstopic.
Example Workflow
-
Fetch Flow Mappings:
- Click the "Fetch Flow Mappings" button in the web interface.
- The Python skill publishes the current
flow_mappings.jsonto the web interface.
-
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.
-
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.
-
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
request_flow_mappings: Request the current flow mappings.save_flow_mappings: Save updated flow mappings.request_flows: Request available flows from Homey.
Subscribed Topics
send_flow_mappings: Receive the current flow mappings.saved_flow_mappings: Receive a confirmation of saved mappings.send_flows: Receive filtered flows from Homey.
Block Diagam
infograph 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.jsonandflow_mappings.jsonare preserved across skill upgrades and reinstalls.
Parts
8| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | R_Small | Resistor_THT:R_Axial_DIN0411_L9.9mm_D3.6mm_P12.70mm_Horizontal | R1, R2 |
| 2 | SPH0645 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | MicLeft, MicRight |
| 1 | LED | TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type059_RT06303HBWC_1x03_P3.50mm_Horizontal | LED |
| 1 | MAX98357a | Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_Vertical | U1 |
| 1 | RPi_Zero2 | Connector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_Vertical | J1 |
| 1 | Volume | TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type059_RT06303HBWC_1x03_P3.50mm_Horizontal | J3 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 mm

- 2 layers14.4 × 10.5 mm

OSO SWAB B1-00 Sensor Watch Accelerometer
joeycastillo/Sensor-Watch
A board replacement for the classic Casio F-91W wristwatch
8 parts2.1k - 2 layers7.9 × 39.1 mm

Brain board STM32F407 SD wing it
rusefi/rusefi
rusefi - GPL internal combustion engine control unit
8 parts1.2k - 2 layers59.9 × 25.7 mm

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 mm

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 mm

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 mm

PicoMemcard pico
dangiu/PicoMemcard
Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico
8 parts694GPL-3.0 - 2 layers36 × 10 mm

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