mirror of https://github.com/OpenIPC/wiki.git
261 lines
6.9 KiB
Markdown
261 lines
6.9 KiB
Markdown
## Wiki OpenIPC
|
|
[Mục lục](../README.md)
|
|
|
|
## Tích hợp PTZ với Home Assistant
|
|
|
|
Tích hợp này dựa trên lệnh ssh tới firmware OpenIPC để tích hợp các điều khiển PTZ, dành cho các camera không hỗ trợ ONVIF.
|
|
|
|
## Cấu hình Camera
|
|
Tải các mô-đun với các tham số (bạn có thể cần thử nghiệm với các giá trị hmaxstep và vmaxstep cho camera cụ thể của mình).
|
|
|
|
Sao chép motor_sample.ko ---> bộ nhớ trong (sao chép ssh)
|
|
```
|
|
scp "C:\Users\Downloads\sample_motor.ko" root@192.168.1.29:/sample_motor.ko
|
|
```
|
|
Chỉnh sửa tập lệnh tự động khởi động mới trên camera của bạn
|
|
```
|
|
$ vi /etc/rc.local
|
|
```
|
|
Thêm các dòng này
|
|
```
|
|
# addmod
|
|
insmod /sample_motor.ko vstep_offset=0 hmaxstep=2130 vmaxstep=1600
|
|
# go to 0 position
|
|
t31-kmotor -d h -r
|
|
```
|
|
Thay đổi chế độ tệp (thêm quyền thực thi)
|
|
```
|
|
$ chmod +x /etc/rc.local
|
|
```
|
|
|
|
## Cấu hình Home Assistant
|
|
```
|
|
docker ps
|
|
docker exec -it <"ID_HA_container"> /bin/bash
|
|
```
|
|
cài đặt sshpass
|
|
```
|
|
apk add sshpass
|
|
```
|
|
|
|
**Lưu ý:** Bạn có thể kiểm tra sshpass bằng
|
|
|
|
```
|
|
sshpass -p '123456' ssh root@192.168.1.29
|
|
```
|
|
|
|
|
|
Thêm các dòng đó vào configuration.yaml
|
|
```
|
|
shell_command:
|
|
c101_x_down: /bin/bash c101_x_down.sh
|
|
c101_x_up: /bin/bash c101_x_up.sh
|
|
c101_y_down: /bin/bash c101_y_down.sh
|
|
c101_y_up: /bin/bash c101_y_up.sh
|
|
c101_r: /bin/bash c101_r.sh
|
|
```
|
|
Thêm các dòng đó vào scripts.yaml
|
|
```
|
|
c101_x_down:
|
|
alias: c101_x_down
|
|
sequence:
|
|
- service: shell_command.c101_x_down
|
|
data: {}
|
|
mode: single
|
|
c101_x_up:
|
|
alias: c101_x_up
|
|
sequence:
|
|
- service: shell_command.c101_x_up
|
|
data: {}
|
|
mode: single
|
|
c101_y_down:
|
|
alias: c101_y_down
|
|
sequence:
|
|
- service: shell_command.c101_y_down
|
|
data: {}
|
|
mode: single
|
|
c101_y_up:
|
|
alias: c101_y_up
|
|
sequence:
|
|
- service: shell_command.c101_y_up
|
|
data: {}
|
|
mode: single
|
|
c101_r:
|
|
alias: c101_r
|
|
sequence:
|
|
- service: shell_command.c101_r
|
|
data: {}
|
|
mode: single
|
|
```
|
|
|
|
**TẬP LỆNH**
|
|
Tập lệnh này được tìm thấy trong kho lưu trữ này
|
|
https://github.com/OpenIPC/motors/tree/4c7dc45e5e877f38c076343f361159844374920a/t31-kmotor
|
|
|
|
Tạo tập lệnh này trong thư mục /config
|
|
|
|
```
|
|
vi camara_scrip.sh
|
|
```
|
|
Dán tệp này
|
|
```
|
|
#!/bin/bash
|
|
|
|
echo "Nhập tên người dùng camera:"
|
|
read user
|
|
echo "Nhập mật khẩu camera:"
|
|
read password
|
|
echo "Nhập IP camera:"
|
|
read ip
|
|
echo "Tên_Camera_"
|
|
read name
|
|
|
|
echo "#!/bin/bash
|
|
# Kết nối với máy chủ từ xa bằng sshpass và mật khẩu
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Bên trong máy chủ từ xa, thực thi lệnh t31-kmotor với các đối số
|
|
t31-kmotor -d h -r
|
|
EOF
|
|
"> "$name"_r.sh
|
|
echo "#!/bin/bash
|
|
# Kết nối với máy chủ
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Bên trong máy chủ từ xa, thực thi lệnh t31-kmotor
|
|
t31-kmotor -d g -x -300 -y 0
|
|
EOF
|
|
"> "$name"_x_down.sh
|
|
echo "#!/bin/bash
|
|
# Kết nối với máy chủ
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Bên trong máy chủ từ xa, thực thi lệnh t31-kmotor
|
|
t31-kmotor -d g -x 300 -y 0
|
|
EOF
|
|
"> "$name"_x_up.sh
|
|
echo "#!/bin/bash
|
|
# Kết nối với máy chủ
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Bên trong máy chủ từ xa, thực thi lệnh t31-kmotor
|
|
t31-kmotor -d g -x 0 -y -300
|
|
EOF
|
|
"> "$name"_y_down.sh
|
|
echo "#!/bin/bash
|
|
# Kết nối với máy chủ
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Bên trong máy chủ từ xa, thực thi lệnh t31-kmotor
|
|
t31-kmotor -d g -x 0 -y 300
|
|
EOF
|
|
"> "$name"_y_up.sh
|
|
|
|
# Thay đổi chế độ
|
|
chmod +x "$name"_r.sh "$name"_x_down.sh "$name"_x_up.sh "$name"_y_down.sh "$name"_y_up.sh
|
|
|
|
```
|
|
Thực thi các dòng sau
|
|
```
|
|
chmod +x camara_scrip.sh
|
|
./camara_scrip.sh
|
|
```
|
|
Nhập dữ liệu camera của bạn (tên trước ví dụ c101)
|
|
|
|
**Lưu ý:** cần tạo tập lệnh cho các tệp khác (configuration.yml và scrips.yml)
|
|
|
|
|
|
|
|
## Ví dụ Lovelace
|
|
Thêm đoạn trích này vào một thẻ mới theo cách thủ công (định dạng yaml)
|
|
```
|
|
camera_view: live
|
|
type: picture-elements
|
|
image: http://192.168.1.29/image.jpg
|
|
entities:
|
|
- entity: script.c1_r
|
|
- entity: script.c1_x_down
|
|
- entity: script.c1_x_up
|
|
- entity: script.c1_y_down
|
|
- entity: script.c1_y_up
|
|
camera_image: camera.192_168_1_29
|
|
elements:
|
|
- type: icon
|
|
icon: mdi:arrow-left-drop-circle
|
|
tap_action:
|
|
action: call-service
|
|
service: script.c1_x_down
|
|
style:
|
|
bottom: 45%
|
|
left: 5%
|
|
color: white
|
|
opacity: 0.5
|
|
transform: scale(1.5, 1.5)
|
|
- type: icon
|
|
icon: mdi:arrow-right-drop-circle
|
|
tap_action:
|
|
action: call-service
|
|
service: script.c1_x_up
|
|
style:
|
|
bottom: 45%
|
|
right: 5%
|
|
color: white
|
|
opacity: 0.5
|
|
transform: scale(1.5, 1.5)
|
|
- type: icon
|
|
icon: mdi:arrow-up-drop-circle
|
|
tap_action:
|
|
action: call-service
|
|
service: script.c1_y_up
|
|
style:
|
|
top: 10%
|
|
left: 46%
|
|
color: white
|
|
opacity: 0.5
|
|
transform: scale(1.5, 1.5)
|
|
- type: icon
|
|
icon: mdi:arrow-down-drop-circle
|
|
tap_action:
|
|
action: call-service
|
|
service: script.c1_y_down
|
|
style:
|
|
bottom: 10%
|
|
left: 46%
|
|
color: white
|
|
opacity: 0.5
|
|
transform: scale(1.5, 1.5)
|
|
- type: icon
|
|
icon: mdi:arrow-expand-all
|
|
tap_action:
|
|
action: more-info
|
|
entity: camera.192_168_1_29
|
|
style:
|
|
top: 5%
|
|
right: 5%
|
|
color: white
|
|
opacity: 0.5
|
|
transform: scale(1.5, 1.5)
|
|
|
|
```
|
|
|
|
Ví dụ về chế độ xem
|
|
|
|

