Плагин Telegram
-
@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
-
@dev:
Вылечил! Отсоединил lan, вошел через 127.0.0.1, удалил сценарий, все встало на место. Адреналинчику хватнул
Добрый день, здорово, что получилось, простите за некорректный пример, завтра предложим рабочий вариант
А рабочий вариант будет?
Так последнее обновление вроде решает Ваш вопрос
-
@dev:
Вылечил! Отсоединил lan, вошел через 127.0.0.1, удалил сценарий, все встало на место. Адреналинчику хватнул
Добрый день, здорово, что получилось, простите за некорректный пример, завтра предложим рабочий вариант
А рабочий вариант будет?
Добрый день, вот рабочий вариант
-
Добрый день. Использую сценарии для работы с плагином. Команда передается по каналу аналогового устройства.
И если 1 участник пишет команду то ответ видят все участники. Как можно сделать что бы ответ приходил только тому кто написал команду ?/** * @name Telegram InHome * @desc * @version 4 */ const telegram_comand = Device("telegram_comand"); const InHome = Device("InHome"); startOnChange([telegram_comand]); script({ start() { if (telegram_comand.value == "#/inhome") { InHome.turnOnSaveAuto(); this.info("telegram","OWNER",`С возвращением домой ;-)`); } if (telegram_comand.value == "#/inwork") { InHome.turnOffSaveAuto(); this.info("telegram","OWNER",`Охрана: Вкл. Отопление: Эко-режим.`); } } })
-
Случайно добавил в устройство, привязанное к плагину Telegramm единицу измерения "щ". Не знаю как удалить. Любое изменение заблокировано:
причем, если отвязать устройство от всех сценариев и плагинов ошибка сохраняется.
Получилось отвязать только следующим алгоритмом:- Убираем единицу измерения, сохраниться возможности нет
- Переключаемся на другую вкладку (экраны, виджиты и тд) поле единица измерения очистится
- Перезапускам IH, после этого единица измерения не отображается
-
@dimkrasiy Добрый день, пока можно сделать в ручном режиме так:
/** * @name Telegram InHome * @desc * @version 4 */ const telegram_comand = Device("telegram_comand"); const InHome = Device("InHome"); startOnChange([telegram_comand]); script({ start() { if (telegram_comand.value == "#/inhome") { InHome.turnOnSaveAuto(); this.mes(telegram_comand.userid, `С возвращением домой ;-)`); } if (telegram_comand.value == "#/inwork") { InHome.turnOffSaveAuto(); this.mes(telegram_comand.userid, `Охрана: Вкл. Отопление: Эко-режим.`); } }, mes(id, txt) { const users = {}; users[78945] = 'admin'; // users[tid] = 'ihuser', сопоставьте telegram id и пользователя в системе users[78946] = 'user1'; users[78947] = 'user2'; users[78948] = 'user3'; this.info("telegram", users[id] || 'not found', txt); } })
Вам нужно будет указать
telegram user id
(можно посмотреть в адресах информирования) и пользователя в системе, тогда ответ придет тому кто написал команду
-
@homa Добрый день, спасибо за баг-репорт
-
Добрый день,
По согласованию с Генпрокуратурой Роскомнадзор снимает требования по ограничению доступа к Telegram
Для более стабильной и быстрой работы плагина, настройку
Прокси
можно отключить.