So I am having finally some spare time to explain better how to to switch stream by voice control (think at ie. IP cameras, Internet TV/Radio channels, etc.).
We are going to use OMXplayer here (can’t say how it will be the result with VLC honestly…) and the good voice command module MMM-AssistantMk2.
So set it up properly and once you have it up and running come back and go on reading, otherwise contact @Sean (the author of that module) asking for help. :)
Open config.js with a text editor and go to the MMM-AssistantMk2 module section.
Replace
config: {
with
config: {
onActivate: {
timer: 0,
command: "RTSP_DEACTIVATE"
},
transcriptionHook: {
"CHANNEL_1": {
pattern: "TV 1",
command: "CHANGE_CHANNEL_1"
},
"CHANNEL_2": {
pattern: "TV 2",
command: "CHANGE_CHANNEL_2"
},
"CHANNEL_3": {
pattern: "TV 3",
command: "CHANGE_CHANNEL_3"
},
"CHANNEL_4": {
pattern: "TV 4",
command: "CHANGE_CHANNEL_4"
},
"CHANNEL_5": {
pattern: "Radio 1",
command: "CHANGE_CHANNEL_5"
},
"CHANNEL_6": {
pattern: "Radio 2",
command: "CHANGE_CHANNEL_6"
},
"CHANNEL_7": {
pattern: "Radio 3",
command: "CHANGE_CHANNEL_7"
}
},
command: {
"CHANGE_CHANNEL_1": {
notificationExec: {
notification: "RTSP-PLAY",
payload: "stream1"
}
},
"CHANGE_CHANNEL_2": {
notificationExec: {
notification: "RTSP-PLAY",
payload: "stream2"
}
},
"CHANGE_CHANNEL_3": {
notificationExec: {
notification: "RTSP-PLAY",
payload: "stream3"
}
},
"CHANGE_CHANNEL_4": {
notificationExec: {
notification: "RTSP-PLAY",
payload: "stream4"
}
},
"CHANGE_CHANNEL_5": {
notificationExec: {
notification: "RTSP-PLAY",
payload: "stream5"
}
},
"CHANGE_CHANNEL_6": {
notificationExec: {
notification: "RTSP-PLAY",
payload: "stream6"
}
},
"CHANGE_CHANNEL_7": {
notificationExec: {
notification: "RTSP-PLAY",
payload: "stream7"
}
},
"RTSP_DEACTIVATE": {
notificationExec: {
notification: "RTSP-STOP",
payload: "all"
}
},
},
Please note that the aforementioned stream names (ie. “TV 1”) used after pattern: HAVE TO BE the same that we will use below in the MMM-RTSPStream module or it won’t work!
Of course they are all examples so fit them to your needs, but remember to use then the same naming.
So let’s go to enter MMM-RTSPStream like the following:
{
module: "MMM-RTSPStream",
position: "bottom_right",
disabled: false,
config: {
autoStart: false, // Streams will start by voice commands only
rotateStreams: true,
rotateStreamTimeout: 0,
shutdownDelay: 0,
moduleWidth: 420, // Adjust it to your needs
moduleHeight: 236, // Adjust it to your needs
localPlayer: 'omxplayer',
remotePlayer: 'none',
showSnapWhenPaused: false,
remoteSnaps: false,
stream1: {
name: 'TV 1',
url: 'IPofstream1',
protocol: "tcp",
frameRate: 'undefined',
width: 420, // Adjust it to your needs
height: 236 // Adjust it to your needs
},
stream2: {
name: 'TV 2',
url: 'IPofstream2',
protocol: "tcp",
frameRate: 'undefined',
width: 420, // Adjust it to your needs
height: 236 // Adjust it to your needs
},
stream3: {
name: 'TV 3',
url: 'IPofstream',
protocol: "tcp",
frameRate: 'undefined',
width: 420, // Adjust it to your needs
height: 236 // Adjust it to your needs
},
stream4: {
name: 'TV 4',
url: 'IPofstream',
protocol: "tcp",
frameRate: 'undefined',
width: 440, // Adjust it to your needs
height: 247 // Adjust it to your needs
},
stream5: {
name: 'Radio 1',
url: 'IPofstream',
protocol: "tcp",
frameRate: 'undefined',
width: 420, // Adjust it to your needs
height: 236 // Adjust it to your needs
},
stream6: {
name: 'Radio 2',
url: 'IPofstream6',
protocol: "tcp",
frameRate: 'undefined',
width: 440, // Adjust it to your needs
height: 247 // Adjust it to your needs
},
stream7: {
name: 'Radio 3',
url: 'IPofstream7',
protocol: "tcp",
frameRate: 'undefined',
width: 420, // Adjust it to your needs
height: 236 // Adjust it to your needs
}
This should be all.
You can add as many streams as you want (I don’t see the problem if you run them one by one). ;)