Комментарии 62
Похоже, что любое использование Телеграма сводится к консольному клиенту, а здесь он еще и старой версии.
0
А откуда берутся идентификаторы для девайсов? Я думал там обязательно реальный телефон использовать
+4
Хм, а почему именно Телеграмм? А не XMPP какой-нибудь?
+4
+2
Если смотреть с практической точки зрения, то, на сколько мне известно, Telegram потребляет гораздо меньше трафика в отличие от XMPP. Binary vs XML. Посмотрите на протокол MTProto.
0
Не уверен, что сейчас очень актуальна проблема трафика, тем более, что XMPP неплохо жмет трафик zlib'ом. Я еще в бородатые годы на кнопочном телефоне с поддержкой только EDGE вполне неплохо им пользовался и не замечал проблем с большим объемом гоняемого трафика.
Но при этом, если я ничего не путаю, телеграм работает через свои сервера, а для жабера можно поднять свой собственный, и сделать всю инфраструктуру автономной, зависящей только от устойчивого коннекта с интернетом.
Но при этом, если я ничего не путаю, телеграм работает через свои сервера, а для жабера можно поднять свой собственный, и сделать всю инфраструктуру автономной, зависящей только от устойчивого коннекта с интернетом.
+1
Потому что в телеграме сообщение или картинка гарантированно отсылаются (будь то кривой 3G или глючный Wifi).
0
На сколько безопасно "«open», чтобы открыть дверь гаража"?
0
Довольно интересное и не сложное решение. Первое что пришло в голову кормление домашнего животного :) если уезжаешь на пару дней, поставить так камеру что бы она смотрела на миску кота. Получаешь фотографии миски, и когда нужно отсылаешь команду FeedTheСat, порция корма насыпается в миску :)
+1
Вовремя опубликовали, я вот думал, как бы запилить автозапуск на машину с помощью Pi… Надо попробовать.
+1
Было бы здорово, если телеграм сделает связку с IFTTT. Тогда по какому-то триггеру приходило бы сообщение вам в телеграм.
0
пару дней назад релизнули инструментарий
0
Можно сделать связку tasker+whatsapp который будет делать то же самое. У меня умный дом сердцем которого выступает нексус7, шлет по whatsapp информацию о событиях, и может выполнять команды полученные по whatsapp
0
а у whatsapp есть API?
0
Поддерживаю вопрос!
0
Есть неофициальный API. Я как-то им пользовался со связкой на Google Voice, потом аккаунт Whatsapp закрыли. Активировал ещё раз.
github.com/tgalal/yowsup
github.com/tgalal/yowsup
0
не знаю, я не настоящий сварщик. У меня работает через плагин WhatsTasker. Чтобы умный дом отсылал через вотсапп фотку с камеры при срабатывании датчика движения, у меня сделать не получилось, но початиться с умным домом можно :)
0
Телеграм ужасен. Вместо простого json over http (как например в шлак) надо собрать какие то бинарники и потом еще писать на shell/lua.
+1
Решил попробовать (как раз есть «подопытная» малина). Линукс только-только осваиваю… «затык» сразу же на первом шаге (при попытке ./configure)
Подскажите, как починить?
pi@raspberrypi ~/tg $ ./configure
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for sqrt in -lm... yes
checking for library containing clock_gettime... -lrt
checking for library containing backtrace... none required
checking for event_base_new in -levent... no
configure: error: no libevent found
Подскажите, как починить?
0
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev make
0
Оказалось проще: нужно было начинать читать с начала, где написано, что нужна самая актуальная версия Raspbian.
А вот чтобы «взлетело», пришлось немного пошаманить:
1. Сразу после первого «make» нужно запустить
И «зарегистрировать» свой «телефон» (ввести номер телефона, от «имени которого» будут осуществляться отправки сообщений). На этот номер телефона придет код подтверждения (в смс-сообщении), который нужно будет ввести в ответ на запрос программы.
2. После этого следует создать контакт, с которым будет общаться «малина» (требуется ввести номер телефона, FistName, SecondName).
Дальше уже можно следовать по инструкции «Шаг два»…
Ну и от себя добавлю: у меня нет «оригинальной» камеры — использовал USB, соответственно, установил для нее все необходимое и подправил код в /home/pi/camera/camera.sh под себя
Если кто-нибудь заинтересуется — расскажу.
А вот чтобы «взлетело», пришлось немного пошаманить:
1. Сразу после первого «make» нужно запустить
bin/telegram-cli -k tg-server.pub -W
И «зарегистрировать» свой «телефон» (ввести номер телефона, от «имени которого» будут осуществляться отправки сообщений). На этот номер телефона придет код подтверждения (в смс-сообщении), который нужно будет ввести в ответ на запрос программы.
2. После этого следует создать контакт, с которым будет общаться «малина» (требуется ввести номер телефона, FistName, SecondName).
Дальше уже можно следовать по инструкции «Шаг два»…
Ну и от себя добавлю: у меня нет «оригинальной» камеры — использовал USB, соответственно, установил для нее все необходимое и подправил код в /home/pi/camera/camera.sh под себя
Если кто-нибудь заинтересуется — расскажу.
0
У меня вот проблема с общением через консольный клиент Телеграма, сообщения не приходят, если делать как описано в статье.
0
запрос телефона был?
0
Это все нормально работает, как и консольный клиент, если его просто запускать, а не передавать сообщение аргументом.
0
пользователь, которому отправляем соообщение аргументом — есть в «записной книжке»?
0
Конечно, при этом в логах только:
Но на деле ничего не приходило. Если написать сообщение из самого консольного клиента, то сообщения доходят.
> msg Lev_Aminov 11 > safe_quit > All done. Exit halt
Но на деле ничего не приходило. Если написать сообщение из самого консольного клиента, то сообщения доходят.
0
а… понял:
Это ты тестируешь /home/pi/tg.sh Name_lastname «your message» — верно?
Так вот оно из командной строки у меня тоже не работает (почему-то), а вот уже из скрипта lua — отрабатывает замечательно.
Это ты тестируешь /home/pi/tg.sh Name_lastname «your message» — верно?
Так вот оно из командной строки у меня тоже не работает (почему-то), а вот уже из скрипта lua — отрабатывает замечательно.
0
Все верно говоришь, – тестирую из консоли. Попробую тогда вечерком из луа или питон-скрипта.
Спасибо за информацию!
Спасибо за информацию!
0
У меня тоже не работало, пришлось добавить таймаут, чтобы telegram успевал:
(sleep 3; echo «msg $to $msg»; echo «safe_quit»)
(sleep 3; echo «msg $to $msg»; echo «safe_quit»)
+1
А целиком можете привести скрипт? Что-то я не могу понять, как установить слип в представленном варианте.
0
Речь про bash.
#!/bin/bash
to=$1
msg=$2
tgpath=/home/pi/tg
(sleep 3; echo «msg $to $msg»; echo «safe_quit») | ${tgpath}/bin/telegram-cli -k tg-server.pub -W
#!/bin/bash
to=$1
msg=$2
tgpath=/home/pi/tg
(sleep 3; echo «msg $to $msg»; echo «safe_quit») | ${tgpath}/bin/telegram-cli -k tg-server.pub -W
0
А, это луа, тогда вопрос отпадает.
0
Пропущен очень важный шаг, без которого все это не будет работать. После получения и сборки сорцов с гитхаба, необходимо выпонить запуск и настройку (там где просит ввести номер телефона)
+1
Тоже несколько минут назад это описал. Подскажите, как сделать так, чтобы:
запускалось автоматом при старте RPi?
bin/telegram-cli -k tg-server.pub -W -s action.lua
запускалось автоматом при старте RPi?
0
Файл /etc/rc.local
Туда пропишите полный path + bin/telegram-cli -k tg-server.pub -W -s action.lua
Так как код запускается до начала X-сессии консольного окна не будет, для отладки и логгирования можно прописать в конце >> /path/log.txt 2>&1
Туда пропишите полный path + bin/telegram-cli -k tg-server.pub -W -s action.lua
Так как код запускается до начала X-сессии консольного окна не будет, для отладки и логгирования можно прописать в конце >> /path/log.txt 2>&1
+1
В файл добавил вызов (пришлось еще и пути к файлу с ключем и скрипту дописать).
Просто запуск /etc/rc.local — работает.
Но вот при reboot — ничего не происходит… Куда копать?
Просто запуск /etc/rc.local — работает.
Но вот при reboot — ничего не происходит… Куда копать?
0
Сам с собою я веду беседу:
Повторил тот же туториал на Itead A20 — получилось, но чуток с путями пришлось «поплясать». Там же обнаружил, в чем проблема: Оказалось, что telegram при старте из rc.local почему-то хотел заново регистрироваться. В случае с A20 все получилось (там человеческая консоль через UART — т.е. я банально подтвердил регистрацию и там все заработало).
Теперь то, что касается «малины». Тоже подключился к UART — процесс загрузки виден, но сообщений сильно меньше и нормальная «консоль» не получается (команды отправлять нельзя… или я что-то не так делаю). В rc.local все правильно — включил вывод сообщений в лог.файл… и тоже вижу, что telegram стартует и тоже вижу приглашение ввести номер телефона (для «подтверждения регистрации»)… но консоли нет.
Как быть? Можно ли как-то telegram-у указать, что конфигурация уже нормальная и надо нормально стартовать?.. Пускать руками скрипт, имхо, неправльно :(
Заодно еще никак не могу придумать, чтобы при старте автоматом конкретному пользователю отправлялось сообщение (типа «RPi ready») — может, поможете?
Повторил тот же туториал на Itead A20 — получилось, но чуток с путями пришлось «поплясать». Там же обнаружил, в чем проблема: Оказалось, что telegram при старте из rc.local почему-то хотел заново регистрироваться. В случае с A20 все получилось (там человеческая консоль через UART — т.е. я банально подтвердил регистрацию и там все заработало).
Теперь то, что касается «малины». Тоже подключился к UART — процесс загрузки виден, но сообщений сильно меньше и нормальная «консоль» не получается (команды отправлять нельзя… или я что-то не так делаю). В rc.local все правильно — включил вывод сообщений в лог.файл… и тоже вижу, что telegram стартует и тоже вижу приглашение ввести номер телефона (для «подтверждения регистрации»)… но консоли нет.
Как быть? Можно ли как-то telegram-у указать, что конфигурация уже нормальная и надо нормально стартовать?.. Пускать руками скрипт, имхо, неправльно :(
Заодно еще никак не могу придумать, чтобы при старте автоматом конкретному пользователю отправлялось сообщение (типа «RPi ready») — может, поможете?
0
Судя по всему, не очень правильно запускать телеграм через rc.local — есть возможность сделать его демоном.
Надо будет попробовать
Надо будет попробовать
0
Прошу прощения, только сейчас вернулся.
Проблема всё ещё актуальна? Если да, то.
За демон не могу ничего сказать. Я вообще с телеграм не работаю, просто по работе знаю как автозапускать.
За rc.local — консоли у вас из него никогда не будет, так как запускается код в стиле ниндзя, до запуска оконного менеджера.
1. В первый запуск, судя по всему, он просит подтверждения регистрации, значит нужно ручками прописать | «продолжение банкета» в rc.local
— продолжение банкета — это всё что Вы пишете в консоли в первый запуск телеграм. После этого софт пропишет свой конфиг под рутом и банкета требовать перестанет (по идее), и банкет можно будет убрать.
2. Код исполняется из-под рута (нехорошо, я знаю). Если у вас есть конфиги под юзером, то телеграм из под рута их не читает, так как а) ищет в своей папке и б) не имеет прав.
(Продублирую вам так же в пм)
Проблема всё ещё актуальна? Если да, то.
За демон не могу ничего сказать. Я вообще с телеграм не работаю, просто по работе знаю как автозапускать.
За rc.local — консоли у вас из него никогда не будет, так как запускается код в стиле ниндзя, до запуска оконного менеджера.
1. В первый запуск, судя по всему, он просит подтверждения регистрации, значит нужно ручками прописать | «продолжение банкета» в rc.local
— продолжение банкета — это всё что Вы пишете в консоли в первый запуск телеграм. После этого софт пропишет свой конфиг под рутом и банкета требовать перестанет (по идее), и банкет можно будет убрать.
2. Код исполняется из-под рута (нехорошо, я знаю). Если у вас есть конфиги под юзером, то телеграм из под рута их не читает, так как а) ищет в своей папке и б) не имеет прав.
(Продублирую вам так же в пм)
0
Спасибо, поправила (со ссылкой на описание ритуала avstepanov).
0
Я у себя сделал не msg $to $text, а send_text $to $file_name — так становится возможным посылать многострочные сообщения. Я вот например сделал себе ежедневный контроль баланса сотовых всей семьи:
+1
Пытаюсь получить на телефон сообщение:
Ничего не происходит. Из различий вижу только версию telegram_cli, у меня 1.2.0, у Вас 1.1.1.
На «пинг» в lua_скрипте тоже не реагирует.
Что я упускаю?
Ничего не происходит. Из различий вижу только версию telegram_cli, у меня 1.2.0, у Вас 1.1.1.
На «пинг» в lua_скрипте тоже не реагирует.
Что я упускаю?
0
По хорошему бы кстати надо ok_cb коллбэк реализовать, а то оно каждый раз падает немного при его вызове.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Raspberry и Telegram: предпосылки создания умного дома