Cài đặt Snapcast server và Snapcast client
Mục lục
Tải Snapserver và Snapclient từ github.com/badaix/snapcast/releases/latest. Ở đây ta cài đặt cho Raspberry nên sẽ tải các file có định dạng snapserver_<version>_armhf.deb
và snapclient_<version>_armhf.deb
.
sudo wget <download_link_snapserver hoặc download_link_snapclient>
Cài đặt Snapserver
-
Bước 1: Cài đặt Snapserver
sudo dpkg -i snapserver_<version>_armhf.deb
-
Bước 2: Chạy Snapserver.
snapserver
-
Bước 3: Hiển thị IU của Snapserver ở local.
Địa chỉ mặc định của Snapserver là0.0.0.0:1780
.
Hoặc có thể xem địa chỉ của Snapserver bằng cách xem log.
Cài đặt Snapclient (Không bắt buộc)
Snapclient chỉ cần thiết nếu ta muốn dùng Raspberry như một client có thể phát nhạc, nếu không ta có thể dùng app Snapcast có sẵn trong CH Play.
-
Bước 1: Cài đặt Snapclient
sudo dpkg -i snapclient_<version>_armhf.deb
-
Bước 2: Chạy Snapclient.
snapclient
Cài đặt Mopidy, các extension cần thiết
-
Cài đặt Mopidy.
wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list
sudo apt update
sudo apt install mopidy
-
Cài đặt extension Mopidy-Spotify.
sudo python3 -m pip install Mopidy-Spotify
-
Cài đặt web extension Mopidy-Mopify.
sudo python3 -m pip install mopidy-mopify
Chỉnh sửa file cấu hình của Mopidy
File cấu hình của Mopidy mopidy.conf
nằm tại đường dẫn ~/.config/mopidy
. Để mở file, ta dùng lệnh:
sudo nano ~/.config/mopidy/mopidy.conf
-
Ở phần
ta thêm giá trị:
output = audioresample ! audioconvert ! audio/x-raw,rate=48000,channels=2,format=S16LE ! filesink location=/tmp/snapfifo
-
Có thể chỉnh sửa lại giá trị
hostname
trong phần[Http]
thànhlocalhost
hoặc127.0.0.1
hoặcIP của Rapberry
(không bắt buộc).
Sau khi đã cài đặt các extension ở phần trên, ta cần khai báo extension đó cùng các giá trị của nó trong file cấu hình mopidy.
-
Mopidy-Spotify:
[spotify] username = password = client_id = client_secret =
-
username
: có thể tìm thấy trong phầnTổng quan về tài khoản
trong Spotify
-
password
: mật khẩu đăng nhập vào Spotify. -
client_id
vàclient_secret
: Vào mopidy.com/ext/spotify/ và nhấn vàoAuthenticate Mopidy with Spotify
. Sau khi đăng nhập vào Spotify cá nhân,client_id
vàclient_secret
sẽ được tạo ra.
-
Mopidy-Mopify:
[mopify] enabled = true debug = false
Chạy Mopidy và thiết lập Mopify để phát nhạc
Chạy Mopidy và truy cập Mopify
-
Khởi động Mopidy.
mopidy
-
Truy cập vào Mopify: địa chỉ truy cập của mopify tùy vào giá trị
hostname
vàport
tại phần[Http]
của file cấu hình Mopidy.
Thiết lập Mopify để phát nhạc
Trong mục Service, chọn kết nối Spotify và đăng nhập tài khoản Spotify giống với tài khoản đã khai báo trong file cấu hình của Mopidy. Sau khi kết nối, các thông tin trên Spotify đã được đồng bộ với Mopify và có thể bắt đầu phát nhạc bằng Mopify.
Các lỗi thường gặp và cách giải quyết
-
dpkg frontend is locked by another process: lỗi có thể gặp phải khi cài đặt Snapserver và Snapclient bằng
dpkg
.
Các giải quyết:
-
Bước 1: Tìm PID của tiến trình đang giữ file lock.
lsof /var/lib/dpkg/lock-frontend
-
Bước 2: Tiến hành
kill
tiến trình đó bằng PID tìm được.
sudo kill -9 <PID>
-
Bước 3: Xóa file lock và cấu hình lại
dpkg
.
sudo rm /var/lib/dpkg/lock-frontend
sudo dpkg --configure -a
-
Không thể phát nhạc bằng Mopify hoặc các bài hát chỉ nằm ở
Queue
vàPlaylist
dù đã nhấnPlay
.
Cách giả quyết:
Hãy chắc chắn rằng tài khoản Spotify được khai báo trong file cấu hình Mopidy và tài khoản được kết nối vào Mopify đều giống nhau và là tài khoản Premium.
-
Nhạc ở các Snapclient được phát quá nhanh và có nhiều tạp âm.
Cách giải quyết:
Không được chạy Snapserver bằng cả hai cách là dùng lệnh:
snapserver
Và sử dụng service snapserver.service cùng một lúc với nhau mà chỉ được chọn một trong hai.
-
Khi chạy Mopidy bằng cách chạy
mopidy.service
thì bị bị báo lỗi thiếu các phần cấu hình dù đã cấu hình trước đó.
Cách giải quyết:
mopidy.service
sử dụng file cấu hình nằm ở đường dẫn /etc/mopidy/mopidy.conf
còn khi chạy Mopidy bằng lệnh mopidy
file cấu hình được dùng nằm ở ~/.config/mopidy/mopidy.conf
.
Quản lý Multiroom Audio bằng HASS
Cài đặt Hass trên Docker
Cài đặt Docker
-
Bước 1: Cài đặt Docker.
sudo apt-get update && sudo apt-get upgrade
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
-
Bước 2: Thêm non-root User vào group Docker (không bắt buộc).
Mặc định của Docker là chỉ các root user mới có thể khởi chạy các container. Nếu không sử dụng root user thì khi khởi chạy các container phải dùngsudo
. Việc thêm các non-root user vào group Docker giúp ta chạy cách lệnh của Docker mà không phải làm các việc trên.
sudo usermod -aG docker <user_name>
Ví dụ, nếu muốn thêm user pi
vào group Docker:
sudo usermod -aG docker pi
Sau bước này ta tiến hành reboot lại trước khi tiếp tục.
sudo reboot
-
Bước 3: Cài đặt Docker Compose (không bắt buộc).
Docker Compose dùng để định nghĩa và chạy multi-container.
sudo pip3 -v install docker-compose
-
Bước 4: Kiểm tra các thông tin và phiên bản Docker đã cài đặt.
docker info
docker version
-
Bước 5: Chạy container mẫu
Hello World
để kiểm tra xem Docker có bị lỗi trong quá trình thiết lập hay không.
docker run hello-world
Cài đặt HASS trên Docker
-
Bước 1: Cài đặt HASS.
docker run --init -d --name="home-assistant" -e "TZ=<YOUR_TIME_ZONE>" -v <CONFIG_LOCATION>:/config --net=host homeassistant/raspberrypi3-homeassistant:stable
TZ
(Time Zone) có thể được tìm thấy bằng lệnh:
timedatectl list-timezones
-
Bước 2: Kiểm tra thông tin của HASS.
docker ps -a
-
Bước 3: Sử dụng trình duyệt để hiện thị HASS.
Truy cập địa chỉ<IP_Raspberry_contains_HASS>:8123
bằng trình duyệt để sử dụng HASS.
Thêm Multiroom Audio vào HASS
-
Bước 1: Vào thư mục chứa file cấu hình
configuration.yaml
, chỉnh sửa và thêm cấu hình của Snapcast.
media_player: - platform: snapcast host: <ip_of_snapserver>
-
Bước 2: Thêm script để định nghĩa và hiển thị các client.
ChọnEdit Dashboard -> Raw configuration editor
- type: media-control entity: <id_of_snapclient> name: <optional_name_for_entity>
Nhấn SAVE
để lưu lại.
-
Bước 3: Thêm script định nghĩa và hiển thị giao diện của mopify để điều khiển việc phát nhạc.
ChọnEdit Dashboard -> Raw configuration editor
- type: iframe url: 'http://<IP_of_mopidy>:<port_of_mopidy>/mopify' aspect_ratio: <optional_aspect_ratio> title: <optional_title>
Nhấn SAVE
để lưu lại.
Leave a Reply