Плагин Telegram



  • Чтобы команда выполнялась несколько раз подряд, значение датчика, привязанного к телеграму нужно обнулять или менять, иначе startOnChange не запустится повторно. Хотел после выполнения писать туда "Done" , но оказалось, аналоговому датчику из блок-схемы нельзя присвоить тестовое значение)



  • @dev:

    Добрый день, доступно обновление плагина 0.0.12

    • Отправка снапшотов видеокамеры в сообщениях.

    Можно более подробно расписать по snapshot. Я вот реально не понял - кто его делает - плагин CCTV или в нем специально надо добавлять канал камеры, который делает snapshot? По this.snap("10","onSnap10") - еле догадался, что "10" - это id канала в cctv-плагине…

    Смог вручную стартануть сценарий, вот что у меня вышло:

    17.04 12:18:30.223 Started
    17.04 12:18:30.225 snap:"312"
    17.04 12:18:30.226 plugincommand {"unit":"cctv","uuid":"snap_1555478310225","command":"snap","id":"312","camid":"312"}
    17.04 12:18:30.227 info telegram: { txt: 'Тест', dest: 'OWNER' }
    17.04 12:18:30.283 plugincommand result {"message":"no snapshot option for camera 312"}
    17.04 12:18:30.284 exec function onSnap10
    17.04 12:18:30.284 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    17.04 12:18:30.288 Stopped
    
    

    Upd: добавил новый канал HTTP/JPEG с адресом http://192.168.11.12/web/tmpfs/auto.jpg. В отладчике почти то же самое:

    17.04 12:26:25.981 Started
    17.04 12:26:25.982 snap:"319"
    17.04 12:26:25.983 plugincommand {"unit":"cctv","uuid":"snap_1555478785982","command":"snap","id":"319","camid":"319"}
    17.04 12:26:25.987 plugincommand result {"message":"no snapshot option for camera 319"}
    17.04 12:26:25.987 exec function onSnap10
    17.04 12:26:25.988 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    17.04 12:26:26.027 Stopped
    
    

    Все же как этим пользоваться?

    И добавляя новый канал, увидел что в последней версии cctv убрали возможность добавлять подканалы…я считаю что зря! Мне кажется целесообразнее завести 5-10 камер и у каждой добавить нужный канал/каналы. Такая иерархичная структура удобнее как минимум пользователям.



  • @Alex_Jet:

    @dev:

    Добрый день, доступно обновление плагина 0.0.12

    • Отправка снапшотов видеокамеры в сообщениях.

    Можно более подробно расписать по snapshot. Я вот реально не понял - кто его делает - плагин CCTV или в нем специально надо добавлять канал камеры, который делает snapshot? По this.snap("10","onSnap10") - еле догадался, что "10" - это id канала в cctv-плагине…

    Смог вручную стартануть сценарий, вот что у меня вышло:

    > 17.04 12:18:30.223 Started
    > 17.04 12:18:30.225 snap:"312"
    > 17.04 12:18:30.226 plugincommand {"unit":"cctv","uuid":"snap_1555478310225","command":"snap","id":"312","camid":"312"}
    > 17.04 12:18:30.227 info telegram: { txt: 'Тест', dest: 'OWNER' }
    > 17.04 12:18:30.283 plugincommand result {"message":"no snapshot option for camera 312"}
    > 17.04 12:18:30.284 exec function onSnap10
    > 17.04 12:18:30.284 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    > 17.04 12:18:30.288 Stopped
    > 
    

    Добрый день, удалите старый канал в плагине cctv, создайте новый, на вкладке камера заполните все как и было, на вкладке дополнительно заполните строку со снапшотом. Снапшот делает плагин CCTV, через команду this.snap. У Вас в плагине CCTV для канала 312 не заполненна строка со снапшотом во вкладке дополнительно



  • @dev:

    Добрый день, удалите старый канал в плагине cctv, создайте новый, на вкладке камера заполните все как и было, на вкладке дополнительно заполните строку со снапшотом. Снапшот делает плагин CCTV, через команду this.snap. У Вас в плагине CCTV для канала 312 не заполненна строка со снапшотом во вкладке дополнительно

    Сделал совсем новый канал. На вкладке дополнительно все заполнил, но:

    17.04 12:38:47.683 Started
    17.04 12:38:47.684 snap:"319"
    17.04 12:38:47.684 plugincommand {"unit":"cctv","uuid":"snap_1555479527684","command":"snap","id":"319","camid":"319"}
    17.04 12:38:47.685 plugincommand result undefined
    17.04 12:38:47.685 exec function onSnap10
    17.04 12:38:47.686 Error function onSnap10:Cannot read property 'filename' of undefined
    17.04 12:38:47.686 Stopped
    17.04 12:39:00.179 Started
    17.04 12:39:00.180 snap:"319"
    17.04 12:39:00.180 plugincommand {"unit":"cctv","uuid":"snap_1555479540180","command":"snap","id":"319","camid":"319"}
    17.04 12:39:00.275 plugincommand result {"message":"fail"}
    17.04 12:39:00.275 exec function onSnap10
    17.04 12:39:00.275 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    17.04 12:39:00.314 Stopped
    17.04 12:39:56.927 Started
    17.04 12:39:56.928 snap:"319"
    17.04 12:39:56.928 plugincommand {"unit":"cctv","uuid":"snap_1555479596928","command":"snap","id":"319","camid":"319"}
    17.04 12:39:56.964 plugincommand result {"message":"fail"}
    17.04 12:39:56.964 exec function onSnap10
    17.04 12:39:56.965 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    17.04 12:39:56.998 Stopped
    
    


  • @Alex_Jet:

    @dev:

    Добрый день, удалите старый канал в плагине cctv, создайте новый, на вкладке камера заполните все как и было, на вкладке дополнительно заполните строку со снапшотом. Снапшот делает плагин CCTV, через команду this.snap. У Вас в плагине CCTV для канала 312 не заполненна строка со снапшотом во вкладке дополнительно

    Сделал совсем новый канал. На вкладке дополнительно все заполнил, но:

    > 17.04 12:38:47.683 Started
    > 17.04 12:38:47.684 snap:"319"
    > 17.04 12:38:47.684 plugincommand {"unit":"cctv","uuid":"snap_1555479527684","command":"snap","id":"319","camid":"319"}
    > 17.04 12:38:47.685 plugincommand result undefined
    > 17.04 12:38:47.685 exec function onSnap10
    > 17.04 12:38:47.686 Error function onSnap10:Cannot read property 'filename' of undefined
    > 17.04 12:38:47.686 Stopped
    > 17.04 12:39:00.179 Started
    > 17.04 12:39:00.180 snap:"319"
    > 17.04 12:39:00.180 plugincommand {"unit":"cctv","uuid":"snap_1555479540180","command":"snap","id":"319","camid":"319"}
    > 17.04 12:39:00.275 plugincommand result {"message":"fail"}
    > 17.04 12:39:00.275 exec function onSnap10
    > 17.04 12:39:00.275 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    > 17.04 12:39:00.314 Stopped
    > 17.04 12:39:56.927 Started
    > 17.04 12:39:56.928 snap:"319"
    > 17.04 12:39:56.928 plugincommand {"unit":"cctv","uuid":"snap_1555479596928","command":"snap","id":"319","camid":"319"}
    > 17.04 12:39:56.964 plugincommand result {"message":"fail"}
    > 17.04 12:39:56.964 exec function onSnap10
    > 17.04 12:39:56.965 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    > 17.04 12:39:56.998 Stopped
    > 
    

    Добрый день, запрос не проходит, надо смотреть почему



  • @dev:

    @Alex_Jet:

    @dev:

    Добрый день, удалите старый канал в плагине cctv, создайте новый, на вкладке камера заполните все как и было, на вкладке дополнительно заполните строку со снапшотом. Снапшот делает плагин CCTV, через команду this.snap. У Вас в плагине CCTV для канала 312 не заполненна строка со снапшотом во вкладке дополнительно

    Сделал совсем новый канал. На вкладке дополнительно все заполнил, но:

    > > 17.04 12:38:47.683 Started
    > > 17.04 12:38:47.684 snap:"319"
    > > 17.04 12:38:47.684 plugincommand {"unit":"cctv","uuid":"snap_1555479527684","command":"snap","id":"319","camid":"319"}
    > > 17.04 12:38:47.685 plugincommand result undefined
    > > 17.04 12:38:47.685 exec function onSnap10
    > > 17.04 12:38:47.686 Error function onSnap10:Cannot read property 'filename' of undefined
    > > 17.04 12:38:47.686 Stopped
    > > 17.04 12:39:00.179 Started
    > > 17.04 12:39:00.180 snap:"319"
    > > 17.04 12:39:00.180 plugincommand {"unit":"cctv","uuid":"snap_1555479540180","command":"snap","id":"319","camid":"319"}
    > > 17.04 12:39:00.275 plugincommand result {"message":"fail"}
    > > 17.04 12:39:00.275 exec function onSnap10
    > > 17.04 12:39:00.275 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    > > 17.04 12:39:00.314 Stopped
    > > 17.04 12:39:56.927 Started
    > > 17.04 12:39:56.928 snap:"319"
    > > 17.04 12:39:56.928 plugincommand {"unit":"cctv","uuid":"snap_1555479596928","command":"snap","id":"319","camid":"319"}
    > > 17.04 12:39:56.964 plugincommand result {"message":"fail"}
    > > 17.04 12:39:56.964 exec function onSnap10
    > > 17.04 12:39:56.965 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    > > 17.04 12:39:56.998 Stopped
    > > 
    

    Добрый день, запрос не проходит, надо смотреть почему

    Разобрался. Нужна аутентификация - http://login:password@192.168.11.16/web/tmpfs/auto.jpg

    Нужно сделать какой-то статус кроме fail для отладки таких вещей.

    И все же напрашивается иерархичность каналов в плагине! Почему вы пошли другим путем, зная что в камере может быть 3-5 каналов?



  • @Alex_Jet:

    @dev:

    @Alex_Jet:

    Сделал совсем новый канал. На вкладке дополнительно все заполнил, но:

    > > > 17.04 12:38:47.683 Started
    > > > 17.04 12:38:47.684 snap:"319"
    > > > 17.04 12:38:47.684 plugincommand {"unit":"cctv","uuid":"snap_1555479527684","command":"snap","id":"319","camid":"319"}
    > > > 17.04 12:38:47.685 plugincommand result undefined
    > > > 17.04 12:38:47.685 exec function onSnap10
    > > > 17.04 12:38:47.686 Error function onSnap10:Cannot read property 'filename' of undefined
    > > > 17.04 12:38:47.686 Stopped
    > > > 17.04 12:39:00.179 Started
    > > > 17.04 12:39:00.180 snap:"319"
    > > > 17.04 12:39:00.180 plugincommand {"unit":"cctv","uuid":"snap_1555479540180","command":"snap","id":"319","camid":"319"}
    > > > 17.04 12:39:00.275 plugincommand result {"message":"fail"}
    > > > 17.04 12:39:00.275 exec function onSnap10
    > > > 17.04 12:39:00.275 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    > > > 17.04 12:39:00.314 Stopped
    > > > 17.04 12:39:56.927 Started
    > > > 17.04 12:39:56.928 snap:"319"
    > > > 17.04 12:39:56.928 plugincommand {"unit":"cctv","uuid":"snap_1555479596928","command":"snap","id":"319","camid":"319"}
    > > > 17.04 12:39:56.964 plugincommand result {"message":"fail"}
    > > > 17.04 12:39:56.964 exec function onSnap10
    > > > 17.04 12:39:56.965 info telegram: { dest: 'OWNER', img: undefined, txt: 'Hello world!' }
    > > > 17.04 12:39:56.998 Stopped
    > > > 
    

    Добрый день, запрос не проходит, надо смотреть почему

    Разобрался. Нужна аутентификация - http://login:password@192.168.11.16/web/tmpfs/auto.jpg

    Нужно сделать какой-то статус кроме fail для отладки таких вещей.

    И все же напрашивается иерархичность каналов в плагине! Почему вы пошли другим путем, зная что в камере может быть 3-5 каналов?

    Добрый день, хорошо мы поправим, снапшот пришел у Вас в телеграм? 😉



  • @dev:

    Добрый день, хорошо мы поправим, снапшот пришел у Вас в телеграм? 😉

    Да, пришел:

    17.04 12:46:38.306 Started
    17.04 12:46:38.307 snap:"319"
    17.04 12:46:38.308 plugincommand {"unit":"cctv","uuid":"snap_1555479998307","command":"snap","id":"319","camid":"319"}
    17.04 12:46:38.417 plugincommand result {"filename":"/var/lib/intrahouse-c/projects/Alex_Jet_Smart_Home/temp/snapshot/snap_1555479998414.jpg"}
    17.04 12:46:38.417 exec function onSnap10
    17.04 12:46:38.418 info telegram: { dest: 'OWNER',
      img: '/var/lib/intrahouse-c/projects/Alex_Jet_Smart_Home/temp/snapshot/snap_1555479998414.jpg',
      txt: 'Hello world!' }
    17.04 12:46:38.452 Stopped
    
    

    Теперь надо какой-то просмоторщик снэпшотов (виджет снэпшотов с камер) делать в системе…раз они сохраняются в temp:) Иначе, какой смысл хранить их в системе?



  • @Alex_Jet:

    @dev:

    Добрый день, хорошо мы поправим, снапшот пришел у Вас в телеграм? 😉

    Да, пришел:

    > 17.04 12:46:38.306 Started
    > 17.04 12:46:38.307 snap:"319"
    > 17.04 12:46:38.308 plugincommand {"unit":"cctv","uuid":"snap_1555479998307","command":"snap","id":"319","camid":"319"}
    > 17.04 12:46:38.417 plugincommand result {"filename":"/var/lib/intrahouse-c/projects/Alex_Jet_Smart_Home/temp/snapshot/snap_1555479998414.jpg"}
    > 17.04 12:46:38.417 exec function onSnap10
    > 17.04 12:46:38.418 info telegram: { dest: 'OWNER',
    >   img: '/var/lib/intrahouse-c/projects/Alex_Jet_Smart_Home/temp/snapshot/snap_1555479998414.jpg',
    >   txt: 'Hello world!' }
    > 17.04 12:46:38.452 Stopped
    > 
    

    Теперь надо какой-то просмоторщик снэпшотов (виджет снэпшотов с камер) делать в системе…раз они сохраняются в temp:) Иначе, какой смысл хранить их в системе?

    Добрый день, все верно, в будущем планируем реализовать данную возможность



  • @dev:

    Добрый день, доступно обновление плагина 0.0.12

    • Исправлена логика отправки сообщений

    • Отправка снапшотов видеокамеры в сообщениях.

    • Отправка изображений (файлов) в сообщениях

    • Добавлена обработка входящих сообщений

    Отправить текст:

    > /** 
    > * @name Script 1
    > * @desc  
    > * @version 4 
    > */
    > 
    > script({
    >   start() { 
    >      this.info("telegram","OWNER", { txt: 'Hello world!' });
    >   }
    > })
    > 
    > 
    

    Отправить изображение:

    > /** 
    > * @name Script 2
    > * @desc  
    > * @version 4 
    > */
    > 
    > script({
    >   start() { 
    >      this.info("telegram","OWNER", { txt: 'test img', img: '/home/sadm/images/test.jpg' });
    >   }
    > })
    > 
    > 
    

    Отправить снапшот:

    > /** 
    > * @name Script 3
    > * @desc  
    > * @version 4 
    > */
    > 
    > const SMOTION_0_1 = Device("SMOTION_0_1");
    > 
    > startOnChange([SMOTION_0_1]);
    > 
    > script({
    >   start() { 
    >     if (SMOTION_0_1.isOn()) {
    >       this.snap("10","onSnap10");
    >     }
    >   },
    >   onSnap10(result) { 
    >      let img = result.filename; 
    >      let txt = `Hello world!`; 
    >      this.info("telegram","OWNER", { img, txt });
    >   }
    > })
    > 
    > 
    

    Отправить снапшот (блок-схема):

    Снимок экрана от 2019-04-12 17-01-58.png

    Для того чтобы обрабатывать входящие сообщение от бота, необходимо создать новое устройство типа "Датчик универсальный аналоговый" и привязать в плагине к каналу 'incoming_message'

    Снимок экрана от 2019-04-12 17-08-23.png

    Снимок экрана от 2019-04-12 17-08-54.png

    Далее это устройство можно обрабатывать через сценарий или блок-схему

    А можно подробнее об обработке входящих сообщений? Есть необходимость в особых случаях сделать дистанционную перезагрузку сервера (например пропала связь по р2р) через сообщение боту.



  • @sergeyygr:

    @dev:

    Добрый день, доступно обновление плагина 0.0.12

    • Исправлена логика отправки сообщений

    • Отправка снапшотов видеокамеры в сообщениях.

    • Отправка изображений (файлов) в сообщениях

    • Добавлена обработка входящих сообщений

    Отправить текст:

    > > /** 
    > > * @name Script 1
    > > * @desc  
    > > * @version 4 
    > > */
    > > 
    > > script({
    > >   start() { 
    > >      this.info("telegram","OWNER", { txt: 'Hello world!' });
    > >   }
    > > })
    > > 
    > > 
    

    Отправить изображение:

    > > /** 
    > > * @name Script 2
    > > * @desc  
    > > * @version 4 
    > > */
    > > 
    > > script({
    > >   start() { 
    > >      this.info("telegram","OWNER", { txt: 'test img', img: '/home/sadm/images/test.jpg' });
    > >   }
    > > })
    > > 
    > > 
    

    Отправить снапшот:

    > > /** 
    > > * @name Script 3
    > > * @desc  
    > > * @version 4 
    > > */
    > > 
    > > const SMOTION_0_1 = Device("SMOTION_0_1");
    > > 
    > > startOnChange([SMOTION_0_1]);
    > > 
    > > script({
    > >   start() { 
    > >     if (SMOTION_0_1.isOn()) {
    > >       this.snap("10","onSnap10");
    > >     }
    > >   },
    > >   onSnap10(result) { 
    > >      let img = result.filename; 
    > >      let txt = `Hello world!`; 
    > >      this.info("telegram","OWNER", { img, txt });
    > >   }
    > > })
    > > 
    > > 
    

    Отправить снапшот (блок-схема):

    Снимок экрана от 2019-04-12 17-01-58.png

    Для того чтобы обрабатывать входящие сообщение от бота, необходимо создать новое устройство типа "Датчик универсальный аналоговый" и привязать в плагине к каналу 'incoming_message'

    Снимок экрана от 2019-04-12 17-08-23.png

    Снимок экрана от 2019-04-12 17-08-54.png

    Далее это устройство можно обрабатывать через сценарий или блок-схему

    А можно подробнее об обработке входящих сообщений? Есть необходимость в особых случаях сделать дистанционную перезагрузку сервера (например пропала связь по р2р) через сообщение боту.

    Добрый день, идея интересная расширим API сценариев 😉



  • @sergeyygr:

    @dev:

    А можно подробнее об обработке входящих сообщений? Есть необходимость в особых случаях сделать дистанционную перезагрузку сервера (например пропала связь по р2р) через сообщение боту.

    Добрый день, идея интересная расширим API сценариев 😉

    Хмм… А думал это сейчас реализовать можно... Отправляем сообщение, запускается сценарий и команда this.execOS(sudo reboot) 🙂



  • @sergeyygr:

    @sergeyygr:

    @dev:

    А можно подробнее об обработке входящих сообщений? Есть необходимость в особых случаях сделать дистанционную перезагрузку сервера (например пропала связь по р2р) через сообщение боту.

    Добрый день, идея интересная расширим API сценариев 😉

    Хмм… А думал это сейчас реализовать можно... Отправляем сообщение, запускается сценарий и команда this.execOS(sudo reboot) 🙂

    Добрый день, действительно так тоже можно 😄



  • @dev:

    @sergeyygr:

    @sergeyygr:

    Добрый день, идея интересная расширим API сценариев 😉

    Хмм… А думал это сейчас реализовать можно... Отправляем сообщение, запускается сценарий и команда this.execOS(sudo reboot) 🙂

    Добрый день, действительно так тоже можно 😄

    Подскажите пожалуйста как это сделать.



  • @sergeyygr:

    @dev:

    @sergeyygr:

    Хмм… А думал это сейчас реализовать можно... Отправляем сообщение, запускается сценарий и команда this.execOS(sudo reboot) 🙂

    Добрый день, действительно так тоже можно 😄

    Подскажите пожалуйста как это сделать.

    Добрый день, перед тем как приступать обновите версию до 4.6.4, должно быть примерно так:



  • @dev:

    @sergeyygr:

    @dev:

    Добрый день, действительно так тоже можно 😄

    Подскажите пожалуйста как это сделать.

    Добрый день, перед тем как приступать обновите версию до 4.6.4, должно быть примерно так:

    Снимок экрана 2019-04-29 в 16.02.33.png

    Вот так ПЕРЕЗАГРУЗИЛСЯ!!! Перезагрузка зациклилась!!! Как Это остановить?????



  • @sergeyygr:

    @dev:

    @sergeyygr:

    Подскажите пожалуйста как это сделать.

    Добрый день, перед тем как приступать обновите версию до 4.6.4, должно быть примерно так:

    Снимок экрана 2019-04-29 в 16.02.33.png

    Вот так ПЕРЕЗАГРУЗИЛСЯ!!! Перезагрузка зациклилась!!! Как Это остановить?????

    Добрый день, напишите боту другую команду, любую



  • @dev:

    @sergeyygr:

    @dev:

    Добрый день, перед тем как приступать обновите версию до 4.6.4, должно быть примерно так:

    Снимок экрана 2019-04-29 в 16.02.33.png

    Вот так ПЕРЕЗАГРУЗИЛСЯ!!! Перезагрузка зациклилась!!! Как Это остановить?????

    Добрый день, напишите боту другую команду, любую

    Написал. Вероятно не воспринимает, до загрузки IH дело не доходит, OS до конца не загружается :oops:



  • @sergeyygr:

    @dev:

    @sergeyygr:

    Вот так ПЕРЕЗАГРУЗИЛСЯ!!! Перезагрузка зациклилась!!! Как Это остановить?????

    Добрый день, напишите боту другую команду, любую

    Написал. Вероятно не воспринимает, до загрузки IH дело не доходит, OS до конца не загружается :oops:

    Вылечил! Отсоединил lan, вошел через 127.0.0.1, удалил сценарий, все встало на место. Адреналинчику хватнул 😄



  • @sergeyygr:

    @sergeyygr:

    @dev:

    Добрый день, напишите боту другую команду, любую

    Написал. Вероятно не воспринимает, до загрузки IH дело не доходит, OS до конца не загружается :oops:

    Вылечил! Отсоединил lan, вошел через 127.0.0.1, удалил сценарий, все встало на место. Адреналинчику хватнул 😄

    Добрый день, здорово, что получилось, простите за некорректный пример, завтра предложим рабочий вариант 😉


Авторизуйтесь, чтобы ответить