mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-22 10:16:30 +00:00
Change telegram command prefix to Tm
This commit is contained in:
parent
4c5b2f37fd
commit
18b00f9cbe
@ -22,16 +22,16 @@
|
|||||||
* Telegram bot
|
* Telegram bot
|
||||||
*
|
*
|
||||||
* Supported commands:
|
* Supported commands:
|
||||||
* TGToken <token> - Add your BotFather created bot token (default none)
|
* TmToken <token> - Add your BotFather created bot token (default none)
|
||||||
* TGChatId <chat_id> - Add your BotFather created bot chat id (default none)
|
* TmChatId <chat_id> - Add your BotFather created bot chat id (default none)
|
||||||
* TGPoll <seconds> - Telegram receive poll time (default 10 seconds)
|
* TmPoll <seconds> - Telegram receive poll time (default 10 seconds)
|
||||||
* TGState 0 - Disable telegram sending (default)
|
* TmState 0 - Disable telegram sending (default)
|
||||||
* TGState 1 - Enable telegram sending
|
* TmState 1 - Enable telegram sending
|
||||||
* TGState 2 - Disable telegram listener (default)
|
* TmState 2 - Disable telegram listener (default)
|
||||||
* TGState 3 - Enable telegram listener
|
* TmState 3 - Enable telegram listener
|
||||||
* TGState 4 - Disable telegram response echo (default)
|
* TmState 4 - Disable telegram response echo (default)
|
||||||
* TGState 5 - Enable telegram response echo
|
* TmState 5 - Enable telegram response echo
|
||||||
* TGSend <data> - If telegram sending is enabled AND a chat id is present then send data
|
* TmSend <data> - If telegram sending is enabled AND a chat id is present then send data
|
||||||
*
|
*
|
||||||
* Tested with defines
|
* Tested with defines
|
||||||
* #define USE_TELEGRAM // Support for Telegram protocol
|
* #define USE_TELEGRAM // Support for Telegram protocol
|
||||||
@ -84,7 +84,7 @@ bool TelegramInit(void) {
|
|||||||
Telegram.message[1][0]="";
|
Telegram.message[1][0]="";
|
||||||
Telegram.message[0][1]="0"; // Code of last read Message
|
Telegram.message[0][1]="0"; // Code of last read Message
|
||||||
|
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: Started"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: Started"));
|
||||||
}
|
}
|
||||||
|
|
||||||
init_done = true;
|
init_done = true;
|
||||||
@ -97,7 +97,7 @@ bool TelegramInit(void) {
|
|||||||
* (Argument to pass: URL to address to Telegram) *
|
* (Argument to pass: URL to address to Telegram) *
|
||||||
**************************************************************************************************/
|
**************************************************************************************************/
|
||||||
String TelegramConnectToTelegram(String command) {
|
String TelegramConnectToTelegram(String command) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: Cmnd %s"), command.c_str());
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: Cmnd %s"), command.c_str());
|
||||||
|
|
||||||
if (!TelegramInit()) { return ""; }
|
if (!TelegramInit()) { return ""; }
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ String TelegramConnectToTelegram(String command) {
|
|||||||
uint32_t tls_connect_time = millis();
|
uint32_t tls_connect_time = millis();
|
||||||
|
|
||||||
if (telegramClient->connect("api.telegram.org", 443)) {
|
if (telegramClient->connect("api.telegram.org", 443)) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: Connected in %d ms, max ThunkStack used %d"),
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: Connected in %d ms, max ThunkStack used %d"),
|
||||||
millis() - tls_connect_time, telegramClient->getMaxThunkStackUse());
|
millis() - tls_connect_time, telegramClient->getMaxThunkStackUse());
|
||||||
|
|
||||||
telegramClient->println("GET /"+command);
|
telegramClient->println("GET /"+command);
|
||||||
@ -140,7 +140,7 @@ String TelegramConnectToTelegram(String command) {
|
|||||||
* (Argument to pass: the last+1 message to read) *
|
* (Argument to pass: the last+1 message to read) *
|
||||||
***************************************************************/
|
***************************************************************/
|
||||||
void TelegramGetUpdates(String offset) {
|
void TelegramGetUpdates(String offset) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: getUpdates"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: getUpdates"));
|
||||||
|
|
||||||
if (!TelegramInit()) { return; }
|
if (!TelegramInit()) { return; }
|
||||||
|
|
||||||
@ -181,13 +181,13 @@ void TelegramGetUpdates(String offset) {
|
|||||||
// }
|
// }
|
||||||
// ]}
|
// ]}
|
||||||
|
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG_MORE, PSTR("TLG: Response %s"), response.c_str());
|
AddLog_P2(LOG_LEVEL_DEBUG_MORE, PSTR("TGM: Response %s"), response.c_str());
|
||||||
|
|
||||||
// parsing of reply from Telegram into separate received messages
|
// parsing of reply from Telegram into separate received messages
|
||||||
int i = 0; //messages received counter
|
int i = 0; //messages received counter
|
||||||
if (response != "") {
|
if (response != "") {
|
||||||
|
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: Sent Update request messages up to %s"), offset.c_str());
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: Sent Update request messages up to %s"), offset.c_str());
|
||||||
|
|
||||||
String a = "";
|
String a = "";
|
||||||
int ch_count = 0;
|
int ch_count = 0;
|
||||||
@ -213,16 +213,16 @@ void TelegramGetUpdates(String offset) {
|
|||||||
}
|
}
|
||||||
//check result of parsing process
|
//check result of parsing process
|
||||||
if (response == "") {
|
if (response == "") {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: Failed to update"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: Failed to update"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (0 == i) {
|
if (0 == i) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: No new messages"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: No new messages"));
|
||||||
Telegram.message[0][0] = "0";
|
Telegram.message[0][0] = "0";
|
||||||
} else {
|
} else {
|
||||||
Telegram.message[0][0] = String(i); //returns how many messages are in the array
|
Telegram.message[0][0] = String(i); //returns how many messages are in the array
|
||||||
for (int b = 1; b < i+1; b++) {
|
for (int b = 1; b < i+1; b++) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: Msg %d %s"), b, Telegram.message[b][0].c_str());
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: Msg %d %s"), b, Telegram.message[b][0].c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
TelegramAnalizeMessage();
|
TelegramAnalizeMessage();
|
||||||
@ -248,13 +248,13 @@ void TelegramAnalizeMessage(void) {
|
|||||||
Telegram.message[0][1] = id; // Write id of last read message
|
Telegram.message[0][1] = id; // Write id of last read message
|
||||||
|
|
||||||
for (int j = 0; j < 6; j++) {
|
for (int j = 0; j < 6; j++) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG_MORE, PSTR("TLG: Parsed%d \"%s\""), j, Telegram.message[i][j].c_str());
|
AddLog_P2(LOG_LEVEL_DEBUG_MORE, PSTR("TGM: Parsed%d \"%s\""), j, Telegram.message[i][j].c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TelegramSendMessage(String chat_id, String text) {
|
bool TelegramSendMessage(String chat_id, String text) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: sendMessage"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: sendMessage"));
|
||||||
|
|
||||||
if (!TelegramInit()) { return false; }
|
if (!TelegramInit()) { return false; }
|
||||||
|
|
||||||
@ -264,10 +264,10 @@ bool TelegramSendMessage(String chat_id, String text) {
|
|||||||
String command = "bot" + _token + "/sendMessage?chat_id=" + chat_id + "&text=" + text;
|
String command = "bot" + _token + "/sendMessage?chat_id=" + chat_id + "&text=" + text;
|
||||||
String response = TelegramConnectToTelegram(command);
|
String response = TelegramConnectToTelegram(command);
|
||||||
|
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG_MORE, PSTR("TLG: Response %s"), response.c_str());
|
AddLog_P2(LOG_LEVEL_DEBUG_MORE, PSTR("TGM: Response %s"), response.c_str());
|
||||||
|
|
||||||
if (response.startsWith("{\"ok\":true")) {
|
if (response.startsWith("{\"ok\":true")) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: Message sent"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: Message sent"));
|
||||||
sent = true;
|
sent = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,7 +278,7 @@ bool TelegramSendMessage(String chat_id, String text) {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
void TelegramSendGetMe(void) {
|
void TelegramSendGetMe(void) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TLG: getMe"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TGM: getMe"));
|
||||||
|
|
||||||
if (!TelegramInit()) { return; }
|
if (!TelegramInit()) { return; }
|
||||||
|
|
||||||
@ -288,7 +288,7 @@ void TelegramSendGetMe(void) {
|
|||||||
|
|
||||||
// {"ok":true,"result":{"id":1179906608,"is_bot":true,"first_name":"Tasmota","username":"tasmota_bot","can_join_groups":true,"can_read_all_group_messages":false,"supports_inline_queries":false}}
|
// {"ok":true,"result":{"id":1179906608,"is_bot":true,"first_name":"Tasmota","username":"tasmota_bot","can_join_groups":true,"can_read_all_group_messages":false,"supports_inline_queries":false}}
|
||||||
|
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG_MORE, PSTR("TLG: Response %s"), response.c_str());
|
AddLog_P2(LOG_LEVEL_DEBUG_MORE, PSTR("TGM: Response %s"), response.c_str());
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -383,19 +383,19 @@ void TelegramLoop(void) {
|
|||||||
* Commands
|
* Commands
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
#define D_CMND_TGSTATE "State"
|
#define D_CMND_TMSTATE "State"
|
||||||
#define D_CMND_TGPOLL "Poll"
|
#define D_CMND_TMPOLL "Poll"
|
||||||
#define D_CMND_TGSEND "Send"
|
#define D_CMND_TMSEND "Send"
|
||||||
#define D_CMND_TGTOKEN "Token"
|
#define D_CMND_TMTOKEN "Token"
|
||||||
#define D_CMND_TGCHATID "ChatId"
|
#define D_CMND_TMCHATID "ChatId"
|
||||||
|
|
||||||
const char kTelegramCommands[] PROGMEM = "TG|" // Prefix
|
const char kTelegramCommands[] PROGMEM = "Tm|" // Prefix
|
||||||
D_CMND_TGSTATE "|" D_CMND_TGPOLL "|" D_CMND_TGTOKEN "|" D_CMND_TGCHATID "|" D_CMND_TGSEND;
|
D_CMND_TMSTATE "|" D_CMND_TMPOLL "|" D_CMND_TMTOKEN "|" D_CMND_TMCHATID "|" D_CMND_TMSEND;
|
||||||
|
|
||||||
void (* const TelegramCommand[])(void) PROGMEM = {
|
void (* const TelegramCommand[])(void) PROGMEM = {
|
||||||
&CmndTgState, &CmndTgPoll, &CmndTgToken, &CmndTgChatId, &CmndTgSend };
|
&CmndTmState, &CmndTmPoll, &CmndTmToken, &CmndTmChatId, &CmndTmSend };
|
||||||
|
|
||||||
void CmndTgState(void) {
|
void CmndTmState(void) {
|
||||||
if (XdrvMailbox.data_len > 0) {
|
if (XdrvMailbox.data_len > 0) {
|
||||||
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6)) {
|
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6)) {
|
||||||
switch (XdrvMailbox.payload) {
|
switch (XdrvMailbox.payload) {
|
||||||
@ -418,7 +418,7 @@ void CmndTgState(void) {
|
|||||||
XdrvMailbox.command, GetStateText(Telegram.send_enable), GetStateText(Telegram.recv_enable), GetStateText(Telegram.echo_enable));
|
XdrvMailbox.command, GetStateText(Telegram.send_enable), GetStateText(Telegram.recv_enable), GetStateText(Telegram.echo_enable));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CmndTgPoll(void) {
|
void CmndTmPoll(void) {
|
||||||
if ((XdrvMailbox.payload >= 4) && (XdrvMailbox.payload <= 300)) {
|
if ((XdrvMailbox.payload >= 4) && (XdrvMailbox.payload <= 300)) {
|
||||||
Telegram.poll = XdrvMailbox.payload;
|
Telegram.poll = XdrvMailbox.payload;
|
||||||
if (Telegram.poll < Telegram.wait) {
|
if (Telegram.poll < Telegram.wait) {
|
||||||
@ -428,21 +428,21 @@ void CmndTgPoll(void) {
|
|||||||
ResponseCmndNumber(Telegram.poll);
|
ResponseCmndNumber(Telegram.poll);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CmndTgToken(void) {
|
void CmndTmToken(void) {
|
||||||
if (XdrvMailbox.data_len > 0) {
|
if (XdrvMailbox.data_len > 0) {
|
||||||
SettingsUpdateText(SET_TELEGRAM_TOKEN, ('"' == XdrvMailbox.data[0]) ? "" : XdrvMailbox.data);
|
SettingsUpdateText(SET_TELEGRAM_TOKEN, ('"' == XdrvMailbox.data[0]) ? "" : XdrvMailbox.data);
|
||||||
}
|
}
|
||||||
ResponseCmndChar(SettingsText(SET_TELEGRAM_TOKEN));
|
ResponseCmndChar(SettingsText(SET_TELEGRAM_TOKEN));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CmndTgChatId(void) {
|
void CmndTmChatId(void) {
|
||||||
if (XdrvMailbox.data_len > 0) {
|
if (XdrvMailbox.data_len > 0) {
|
||||||
SettingsUpdateText(SET_TELEGRAM_CHATID, ('"' == XdrvMailbox.data[0]) ? "" : XdrvMailbox.data);
|
SettingsUpdateText(SET_TELEGRAM_CHATID, ('"' == XdrvMailbox.data[0]) ? "" : XdrvMailbox.data);
|
||||||
}
|
}
|
||||||
ResponseCmndChar(SettingsText(SET_TELEGRAM_CHATID));
|
ResponseCmndChar(SettingsText(SET_TELEGRAM_CHATID));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CmndTgSend(void) {
|
void CmndTmSend(void) {
|
||||||
if (!Telegram.send_enable || !strlen(SettingsText(SET_TELEGRAM_CHATID))) {
|
if (!Telegram.send_enable || !strlen(SettingsText(SET_TELEGRAM_CHATID))) {
|
||||||
ResponseCmndChar(D_JSON_FAILED);
|
ResponseCmndChar(D_JSON_FAILED);
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user