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: GET/bot749518776:AAHT0CGCCUAQo0KAZ8o_LuunZ89RnNsiLSM/sendMessage?chat_id=629734790&text=Probando%20telegram
Si yo cambio el GET por https://api.telegram.org y eso lo pego en la dirección del navegador, allí si me lo envia a el telegram…
#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() {
}
Lee lasNormas 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.
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
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
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
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.
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
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.