|
|
# Tận hưởng luồng.
|
|
|
|
|
|
**Giải thích thuật ngữ:**
|
|
|
|
* **PTZ:** Pan-Tilt-Zoom, là khả năng điều khiển camera xoay ngang, dọc và phóng to/thu nhỏ.
|
|
* **Home Assistant:** Là một nền tảng tự động hóa nhà mã nguồn mở.
|
|
* **ONVIF:** Là một tiêu chuẩn mở cho các thiết bị giám sát IP.
|
|
* **SSH:** Secure Shell, là một giao thức kết nối an toàn đến máy chủ từ xa.
|
|
* **Module:** Mô-đun, là một phần mềm có thể được tải vào kernel Linux.
|
|
* **Autostart script:** Tập lệnh tự động khởi động, là một tập lệnh được thực thi khi hệ thống khởi động.
|
|
* **Docker:** Là một nền tảng ảo hóa container.
|
|
* **sshpass:** Là một công cụ cho phép bạn cung cấp mật khẩu cho SSH thông qua dòng lệnh.
|
|
* **configuration.yaml:** Là tệp cấu hình chính cho Home Assistant.
|
|
* **scripts.yaml:** Là tệp cấu hình cho các tập lệnh trong Home Assistant.
|
|
* **Lovelace:** Là giao diện người dùng dựa trên web cho Home Assistant.
|
|
* **YAML:** Là một ngôn ngữ đánh dấu dữ liệu được sử dụng trong các tệp cấu hình.
|
|
* **Picture-elements card:** Là một loại thẻ trong Lovelace cho phép bạn tùy chỉnh giao diện của camera.
|
|
|
|
|
|
|
|
|