Плагин Telegram
-
@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 \;
);
}
})
-
Пользователь @sergeyygr написал в Плагин Telegram:
@dev:
Написал. Вероятно не воспринимает, до загрузки IH дело не доходит, OS до конца не загружается :oops:
Вылечил! Отсоединил lan, вошел через 127.0.0.1, удалил сценарий, все встало на место. Адреналинчику хватнул
Добрый день, здорово, что получилось, простите за некорректный пример, завтра предложим рабочий вариант
А рабочий вариант будет?
/**
- @name Перезагрузка_IHPRO
- @desc перезагружает оболочку ihpro
- @version 4
*/
const telegram_bot_1 = Device("telegram_bot_1");
startOnChange([telegram_bot_1]);
script({
start() {
if (telegram_bot_1.value == "restart") {
this.startTimer("T1",10,"onTimerT1");
}
},
onTimerT1() {
this.execOS(systemctl restart intrahouse-c
);
}
})/**
- @name Перезагрузка
- @desc перезагружает систему
- @version 4
*/
const telegram_bot_1 = Device("telegram_bot_1");
startOnChange([telegram_bot_1]);
script({
start() {
if (telegram_bot_1.value == "reboot") {
this.startTimer("T1",10,"onTimerT1");
}
},
onTimerT1() {
this.execOS(sudo reboot
);
}
})
-
переписал this.execOS : this.execOS(
cd /mnt/dietpi_userdata/snapshot/ && n=1; for f in *.jpg; do mv "$f" "$n.jpg"; n=$((n+++1)); done; cd;
);
-
Пользователь @Alex-Kupriyanov написал в Плагин Telegram:
переписал this.execOS : this.execOS(
cd /mnt/dietpi_userdata/snapshot/ && n=1; for f in *.jpg; do mv "$f" "$n.jpg"; n=$((n+++1)); done; cd;
);this.execOS(
cd /mnt/SHINOBI/dietpi_userdata/snapshot/ && find . -name 'channel1s*.jpg' -printf "mv '%p' '%h/%TY-%Tm-%Td+%TH:%TM:%TS_%f'\n" | sh
);
-
Здравствуйте.
Как предать в плагин telegram свое значение не img а video?
this.info("telegram","OWNER", { txt: 'Движение!!!', img: '/tmp/output.mp4'});
-
Коллеги, в Cherry при старте системы сценарием формируются telegram-уведомления, но они не приходят... Push-сообщения прилетают!
-
@Alex_Jet Добрый день, попробуйте отключить прокси, в настройках плагина
-
Добрый день!
Написал скрипт/** * @name Тестовый сценарий телеграмм * @desc * @version 4 */ const inc_msg = Device("Telegram_inc_msg"); startOnChange(inc_msg); script({ start() { if (inc_msg.value=="123") { this.info("telegram","OWNER", {txt: '321'}); } else { this.info("telegram","OWNER", {txt:'не понял :('}); } } });
Если отправляю в Бот "123", то в ответ получаю 2 строки: "321" и "не понял :(".
Если от отправляю что-то другое, то получаю 2 раза "не понял :(".Явно ошибка какая-то глупая.
Но какая?
-
То, что бот в канале пишет не является для скрипта таким же inc_msg ?
В этом случае все всегда заканчивается на "не понял". А потом уже inc_msg не меняется (остается "не понял"), поэтому до бесконечности скрипт не продолжается.
123 - 321
321 - не понял
не понял - не понял (а это не изменение предыдущего значения)
-
Пользователь @Erik написал в Плагин Telegram:
То, что бот в канале пишет не является для скрипта таким же inc_msg ?
В этом случае все всегда заканчивается на "не понял". А потом уже inc_msg не меняется (остается "не понял"), поэтому до бесконечности скрипт не продолжается.
123 - 321
321 - не понял
не понял - не понял (а это не изменение предыдущего значения)Идея хорошая.
Спасибо!
Но как тогда обрабатывать такую ситуацию если сообщений от бота может быть достаточно много.В самом плагине в incoming_message, в значении с канала, указано именно то что я отправлял боту. т.е. "321" и "не понял" так не появляется...
Но обработка только по условиям "==" не дублирует сообщения