Hola A todos y bienvenidos a este nuevo artículo en el que os voy a explicar cómo enviar fotos y vídeos a Telegram a modo de notificaciones a vuestra cuenta de Telegram.

Recientemente he publicado un vídeo tratando este tema y otro te lo adjunto aquí abajo para que podáis consultarlo. la idea es que utilicéis este articulo cómo complemento a ese vídeo y podáis realizar lo paso a paso sin ningún tipo de problema .

Lo primero que hay que dejar claro en este manual es que no todas las cámaras van a funcionar correctamente para la función de envío de vídeos cómo ficheros adjuntos a telegram . En el vídeo podéis comprobar que os hago la demostración en vivo y directo de 2 cámaras, uno que si funciona el envío de vídeos cómo archivo adjunto y otra en la que solamente funciona las fotografías.

El envío de vídeos os va a funcionar en los stream que recibáis en vuestro Home Assistant en formato FFMPEG, Es decir los streams a los que os conectéis a través del protocolo RSTP.

Configurar tu Bot para enviar fotos y vídeos a telegram

Lo Primero que debéis de hacer es Configurar vuestro bot de telegram, y para eso tenéis un vídeo en el canal, o este articulo que os dejo enlazado justo aquí abajo.

Configura tu Bot de Telegram

Es muy importante que realicéis este pasó en primer lugar ya que todo el manual que vamos a tratar en este artículo se basa en ese primer paso.

Cámaras para enviar notificaciones a telegram

Una vez que tengáis integrado el bot de telegram en vuestro Home Assistant, lo siguiente es trabajar con las cámaras que ya tengáis integradas en vuestro sistema.

Mis camaras para Enviar Fotos y Vídeos a Telegram

En mi caso va a ha ser estas cámaras que estáis viendo ahora mismo con las que voy a trabajar. La primera de ellas es una cámara sobre la plataforma ESPHOME, La segunda y la tercera son cámaras sobre la plataforma FFMPEG. Como ya os he dicho antes, estas últimas serán sobre las que pueda utilizar la notificación de vídeo.

Algunas cámaras IP

Automatizar el envío de videos y fotos a telegram

Esto es tan sencillo que vamos a proceder ya a ver cómo serían las automatizaciones necesarias para poder enviar las notificaciones a vuestra cuenta de telegram, mejor dicho al chat que tengáis con vuestro Bot de telegram. Todo esto del chat con vuestros Bots de telegram ya lo debéis detener configurado, cómo os he mencionado antes en base a este articulo.

Está que os adjunto a continuación sería el script necesario para enviar una fotografía adjunta en vuestro chat con el bot de telegram.

foto_garage_telegram:
  alias: foto_garage_telegram
  sequence:
  - service: camera.snapshot
    data:
      filename: /config/www/grabaciones/SOTANO_CAMARA01_TLGRM.jpg
    entity_id: camera.camara1
  - delay: 00:00:10
  - service: telegram_bot.send_photo
    data:
      file: /config/www/grabaciones/SOTANO_CAMARA01_TLGRM.jpg
  mode: single

Lo interesante de hacerlo como un script es que vais a poder llamarlo desde cualquier automatización y no tener que estar desarrollando el código de tomar una fotografía para cada automatización en la que quieras usarlo.

Basándome en el mismo concepto os comparto aquí debajo el código que yo he utilizado para crear un script que genere un vídeo de 30 segundos y me lo mande a telegram

video_garage_telegram:
  alias: Video_garage_telegram
  sequence:
  - service: camera.record
    data:
      filename: /config/www/grabaciones/SOTANO_CAMARA01_TLGRM.mp4
    entity_id: camera.garage
  - delay: 00:01:00
  - service: telegram_bot.send_video
    data:
      file: /config/www/grabaciones/SOTANO_CAMARA01_TLGRM.mp4
  mode: single

Con estos simples Scripts podréis enviar Fácilmente imágenes y vídeos a través de vuestro chat con vuestro bot de telegram, recordar siempre que no todas las cámaras van a soportar el envío de vídeos adjuntos ya lo habéis podido comprobar en el vídeo de youtube.

Enviar las fotos y los vídeos con Node-Red

Ahora un bonus para los que habéis llegado hasta el final del articulo. voy a compartir con vosotros mis flow de Node-Red.

Enviar Fotos y Vídeos a Telegram con Node-Red

Este de arriba es el diagrama, de como lo veríais en Node-Red. Si os interesa importarlo, aquí abajo os pongo el código.

