Плагин Telegram
-
@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
Для более стабильной и быстрой работы плагина, настройку
Прокси
можно отключить.
-
Пользователь @dev написал в Плагин 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' }); } })
Отправить снапшот:
Добрый день. Подскажите пожалуйста, можно в примере " получить фото" использовать не имя файла, а диапазон имён? Объясню. У меня есть видео сервер. Он сам делает скриншот, отправляет в файлохранилище. И каждый снимок именуют номер потока и время. Через плагин сств не получается взять снапшот потому что запрос получается вида: 127.0.0.1:56555/video.jpg( и каждый раз рандом число) stream 0s1. Я настроил в снапшотов периодическое удаление фото. Как мне получить фото зная только часть имени. Типа channel1s1xxx, где ххх порядковый номер. Спасибо.
-
-
@Alex-Kupriyanov
Ещё раз здравствуйте. Получилось как-то не очень.
/**- @name Script 2
- @desc
- @version 4
*/
const SMOTION_1_1 = Device("SMOTION_1_1");
startOnChange([SMOTION_1_1]);
script({
start() {
if (SMOTION_1_1.isOn()) {
this.info("telegram","OWNER", { txt: 'Гостиная', img: '/var/www/dietpi_userdata/snapshot//channel1s1001M.jpg' });
this.startTimer("T1",10,"onTimerT1");
}
},
onTimerT1() {
this.execOS(find /var/www/dietpi_userdata/snapshot/ . -name "channel1s100*" -type f -delete \;
);
}
})