Go Down

Topic: Problemas ESP8266 con Telegram (Read 285 times) previous topic - next topic

horacioe

Feb 16, 2020, 05:39 am Last Edit: Mar 29, 2020, 12:36 am by surbyte
Hola, el 5 de febrero me dejo de reportar un equipo que puse en casa, este equipo contiene un ESP8266 que lo que recibe por serial lo transmite al Telegram....  Estuvo funcionando por meses y de repente dejo de poder enviar mensajes.
Reduje el código para buscar el problema y basicamente    client.connect(server, 443)   da false y no deja enviar, y aunque fuerze esta condicion a true y envie el mensaje, no le llega a Telegram, pero esto estaba funcionando antes del 5 de febrero, no se si Telegram tuvo alguna actualizacion o los bots tienen caducidad...

En la terminal pone el mensaje a enviar y luego Enviado/No Enviado...
El mensaje a enviar es por ejemplo:
Code: [Select]
GET/bot749518776:AAHT0CGCCUAQo0KAZ8o_LuunZ89RnNsiLSM/sendMessage?chat_id=629734790&text=Probando%20telegram

Si yo cambio el GET por
Code: [Select]
https://api.telegram.org y eso lo pego en la dirección del navegador, allí si me lo envia a el telegram...


Code: [Select]


#include <WiFiClientSecure.h>
#include <ESP8266WiFi.h>

const char *ssid = "Alicia";
const char *pass = "Alicia77";


String BOTtoken = "bot749518776:AAHT0CGCCUAQo0KAZ8o_LuunZ89RnNsiLSM";//cambiar por el suyo
String Chat_id = "629734790"; // cambiar por el suyo
String TXT = "Probando Telegram";

WiFiClientSecure client;// inicio del cliente seguro
IPAddress server(149, 154, 167, 200);// IP de api.telegram.org

void setup() {
 Serial.begin(9600);
 WiFi.begin(ssid, pass);

 while (WiFi.status() != WL_CONNECTED) {
   delay(500);
   Serial.print(".");
 }
 
 Serial.println("");
 Serial.println("Conectado a la red WiFi");
 Serial.println("Dirección IP: ");
 Serial.println(WiFi.localIP());


// hasta aqui solo conecto el WIFI, ahora si pruebo mandar el mensaje a Telegram
    
 Serial.println("GET /" + BOTtoken + "/sendMessage?chat_id=" + Chat_id + "&text=" + TXT + "");

 if (client.connect(server, 443)) {
   client.println("GET /" + BOTtoken + "/sendMessage?chat_id=" + Chat_id + "&text=" + TXT + "");
   Serial.println("Enviado");
 }else{
   Serial.println("NO Enviado");
 }
}


void loop() {
}




¿Alguna sugerencia?...
Gracias

surbyte

#1
Feb 16, 2020, 01:11 pm Last Edit: Feb 16, 2020, 01:12 pm by surbyte
Lee las Normas del foro
Ahora edita tu post usando etiquetas para código </>

Para reproducir un problema se debe contar con la misma librería que usas de modo que coloca el enlace (usando etiquetas también) que nos permita reproducir tu error.

Adrian_E

#2
Feb 16, 2020, 01:52 pm Last Edit: Feb 16, 2020, 05:55 pm by Adrian_E
Te pregunto, por las dudas vos actualizaste las librerias de ESP8266 y Json, si es asi seguro que deja de funcionar a mi me paso lo mismo gracias a surbyte y otros colegas encontre el error

horacioe

Si, actualice las librerias cargue el ESP8266 de vuelta y sigue sin andar, luego actualice el hardware y tampoco anduvo....

Adrian_E

no eso es lo que no tenes que hacer yo uso la limreria Json la version 5.13.5 y las de la tarjeta   esp8266 2.4.2, yo aprendi que cuando el ide de arduino me ofrece actualizar me fijo que cambios realiza, porque gracias a los colegas del foro me di cuenta que porquerer lo ultimo a veces arruina algo

horacioe

En este caso el ESP8266 estuvo funcionando por meses y de repente dejo de funcionar...  no es el caso de que por acutualizar una libreria dejase de funcionar... Gracias
 

marcelob

Hola a todos!!! he tenido el mismo problema... desde hace una semana mi telegram bot no funciona... estoy usando la librería UniversalTelegramBot.

He googleado pero no encontré más información.  :smiley-confuse:

Saludos.

Jopapa

Yo actualmente uso CTBot.h en este montaje y funciona perfectamente. ¡¡Ojo con la versión de JSon!!

www.jopapa.me
Jopapa
www.jopapa.me

harkonnen

#8
Feb 18, 2020, 09:13 pm Last Edit: Feb 18, 2020, 09:14 pm by harkonnen
Algo cambiaron relativo a ssl/tls en el servidor de telegram...

Este código funciona.
Antes de conectar llama a client.setInsecure();
Tambien estaba mal la sintaxis de la url, le faltaba "/bot". Pero el error es que no conecta sin el setInsecure()

Ademas es mejor, en la funcion connect, poner el nombre en vez de la ip. Si cambia la ip en el futuro volverá a fallar.

Lo he probado con el ultimo firmware del esp 2.5.0.

Saludos.

Code: [Select]


Serial.println("GET /bot" + BOTtoken + "/sendMessage?chat_id=" + Chat_id + "&text=" + TXT + "");
 client.setInsecure();
 if (client.connect("api.telegram.org", 443)) {
   client.println("GET /bot" + BOTtoken + "/sendMessage?chat_id=" + Chat_id + "&text=" + TXT + "");
   Serial.println("Enviado");
   delay(1500);
 }else{
   Serial.println("NO Enviado");
 }


horacioe

Gracias a todos...  se me complico por unos detalles pero logre hacelo funcionar con el codigo de harkonnen, y como dijeron, algo en telegram ha cambiado...  Gracias a todos

cuervo

Muy buenas, esperando que todos se encuentren bien.
Yo tenia varias cosas de Telegram, y todo se fue al demonio. La solución de harkonnen no supe implementarlas en mis sketch pero fue fácil adaptar el ejemplo de Jopapa.
Así que muchas gracias Jopapa, me has salvado, yo que no soy ducho en interpretar el uso de librerías he encontrado la solución gracias a tu aporte.
Saludos.

Go Up