[
    {
        "id": "8498dec5.d50b5",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": ""
    },
    {
        "id": "57fbcc62.7201a4",
        "type": "poll-state",
        "z": "8498dec5.d50b5",
        "name": "movimiento_garage",
        "server": "180cef91.7fc76",
        "version": 1,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "updateinterval": "2",
        "updateIntervalUnits": "seconds",
        "outputinitially": false,
        "outputonchanged": false,
        "entity_id": "binary_sensor.sotano_motion_puerta",
        "state_type": "str",
        "halt_if": "true",
        "halt_if_type": "bool",
        "halt_if_compare": "is",
        "outputs": 2,
        "x": 240,
        "y": 180,
        "wires": [
            [
                "97f90a6b.74df38",
                "a61ea5fa.1e6d08"
            ],
            []
        ]
    },
    {
        "id": "97f90a6b.74df38",
        "type": "api-call-service",
        "z": "8498dec5.d50b5",
        "name": "Encender_sotano",
        "server": "180cef91.7fc76",
        "version": 1,
        "debugenabled": false,
        "service_domain": "light",
        "service": "turn_on",
        "entityId": "light.sotano_luzgeneral",
        "data": "",
        "dataType": "json",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 490,
        "y": 100,
        "wires": [
            [
                "bf840a9b.cdad18"
            ]
        ]
    },
    {
        "id": "f1733f44.7d16e",
        "type": "inject",
        "z": "8498dec5.d50b5",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 260,
        "y": 280,
        "wires": [
            [
                "97f90a6b.74df38",
                "a61ea5fa.1e6d08",
                "e094623e.1979a"
            ]
        ]
    },
    {
        "id": "8a8dc160.27c21",
        "type": "api-call-service",
        "z": "8498dec5.d50b5",
        "name": "Apagar_sotano",
        "server": "180cef91.7fc76",
        "version": 1,
        "debugenabled": false,
        "service_domain": "light",
        "service": "turn_off",
        "entityId": "light.sotano_luzgeneral",
        "data": "",
        "dataType": "json",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 940,
        "y": 100,
        "wires": [
            []
        ]
    },
    {
        "id": "bf840a9b.cdad18",
        "type": "delay",
        "z": "8498dec5.d50b5",
        "name": "",
        "pauseType": "delay",
        "timeout": "30",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 740,
        "y": 100,
        "wires": [
            [
                "8a8dc160.27c21"
            ]
        ]
    },
    {
        "id": "a61ea5fa.1e6d08",
        "type": "api-call-service",
        "z": "8498dec5.d50b5",
        "name": "",
        "server": "180cef91.7fc76",
        "version": 1,
        "debugenabled": false,
        "service_domain": "camera",
        "service": "record",
        "entityId": "camera.garage",
        "data": "{"filename":"/config/www/grabaciones/SOTANO_CAMARA01_TLGRM.mp4"}",
        "dataType": "json",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 490,
        "y": 160,
        "wires": [
            [
                "6dbce1f5.88791"
            ]
        ]
    },
    {
        "id": "6dbce1f5.88791",
        "type": "delay",
        "z": "8498dec5.d50b5",
        "name": "",
        "pauseType": "delay",
        "timeout": "1",
        "timeoutUnits": "minutes",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 740,
        "y": 160,
        "wires": [
            [
                "91e790db.d504e"
            ]
        ]
    },
    {
        "id": "91e790db.d504e",
        "type": "api-call-service",
        "z": "8498dec5.d50b5",
        "name": "",
        "server": "180cef91.7fc76",
        "version": 1,
        "debugenabled": false,
        "service_domain": "telegram_bot",
        "service": "send_video",
        "entityId": "",
        "data": "{"file":"/config/www/grabaciones/SOTANO_CAMARA01_TLGRM.mp4"}",
        "dataType": "json",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 990,
        "y": 160,
        "wires": [
            []
        ]
    },
    {
        "id": "e094623e.1979a",
        "type": "api-call-service",
        "z": "8498dec5.d50b5",
        "name": "",
        "server": "180cef91.7fc76",
        "version": 1,
        "debugenabled": false,
        "service_domain": "camera",
        "service": "snapshot",
        "entityId": "camera.delante",
        "data": "{"filename":"/config/www/grabaciones/SOTANO_CAMARA01_TLGRM.jpg"}",
        "dataType": "json",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 500,
        "y": 220,
        "wires": [
            [
                "594b062e.cfc4e8"
            ]
        ]
    },
    {
        "id": "594b062e.cfc4e8",
        "type": "delay",
        "z": "8498dec5.d50b5",
        "name": "",
        "pauseType": "delay",
        "timeout": "5",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 740,
        "y": 220,
        "wires": [
            [
                "438c27d6.b064a8"
            ]
        ]
    },
    {
        "id": "438c27d6.b064a8",
        "type": "api-call-service",
        "z": "8498dec5.d50b5",
        "name": "",
        "server": "180cef91.7fc76",
        "version": 1,
        "debugenabled": false,
        "service_domain": "telegram_bot",
        "service": "send_photo",
        "entityId": "",
        "data": "{"file":"/config/www/grabaciones/SOTANO_CAMARA01_TLGRM.jpg"}",
        "dataType": "json",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 990,
        "y": 220,
        "wires": [
            []
        ]
    },
    {
        "id": "180cef91.7fc76",
        "type": "server",
        "name": "Home Assistant",
        "addon": true
    }
]

Si deseas utilizar este flow en tu sistema vas a tener que realizarle algunos ajustes, como por ejemplo los nombres de las entidades, pero como base de va a servir para realizar el trabajo que tiene como cometido este artículo.

Por Juan Antonio

Creador y Administrador de isytec.net. Como amante de las tecnologías que soy, disfruto conociéndolas, probándolas y lo que más me gusta es contaros mi opinión por si os ayuda en algo. Espero que disfrutéis tanto de isytec.net como yo. :)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.