Cómo extraer un gif de las cámaras de domoticz y recibirlo por telegram
@ea4gkq del grupo «Domoticz a lo spain» de telegram nos explica cómo extraer un gif de las cámaras de domoticz y recibirlo por telegram, basándose en la idea original de @jondi también del grupo «Domoticz a lo spain» de telegram.
Este sistema es apto para todas las cámaras con independencia de que tengamos un switch esclavo para ellas (que muchos sistemas requieren). No es necesario tener dicho switch para que este sistema funcione.
Paso a paso
Requisitos inciales
Disponer de cámaras introducidas en domoticz sin importar si se visualizan con el plugin en el tema default, o visualizadas con temas como Aurora o Machinon.
Descarga del software necesario
WinSCP
En primer lugar necesitaremos descargar e instalar WinSCP.
Para descargarlo e instalarlo clica aquí.
puTTY
Muy importante disponer de puTTY para poder seguir este tutorial. Recuerda que se puede descargar aquí https://www.putty.org/
Archivos necesarios
Descargaremos los siguientes archivos:
El funcionamiento será el siguiente: si queremos que varias cámaras nos envíen gifs lo que haremos es tener varios scripts fotoEntrada, fotoMostrador, fotoVentana, etc etc etc modificando el nombre en fotoXxxx. Una mayúscula trás foto seguido de minúsculas sin números. Sin embargo, tendremos un único script domoticzFoto para que funcionen los otros.
No editaremos nada en el archivo domoticzFoto.sh, pero en fotoEntrada.sh editaremos lo siguiente (si te cuesta abrirlo utiliza el programa Notepad++):
- /home/pi/fotos/ será el directorio donde se descargarán las imágenes para compilar el gif. Si quieres que vaya a otro directorio edítalo por el que quieras.
- snapshotURL=»http://192.168.1.200/snapshot.cgi»: el http://192.168.1.200/snapshot.cgi será la URL de donde se extrae la imagen de la cámara en cuestión. Para conocer esta URL en tu caso, puedes encontrarlo en domoticz. En la página de setup > More options > Cameras. Seleccionamos la cámara que nos interesa y clicamos sobre EDIT. Clicamos sobre TEST CONNECTION. Colocamos el puntero del ratón sobre la imagen y con el botón derecho del ratón seleccionamos la opción INSPECCIONAR (o pulsando F12). Nos abrirá una ventana emergente en la que aparecerá sombreada la URL de la cámara. Otra opción para conseguir la URL es abrir una imagen desde el interruptor asociado a la cámara en domoticz, botón derecho del ratón y copiar la URL.
- teleTok=»9999999999:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA» cambiaremos el 9999999999:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA por nuestro token de telegram.
- chatId=»-99999999″ cambiaremos el -99999999 por nuestro chatID de telegram. Si nuestro chatID no tiene ningún signo negativo, no lo pondremos.
- delayTime=0.250 será el tiempo entre imágenes para el gif. Lo podemos dejar así y luego editarlo para ajustarlo a nuestro gusto.
Configuración con winscp
Abrimos winscp y trasladamos los dos scripts sh descargados a /home/pi/scripts.
Comprobamos que el Grupo y el Propietario de ambos scripts es pi [1000].
Los permisos deben ser 777. Si no te aparecen así pasamos al siguiente paso para editarlos.
Configuración con putty
Abrimos puTTY y entramos en el directorio de los scripts:
cd /home/pi/scripts
Damos permisos a los scripts. Introducimos una linea, intro y otra linea, intro:
chmod +x domoticzFoto.sh
chmod +x fotoEntrada.sh
Actualizamos:
sudo systemctl daemon-reload
Paramos domoticz:
sudo systemctl stop domoticz
Arrancamos domoticz:
sudo systemctl start domoticz
Configuración en domoticz
Nos vamos a domoticz a:
Setup > More options > Events
Creamos un script DzVents tipo ALL y sustituimos el texto por lo siguiente:
return {
on = {
scenes = {
'testScene'
}
},
execute = function(domoticz, device)
domoticz.log('TestEscene', domoticz.LOG_ERROR)
local returnValue = os.execute('sh /home/pi/scripts/domoticzFoto.sh Entrada')
end
}
Guardamos dejándolo en ON.
A tener en cuenta:
- testScene es una escena que hemos creado para lanzar el script y ver si recibimos el telegram con el gif.
- «Entrada» marcado con flechas rojas determina qué script queremos ejecutar. Como os comentaba anteriormente, podremos recibir gifs de distintas cámaras. Si tenemos otro script llamado fotoVentana en el script DzVents en lugar de poner:
local returnValue = os.execute('sh /home/pi/scripts/domoticzFoto.sh Entrada')
pondremos:
local returnValue = os.execute('sh /home/pi/scripts/domoticzFoto.sh Ventana').
Aspectos a tener en cuenta
Si la URL de tu cámara lleva el admin o user delante con pass, y si tu contraseña tiene un $ como carácter especial, deberás poner un \ delante del $.
Comprobación del funcionamiento
Activaremos la escena testScene y esperaremos unos segundos a recibir el gif.
Si no lo recibimos comprueba:
- Que el TOKEN y chatID de telegram anotado en el script sh esté correcto.
- Que la URL de la cámara es la correcta. Para comprobarlo escribe esa URL en tu navegador y tiene que aparecerte la imagen de la cámara.
- Si lo anterior está correcto, puedes intentar ejecutar el script directamente desde puTTY lanzando lo siguiente:
cd /home/pi/scripts
Y:
sudo ./fotoEntrada.sh
Verás si aparece algún error para poder analizar el origen del problema. Si te aparece algún error echa un ojo al último apartado del tutorial.
Aquí tenéis un ejemplo de lo que deberíais recibir en telegram:
Adaptación del script DzVents
Podemos adaptar el script DzVents para que el gif nos llegue tras multitud de situaciones:
- Con la activación de un sensor de movimiento.
- Con la apertura o cierre de un sensor de puerta/ventana.
- A un horario en concreto.
- Tras un contador.
- Etc
Posibles problemas
Si tras aplicar el tutorial lanzas el script por putty y no te funciona porque devuelve error del tipo de la imagen:
Crea manualmente la carpeta fotos en el directorio /home/pi mediante putty o mediante winscp.
La carpeta debe tener permisos 777 y su propietario debe ser pi, no root.
Para cualquier duda o consulta tienes disponible el grupo de telegram «Domoticz a lo Spain» para entrar, ponerte cómodo y participar cuanto quieras.
Cualquier duda, sugerencia o comentario será bien recibida en la web!