Tested on Windows 10, Windows 11 and Ubuntu Desktop 20.04
home/room/pc/audio/volume/set
- set volume,0-100
home/room/pc/audio/mute/set
- set mute,0 or 1
Publish to:
home/room/pc/audio/volume
home/room/pc/audio/mute
home/room/pc/clipboard/set
- copy text to system clipboard
Read file commands.yml (see commands.example.yml), subscribe to topics, execute commands via exec module.
Watch for changes in directories and send notifications.
home/room/pc/exec/cmd 'shell cmd'
- simple execute command with arguments in system shellhome/room/pc/exec/cmd/silent 'shell cmd'
- execute command without notificationshome/room/pc/exec/cmd '{"cmd" "shell cmd", "silent": true}'
- execute command without notificationshome/room/pc/exec/cmd '{"cmd": "shell cmd", "success_tts": "Success", "error_tts": "Error"}
- execute command with tts feedback. You can define default tts feedback in config. Setsuccess_tts: 'stdout'
for answer with command outputhome/room/pc/exec/ssh user@host
- open ssh terminal
Watch for changes in files and send notifications.
home/room/pc/gpt/ask
- send request to GPT
Publish to:
home/room/pc/gpt/answer
- get answer
home/room/pc/keys/press
- press a single key, you can pass several keys, space delimetedhome/room/pc/keys/type
- type a string
Keys:
f1-f12
enter, escape, tab, space, backspace
up, down, left, right
home, end, insert, delete, pageup, pagedown
control, shift, alt, command
audio_prev, audio_next, audio_pause
Modifiers control|ctrl|^, shift, alt, command|cmd|win
can be used: (ctrl+alt+win)t
Examples:
(win)x up up right down
- suspend for Windows 10
Binds midi signals to exec or mqtt actions.
home/room/pc/mouse/click
- click button,left|right|middle
home/room/pc/mouse/point
- move button tox
,y
, optional click and mouse backs, example:400,200,left,1
home/room/pc/notify/notify 'message'
- simple notifyhome/room/pc/notify/notify '{"title": "title", "msg": "msg", "app": "Planfix", "icon": "/path/to/planfix.png", "actions": ["OK"]}'
- full notifyhome/room/pc/notify/clear 'msg text'
- clear notify on Android (for MacroDroid), you must defineconfig.modules.notify.clearNotificationWebhook
for this
Commands:
home/room/pc/obs/rec
- start recordinghome/room/pc/obs/stop
- stop recording
Events:
home/room/pc/obs/state/rec
- change recording state
home/room/pc/reaper/record
- start recordinghome/room/pc/reaper/stop
- stop recordinghome/room/pc/reaper/play
- start playinghome/room/pc/reaper/stop
- stop playinghome/room/pc/reaper/prev
- go to previous trackhome/room/pc/reaper/next
- go to next trackhome/room/pc/reaper/loop
- toggle loop
Send browser tabs stats to MQTT. Requires browser extension chrome-tabs-exporter.
tts
- TTS received message
Voice activity detection (VAD) using silero-vad.
home/room/pc/vad/speech
- 0/1, speech detectedhome/room/pc/vad/start
- starthome/room/pc/vad/stop
- stop
home/room/pc/windows/autoplace
- autoplace windows with confighome/room/pc/windows/place '{"window":"current","fancyZones":{"monitor":1,"position":6}}'
- place window with ruleshome/room/pc/windows/store
- store opened windowshome/room/pc/windows/restore
- restore windowshome/room/pc/windows/clear
- clear storehome/room/pc/windows/open '{ "apps": ["c:\\app1.exe"], "paths": ["d:\\prog"] }'
- open storehome/room/pc/windows/focus '{ "titleMatch": "blog.popstas.ru" }'
- focus window by titlehome/room/pc/windows/restart
- restart PC,nostore
for just restart, other payload for store opened windows
It's using module, https://github.com/popstas/windows11-manager, Vitrual desktop manager work only for Windows 11 now, as I am single user.
- Keyboard and mouse emulation not work while
windows-mqtt
running as Windows service. - Process not kill when exit
-
Copy src/config.example.js to
src/config.js
-
This script will install Windows service "windows-mqtt":
git clone https://github.com/popstas/windows-mqtt
cd windows-mqtt
npm install
npm run install-windows
- For TTS setup you should install
gTTS
(Python) andmpg123
, see popstas/mqtt2tts.
- Copy src/modules/_module.js to
src/modules/yourModuleName.js
- Add module options to
modules.yourModuleName
object insrc/config.js
Module will receive as config
variable.
Module should return list of subscriptions on MQTT topics:
return {
subscriptions: [
{
topics: [
config.base + '/status',
config.base + '/status/get',
],
handler: onStatus
},
]
}
- electron > 26 fails to
npx electron-rebuild