/ovos-skill-node-red

mycroft skills with node red

Primary LanguagePythonApache License 2.0Apache-2.0

NodeRed mycroft skill

Node Red - Mycroft interface

beginners and non technical users can now leverage visual programming and easily extend mycroft functionality

Platform support

  • ✔️ - tested and confirmed working
  • ❌ - incompatible/non-functional
  • ❓ - untested
  • 🚧 - partial support
platform status tag version last tested
Chatterbox dev never
HolmesV dev never
LocalHive dev never
Mycroft Mark1 dev never
Mycroft Mark2 dev never
NeonGecko dev never
OVOS dev never
Picroft dev never
Plasma Bigscreen dev never
  • tag - link to github release / branch / commit
  • version - link to release/commit of platform repo where this was tested

Additional Setup

This skill requires Mycroft HiveMind Skill

After installing the node red skill you need to deploy some flows in node red

Installing node red

read the Node Red Getting Started Guide

you might need to install

apt-get install libssl-dev libffi-dev

Firewall

Node red can be running in any machine, does not need to run in same place as mycroft, if this is the case open port 6789 in mycroft

sudo ufw allow 6789

Note that it is node red that starts a connection to mycroft, not the other way around

Launch Node red

node red must be running, it can be started with

 node-red-start

or made into a system service

sudo systemctl enable nodered.service
sudo service nodered start

verify that node-red is running at http://noderedip:1880

Import base flows

  • Copy the JSON text from base_flows.json
  • Go to http://noderedip:1880
  • In the upper righthand corner menu, choose... Import > Clipboard
  • This will open the "Import nodes window"
  • Paste the contents from the sample_flow.txt
  • Click on Import and the flow should appear
  • Next click on Deploy
  • After you deploy, the websocket nodes should say 'connected' if the skill was properly configured

Configure Websocket

NodeRed will open a websocket connection to communicate with mycroft

ws://username:secret@127.0.0.1:6789

username can be anything, secret is set in web ui of the skill

You need to edit mycroft-in and mycroft-out websocket nodes with the correct secret and mycroft's ip address

Build Intents

Edit intents flow to add your node red intents

Extra functionality

There are 2 flows providing extra functionality

Webui

A basic webchat is provided, you can access it at http://noderedip:1880/ui

Debug

Test different payload with the debug flow