mirror of https://github.com/OpenIPC/wiki.git
240 lines
5.6 KiB
Markdown
240 lines
5.6 KiB
Markdown
# OpenIPC Wiki
|
|
[Table of Content](../README.md)
|
|
|
|
## HomeAsistant PTZ INTEGRATION
|
|
|
|
This integration is based on the ssh command to the open ipc firmware to integrate ptz controls, for cameras that do not have onvif support
|
|
|
|
## Camera configuration
|
|
Load the modules with parameters (you may need to experiment with the hmaxstep and vmaxstep values for your specific camera)
|
|
|
|
Copy motor_sample.ko ---> internal memory (ssh copy)
|
|
```
|
|
scp "C:\Users\Downloads\sample_motor.ko" root@192.168.1.29:/sample_motor.ko
|
|
```
|
|
Edit new autostart script on your camera
|
|
```
|
|
$ vi /etc/rc.local
|
|
```
|
|
Add these lines
|
|
```
|
|
# addmod
|
|
insmod /sample_motor.ko vstep_offset=0 hmaxstep=2130 vmaxstep=1600
|
|
# go to 0 position
|
|
t31-kmotor -d h -r
|
|
```
|
|
Change file mod (add execute permissions )
|
|
```
|
|
$ chmod +x /etc/rc.local
|
|
```
|
|
|
|
## Home Assistant configuration
|
|
```
|
|
docker ps
|
|
docker exec -it <"ID_HA_container"> /bin/bash
|
|
```
|
|
install sshpass
|
|
```
|
|
apk add sshpass
|
|
```
|
|
|
|
**Note:** You can test sshpass with
|
|
|
|
```
|
|
sshpass -p '123456' ssh root@192.168.1.29
|
|
```
|
|
|
|
|
|
Add those lines to 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
|
|
```
|
|
Add those lines to 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
|
|
```
|
|
|
|
**SCRIPT**
|
|
This script is found in this repo
|
|
https://github.com/OpenIPC/motors/tree/4c7dc45e5e877f38c076343f361159844374920a/t31-kmotor
|
|
|
|
Create this script in the /config directory
|
|
|
|
```
|
|
vi camara_scrip.sh
|
|
```
|
|
Paste this file
|
|
```
|
|
#!/bin/bash
|
|
|
|
echo "Enter the camera user:"
|
|
read user
|
|
echo "Enter the camera password:"
|
|
read password
|
|
echo "Enter the camera IP:"
|
|
read ip
|
|
echo "Camera_Name_"
|
|
read name
|
|
|
|
echo "#!/bin/bash
|
|
# Conctate al servidor remoto utilizando sshpass y la contraseña
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Dentro del servidor remoto, ejecuta el comando t31-kmotor con los argumentos
|
|
t31-kmotor -d h -r
|
|
EOF
|
|
"> "$name"_r.sh
|
|
echo "#!/bin/bash
|
|
# Conctate al servidor
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Dentro del servidor remoto, ejecuta el comando t31-kmotor
|
|
t31-kmotor -d g -x -300 -y 0
|
|
EOF
|
|
"> "$name"_x_down.sh
|
|
echo "#!/bin/bash
|
|
# Conctate al servidor
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Dentro del servidor remoto, ejecuta el comando t31-kmotor
|
|
t31-kmotor -d g -x 300 -y 0
|
|
EOF
|
|
"> "$name"_x_up.sh
|
|
echo "#!/bin/bash
|
|
# Conctate al servidor
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Dentro del servidor remoto, ejecuta el comando t31-kmotor
|
|
t31-kmotor -d g -x 0 -y -300
|
|
EOF
|
|
"> "$name"_y_down.sh
|
|
echo "#!/bin/bash
|
|
# Conctate al servidor
|
|
sshpass -p '"$password"' ssh -o StrictHostKeyChecking=accept-new "$user"@"$ip" <<EOF
|
|
# Dentro del servidor remoto, ejecuta el comando t31-kmotor
|
|
t31-kmotor -d g -x 0 -y 300
|
|
EOF
|
|
"> "$name"_y_up.sh
|
|
|
|
# Change mod
|
|
chmod +x "$name"_r.sh "$name"_x_down.sh "$name"_x_up.sh "$name"_y_down.sh "$name"_y_up.sh
|
|
|
|
```
|
|
Execute the following lines
|
|
```
|
|
chmod +x camara_scrip.sh
|
|
./camara_scrip.sh
|
|
```
|
|
Enter your camera data (name of before example c101)
|
|
|
|
**Note:** need to make a script for the other files (configuration.yml and scrips.yml)
|
|
|
|
|
|
|
|
## Lovelace example
|
|
Add this extract in a new card manually (yaml format)
|
|
```
|
|
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)
|
|
|
|
```
|
|
|
|
Example of view
|
|
|
|

|
|
# Enjoy the stream.
|