Плагин Telegram
-
Добрый день, доступно обновление плагина 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 }); } })
Отправить снапшот (блок-схема):
Для того чтобы обрабатывать входящие сообщение от бота, необходимо создать новое устройство типа "Датчик универсальный аналоговый" и привязать в плагине к каналу 'incoming_message'
Далее это устройство можно обрабатывать через сценарий или блок-схему
-
-
А как получить значение userid? Можно ли из блок-схемы?
Ждем еще функционал кнопок для полного фарша) пока кнопок нет - создал команды
-
Чтобы команда выполнялась несколько раз подряд, значение датчика, привязанного к телеграму нужно обнулять или менять, иначе 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 камер и у каждой добавить нужный канал/каналы. Такая иерархичная структура удобнее как минимум пользователям.
-
@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
-
@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:
@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 каналов?
-
@dev:
Сделал совсем новый канал. На вкладке дополнительно все заполнил, но:
> > > 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:) Иначе, какой смысл хранить их в системе?
-
@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р) через сообщение боту.
Добрый день, идея интересная расширим API сценариев
-
-
@dev:
А можно подробнее об обработке входящих сообщений? Есть необходимость в особых случаях сделать дистанционную перезагрузку сервера (например пропала связь по р2р) через сообщение боту.
Добрый день, идея интересная расширим API сценариев
Хмм… А думал это сейчас реализовать можно... Отправляем сообщение, запускается сценарий и команда this.execOS(
sudo reboot
)Добрый день, действительно так тоже можно
-
@dev:
Хмм… А думал это сейчас реализовать можно... Отправляем сообщение, запускается сценарий и команда this.execOS(
sudo reboot
)Добрый день, действительно так тоже можно
Подскажите пожалуйста как это сделать.
Добрый день, перед тем как приступать обновите версию до 4.6.4, должно быть примерно так:
-
@dev:
Подскажите пожалуйста как это сделать.
Добрый день, перед тем как приступать обновите версию до 4.6.4, должно быть примерно так:
Снимок экрана 2019-04-29 в 16.02.33.png
Вот так ПЕРЕЗАГРУЗИЛСЯ!!! Перезагрузка зациклилась!!! Как Это остановить?????
Добрый день, напишите боту другую команду, любую
-
@dev:
Добрый день, напишите боту другую команду, любую
Написал. Вероятно не воспринимает, до загрузки IH дело не доходит, OS до конца не загружается :oops:
Вылечил! Отсоединил lan, вошел через 127.0.0.1, удалил сценарий, все встало на место. Адреналинчику хватнул
Добрый день, здорово, что получилось, простите за некорректный пример, завтра предложим рабочий вариант
-
@dev:
Написал. Вероятно не воспринимает, до загрузки IH дело не доходит, OS до конца не загружается :oops:
Вылечил! Отсоединил lan, вошел через 127.0.0.1, удалил сценарий, все встало на место. Адреналинчику хватнул
Добрый день, здорово, что получилось, простите за некорректный пример, завтра предложим рабочий вариант
Это к вопросу об отбивке выполненной команды что я писал ранее. зарезервировать бы какое слово, которое встанет в значение датчика после того, как плагин прожует текст. Это на уровне плагина было бы проще сделать, чем в каждом скрипте писать. Может даже поле в плагине, чтобы каждый туда свой флаг завершения прописал, либо обнулять, либо символ дописывать в начало или конец
-
Добрый день, доступно обновление плагина, версия 0.0.15
- добавлено обнуление значения с помощтью символа #
-
@dev:
Написал. Вероятно не воспринимает, до загрузки IH дело не доходит, OS до конца не загружается :oops:
Вылечил! Отсоединил lan, вошел через 127.0.0.1, удалил сценарий, все встало на место. Адреналинчику хватнул
Добрый день, здорово, что получилось, простите за некорректный пример, завтра предложим рабочий вариант
Добрый день, сценарий для перезагрузки:
-
@dev:
Вылечил! Отсоединил lan, вошел через 127.0.0.1, удалил сценарий, все встало на место. Адреналинчику хватнул
Добрый день, здорово, что получилось, простите за некорректный пример, завтра предложим рабочий вариант
Это к вопросу об отбивке выполненной команды что я писал ранее. зарезервировать бы какое слово, которое встанет в значение датчика после того, как плагин прожует текст. Это на уровне плагина было бы проще сделать, чем в каждом скрипте писать. Может даже поле в плагине, чтобы каждый туда свой флаг завершения прописал, либо обнулять, либо символ дописывать в начало или конец
Добрый день, сделали с помощью символа #, обновите плагин до версии 0.0.15