1 (edytowany przez Cezary 2021-05-07 05:40:37)

Temat: Robimy bota do telegrama!

Dziś trochę tak rozrywkowo - zrobimy sobie bota do telegrama. Dla tych mniej zorientowanych - bot, czy automat coś robiący, telegram - taki komunikator do rozmów (nie mylić z facebookowym messengerem). No ale po co ten bot? On po prostu nasłuchuje na określone polecenia i je wykonuje, można zrobić np. listę klientów, uruchomienie wol, włączenie zasilania jak ma się podłączone jakieś przekaźniki itd. Tak, wiem, są vpny i takie inne sprawy, ale czemu nie podejść do sprawy z innej strony?

API telegrama jest powszechnie znane i przy pomocy curla oraz jsona można to zrobić dość prosto samemu. Tylko nie będziemy się tu męczyć ponieważ odpowiednie kody są już dostępne na githubie, a jak dobrze się rozejrzeć to i można znaleźć gotowe paczki dla OpenWrt. Przygodę rozpoczynamy od założenia sobie telegrama jeżeli jeszcze nie mamy, a później trzeba uzyskać dwie rzeczy - nasz tzw chat_id - w tym celu piszemy do użytkownika (kontaktu @get_id_bot) oraz token dla naszego bota - w tym celu piszemy do @BotFather. Podajmy mu polecenie /newboot, nazywamy jakoś naszego bota - mój się nazywa wieslaw (bo i czemu nie) i wybieramy username, który musi się kończyć na "bot" - jadąc po najmniejszej linii oporu mój dostał przydomek wieslawboot. Zapisujmy sobie na boku otrzymane dane.

Przechodzimy do OpenWrt. Bez wysiłku instalujemy jeden z pakietów:

# opkg update
# opkg install http://openwrt.132lan.ru/packages/packages-19.07/mipsel_24kc/packages/telegrambot_0.0.3-1_all.ipk

Paczka jest dla dowolnej architektury i działa także dla wydania 21.02.
Kody "źródłowe" innych rozwiązań można znaleźć np. tu lub tu.

Ja użyłem po prostu gotowca znalezionego na jednej z rosyjskich stron. Teraz trzeba bota nauczyć kim on jest, więc uzupełniamy jego konfigurację:

# /etc/init.d/telegrambot stop
# uci set telegrambot.config.bot_token='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
# uci set telegrambot.config.chat_id='xxxxxx'
# uci commit
# /etc/init.d/telegrambot start

Gdzie za xxxxx i yyyy podstawiamy uzyskane wcześniej odpowiednio chat_id oraz token. Jeżeli wszystko jest zrobione poprawnie to na naszym telegramie właśnie powinien odezwać się nasz OpenWrt:

wieslaw, [06.05.21 20:38]
OpenWrt. TelegramBot started.

Co bot potrafi? Standardowo w kodzie jest kilka poleceń które można rozszerzyć za pomocą "pluginów" - czyli zwykłych skryptów umieszczonych w /usr/lib/telegrambot/plugins. Spytajmy się więc wiesława co umie:

Cezary Jackiewicz, [06.05.21 20:38]
/help

wieslaw, [06.05.21 20:38]
[W odpowiedzi na Cezary Jackiewicz]
/memory return RAM info
/leases current dhcp leases
/wll_list wifi clients
/reboot reboot the device
/wol <mac_address> wake on lan over the Internet
/wanip WAN ip address
/plugins aviable commands

Cezary Jackiewicz, [06.05.21 20:38]
/memory

wieslaw, [06.05.21 20:38]
[W odpowiedzi na Cezary Jackiewicz]

MemTotal:         239656 kB
MemFree:          185168 kB
MemAvailable:     172816 kB
Buffers:            2188 kB
Cached:            19432 kB

Zobaczmy pluginy:

Cezary Jackiewicz, [06.05.21 20:57]
/plugins

wieslaw, [06.05.21 20:58]
[W odpowiedzi na Cezary Jackiewicz]
Aviable commands are:
/ifconfig
/kernel
/leases
/memory
/netstat
/opkg
/ping
/plugins
/swports_list
/uci
/uptime
/wanip
/wifi_list
/wll_list
/wol

Cezary Jackiewicz, [06.05.21 20:58]
/ping

wieslaw, [06.05.21 20:58]
[W odpowiedzi na Cezary Jackiewicz]
Down

Cezary Jackiewicz, [06.05.21 20:58]
/ping 8.8.8.8

wieslaw, [06.05.21 20:58]
[W odpowiedzi na Cezary Jackiewicz]
Up

Możemy zrobić własne skrypty które zrobią coś więcej. A po co to wszystko? Bo niektórym prościej jest po prostu na czacie napisać coś niż logować się przez vpn, ssh itd. Może ktoś bardziej polubi taki sposób komunikacji z routerem (przepraszam - z wieslawem...)

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

2

Odp: Robimy bota do telegrama!

Używam od 2 lat czy to do openwrt czy jakiegokolwiek innego serwera którym operuję.

Najczęściej używana funkcja w moim przypadku to wiadomości z openwrt do mnie za każdym razem gdy jakieś urządzenie pobierze adres z DHCP smile

3

Odp: Robimy bota do telegrama!

Cześć, przewidywane jest coś podobnego dla Signala?

4

Odp: Robimy bota do telegrama!

Trzeba poszukać czy gdzieś nie ma paczki.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.