Плагин Telegram



  • @homa:

    @Erik:

    добавили бы пуш сообщения киоску через Р2Р, и не нужно было бы отдуваться за недальновидность дурова.

    Пуш кстати востребован в киоске, но если держать сессию ih<->киоск, то батарейка будет садиться быстро, а если сделать правильно через гугл или эпл, то наверняка нужны вложения/аб.плата и еще какие-нибудь заморочки. Я бы вообще вотсап предпочел, но там нет функционала ботов, команд и тд., в этом случае придется держать клиент в памяти и парсить сообщения, что неудобно, а про менюшки вообще придется забыть

    Кстати, у ВК есть API для групп. Может можно к ним прикрутить что-то?



  • Добрый день,
    @Alex_Jet:

    @dev:

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

    Так это целая проблема…с ожиданием прокси. По сути плагин Телеграм не работал около суток!

    вы можете прописать прокси в ручную

    @Alex_Jet:

    > 27.03 14:27:42.222 telegram: info -> id:386638229, text:_UNIT_megad4: остановлен; error - 0
    > 27.03 14:27:45.856 IH: Plugin exit with code 1
    > 27.03 14:27:45.857 IH: restart timer 10
    > 27.03 14:27:56.255 IH: Run /var/lib/intrahouse-c/plugins/telegram/index.js telegram
    > 27.03 14:27:56.793 telegram: version: 0.0.9
    > 27.03 14:27:56.793 telegram: proxy: auto
    > 27.03 14:27:58.935 telegram: proxy: 51.75.75.193:3128
    > 27.03 14:27:58.935 telegram: polling: start
    > 27.03 14:28:42.376 telegram: info -> id:386638229, text:_UNIT_megad4: запущен; error - 0
    > 
    

    как видно из лога проблема решилась ?



  • @dev:

    вы можете прописать прокси в ручную

    @Alex_Jet:

    > > 27.03 14:27:42.222 telegram: info -> id:386638229, text:_UNIT_megad4: остановлен; error - 0
    > > 27.03 14:27:45.856 IH: Plugin exit with code 1
    > > 27.03 14:27:45.857 IH: restart timer 10
    > > 27.03 14:27:56.255 IH: Run /var/lib/intrahouse-c/plugins/telegram/index.js telegram
    > > 27.03 14:27:56.793 telegram: version: 0.0.9
    > > 27.03 14:27:56.793 telegram: proxy: auto
    > > 27.03 14:27:58.935 telegram: proxy: 51.75.75.193:3128
    > > 27.03 14:27:58.935 telegram: polling: start
    > > 27.03 14:28:42.376 telegram: info -> id:386638229, text:_UNIT_megad4: запущен; error - 0
    > > 
    

    как видно из лога проблема решилась ?

    Проблема самоустранилась, но времени на самоустранение ушло много:( Как часто перезапускается плагин - пока не отследил. Как вариант, надо прописывать несколько прокси в ручную (кстати, там поле только для одного) и если они заданы, а авто не отдает список прокси, то переключаться на "ручные".



  • Может поднять на azure\aws\etc свой прокси за бугром и сделать символическую плату за плагин, чтобы прокся отбивалась?)



  • @homa:

    Может поднять на azure\aws\etc свой прокси за бугром и сделать символическую плату за плагин, чтобы прокся отбивалась?)

    Роскомнадзор не дремлет, он каждый день новые IP блокирует, через которые такой доступ организовывают.

    А если взять за работу хоть малую копеечку - отвечать за работоспособность этой связки придется.

    Тут уж лучше брать деньги за Р2Р, а тратить на телеграм. 🙂



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



  • Сегодня ночью снова не прошли 4 сообщения в Telegram. В журнале iH сообщения есть, а в приложении Telegram нет…

    При этом плагин в 05:11:48 перезапустился... может он не может обрабатывать много сообщений за раз?
    Telegram_Send_No_Response.png



  • @Alex_Jet:

    Сегодня ночью снова не прошли 4 сообщения в Telegram. В журнале iH сообщения есть, а в приложении Telegram нет…

    При этом плагин в 05:11:48 перезапустился... может он не может обрабатывать много сообщений за раз?

    Telegram_Send_No_Response.png

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



  • Добрый день, доступно обновление плагина 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

    Далее это устройство можно обрабатывать через сценарий или блок-схему
    Снимок экрана от 2019-04-12 17-41-11.png



  • А как получить значение userid? Можно ли из блок-схемы?

    Ждем еще функционал кнопок для полного фарша) пока кнопок нет - создал команды
    tc1.JPG



  • Чтобы команда выполнялась несколько раз подряд, значение датчика, привязанного к телеграму нужно обнулять или менять, иначе 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р) через сообщение боту.


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