Telegram là một ứng dụng gởi tin nhắn chú trọng vào tốc độ và bảo mật. Nhanh, đơn giản và miễn phí. Telegram gởi tin nhắn, hình ảnh, video và file mọi định dạng (doc, zip, mp3, etc).
Với Telegram được cài đặt trên RPi như một robot, chúng ta có thể điều khiển từ xa RPi hay ngôi nhà thông minh, tạo ra một hệ thống trả lời tự động… thông qua Telegram được cài đặt trên thiết bị khác. Ưu điểm lớn nhất là nhanh và miễn phí.
Sau đây là đoạn mã tự động cài đặt Telegram trên RPi
#!/bin/bash
sudo apt-get update -y
sudo apt-get install -y libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev
cd ~
if [ $(dpkg --get-selections | grep -c git) -gt 0 ]; then
sudo apt-get install git
fi
git clone --recursive https://github.com/vysheng/tg.git
cd tg
./configure
make
sudo cp -f ~/tg/bin/telegram-cli /usr/bin
sudo mkdir -p /etc/telegram-cli
sudo mv ~/tg/tg-server.pub /etc/telegram-cli/server.pub
telegram-cli -W
Sau đó là 2 thiết bị có thể chat với nhau (điện thoại và RPi).
Chạy telegram-cli dưới dạng daemon
Có một số script gợi ý về cách chạy telegram dưới dạng daemon, nhưng phần lớn là phức tạp và không hiệu quả.
Phiên bản đơn giản, chạy background: /etc/init.d/telegram-daemon [start|stop|restart|status]
#! /bin/sh ### BEGIN INIT INFO # Provides: telegram-daemon # Required-Start: # Required-Stop: # Default-Start: S 2 3 4 5 # Default-Stop: 0 6 # Short-Description: telegram daemon # Description: telegram daemon ### END INIT INFO # Author: fizzzel # actions case "$1" in start) echo "Telegram daemon is starting..." echo 'mật khẩu của pi' | su pi -c 'telegram-cli -vvvvRC -W -s action.lua -dL tg.log -P 1234 &' echo "...done" ;; stop) echo "stopping telegram daemon..." sudo pkill telegram-cli echo "..done" ;; restart) echo "stopping telegram daemon..." sudo pkill telegram-cli echo "..done -- restarting..." echo 'mật khẩu của pi' | su pi -c 'telegram-cli -vvvvRC -W -s action.lua -dL tg.log -P 1234 &' echo "...done" ;; esac
#! /bin/sh ### BEGIN INIT INFO # Provides: telegram-cli # Required-Start: $network $remote_fs $syslog # Required-Stop: $network $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Commandline interface for Telegram chat program # Description: Telegram-cli is a (unofficial) cli version of Telegram to chat from your console. # This is an init script do make it a daemon. # When used as daemon in conjuction with LUA (scripting) you can use it to send your system # commands to execute via other Telegram apps (PC - Phone - Web or other) while not # logged in to the system. # # Note #1: This version of the init script is developed for raspbian (rapberry PI port of Debian Wheezy). # # See: https://github.com/vysheng/tg for more information. # Derived from https://github.com/vysheng/tg/issues/436 (updated 9th April 2015) # Further derived from: https://www.domoticz.com/wiki/Installing_Telegram_Notification_System#.2Fetc.2Finit.d.2Ftelegram-cli ### END INIT INFO # # Set some variables PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin DESC="Telegram Messaging System" NAME=telegram-cli USERNAME=telegramd GROUPNAME=telegramd LOGFILE=/var/log/telegramd.log DAEMON=/usr/bin/telegram-cli SCRIPT=/etc/telegram-cli/action.lua DAEMON_ARGS="-W -b -U $USERNAME -G $GROUPNAME -L $LOGFILE -P $TGPORT -s $SCRIPT -d -vvvRC" PIDFILE=/var/run/$NAME.pid THISNAME="$0" # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Carry out specific functions when asked to by the system case "$1" in start) echo -n "Starting $DESC ... " sudo start-stop-daemon --start --background --make-pidfile $PIDFILE --pidfile $PIDFILE \ --exec $DAEMON -- $DAEMON_ARGS || true echo "Done." ;; stop) echo -n "Stopping $DESC ... " sudo start-stop-daemon --stop --retry 2 --pidfile $PIDFILE \ --exec $DAEMON || true sudo rm -f $PIDFILE echo "Done." ;; restart) echo -n "Restarting $DESC " sudo start-stop-daemon --stop --retry 2 --pidfile $PIDFILE \ --exec $DAEMON || true sudo rm -f $PIDFILE sudo start-stop-daemon --start --background --make-pidfile $PIDFILE --pidfile $PIDFILE \ --exec $DAEMON -- $DAEMON_ARGS || true echo "Done." ;; status) if [ -f $PIDFILE ]; then PID=`cat $PIDFILE` else echo "No pid file, telegramd not running?" exit 1 fi if [ "`ps -p $PID -o comm=`" = "$NAME" ]; then echo "telegramd running with pid $PID" else echo "telegramd not running. removing $PIDFILE" sudo rm -f $PIDFILE exit 1 fi ;; *) echo "Usage: $THISNAME {start|stop|restart|status}" exit 1 ;; esac
- Điện thoại nhắn tin cho RPi: Thôi tắt máy đi
- Bot nhận được tin nhắn, phân tích nội dung, gặp từ khóa biết trước thì Bot sẽ thi hành lệnh tương ứng shutdown now
@reboot sleep 30 && telegram-daemon start
sed -i -r '101s|^(.*)$|//\1|' ~/tg/tgl/mtproto-utils.c sed -i -r '115s|^(.*)$|//\1|' ~/tg/tgl/mtproto-utils.c cd ~/tg make sudo cp -f ~/tg/bin/telegram-cli /usr/bin telegram-cli -W