Zdalny podgląd LOG

User avatar
Bania
Posts: 107
Joined: Wed Jul 24, 2024 5:03 pm
Location: Bielsko-Biała
Has thanked: 5 times
Been thanked: 5 times

Post

Cześć, przeglądając strony internetowe, znalazłem ciekawą bibliotekę: ESPTelnet.
Biblioteka działa w protokole telnet (23). Tworzy most między Serial a siecią WiFi (komunikacja działa w dwie strony).
Wystarczy ustawić SSID i PASSWORD, a następnie wgrać poniższy kod do ESP8266 (który będzie konwertorem).

Osobiście wykorzystuje ją do zdalnego podglądu logów np. SuplaDevice, żeby mieć wolny port USB. Może komuś się przyda:

Code: Select all

/* ------------------------------------------------- */

#include "ESPTelnet.h"          // https://github.com/LennartHennigs/ESPTelnet

/* ------------------------------------------------- */

#define SERIAL_SPEED  115200
#define WIFI_SSID     "YOUR SSID"
#define WIFI_PASSWORD "YOUR PASSWORD"

/* ------------------------------------------------- */

ESPTelnet telnet;
IPAddress ip;
uint16_t  port = 23;

/* ------------------------------------------------- */

void onTelnetConnect(String ip)
{
  telnet.println("Welcome " + telnet.getIP());
  telnet.println("(Use ^] + q  to disconnect.)");
}

void setup()
{
  Serial.begin(SERIAL_SPEED);
  Serial.println();

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  WiFi.forceSleepWake();
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

  while(WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }

  WiFi.setAutoReconnect(true);
  WiFi.persistent(true);

  telnet.onConnect(onTelnetConnect);

  telnet.onInputReceived([](String str)
  {
    Serial.println(str);
  });

  telnet.begin(port);
}

void loop()
{
  telnet.loop();

  if(Serial.available())
  {
    telnet.write(Serial.read());
  }
}
https://github.com/anarhbania/Supla
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Bania wrote: Tue Dec 30, 2025 8:47 pm Cześć, przeglądając strony internetowe, znalazłem ciekawą bibliotekę: ESPTelnet.
Biblioteka działa w protokole telnet (23). Tworzy most między Serial a siecią WiFi (komunikacja działa w dwie strony).
Wystarczy ustawić SSID i PASSWORD, a następnie wgrać poniższy kod do ESP8266 (który będzie konwertorem).

Osobiście wykorzystuje ją do zdalnego podglądu logów np. SuplaDevice, żeby mieć wolny port USB. Może komuś się przyda:

Code: Select all

/* ------------------------------------------------- */

#include "ESPTelnet.h"          // https://github.com/LennartHennigs/ESPTelnet

/* ------------------------------------------------- */

#define SERIAL_SPEED  115200
#define WIFI_SSID     "YOUR SSID"
#define WIFI_PASSWORD "YOUR PASSWORD"

/* ------------------------------------------------- */

ESPTelnet telnet;
IPAddress ip;
uint16_t  port = 23;

/* ------------------------------------------------- */

void onTelnetConnect(String ip)
{
  telnet.println("Welcome " + telnet.getIP());
  telnet.println("(Use ^] + q  to disconnect.)");
}

void setup()
{
  Serial.begin(SERIAL_SPEED);
  Serial.println();

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  WiFi.forceSleepWake();
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

  while(WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }

  WiFi.setAutoReconnect(true);
  WiFi.persistent(true);

  telnet.onConnect(onTelnetConnect);

  telnet.onInputReceived([](String str)
  {
    Serial.println(str);
  });

  telnet.begin(port);
}

void loop()
{
  telnet.loop();

  if(Serial.available())
  {
    telnet.write(Serial.read());
  }
}
Na bazie tej biblioteki działa tzw. konsola poleceń w bramce Zigbee, więc mogę potwierdzić, że to przydatne narzędzie.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

Bania wrote: Tue Dec 30, 2025 8:47 pm Cześć, przeglądając strony internetowe, znalazłem ciekawą bibliotekę: ESPTelnet.
Biblioteka działa w protokole telnet (23). Tworzy most między Serial a siecią WiFi (komunikacja działa w dwie strony).
Wystarczy ustawić SSID i PASSWORD, a następnie wgrać poniższy kod do ESP8266 (który będzie konwertorem).

Osobiście wykorzystuje ją do zdalnego podglądu logów np. SuplaDevice, żeby mieć wolny port USB. Może komuś się przyda:

Code: Select all

/* ------------------------------------------------- */

#include "ESPTelnet.h"          // https://github.com/LennartHennigs/ESPTelnet

/* ------------------------------------------------- */

#define SERIAL_SPEED  115200
#define WIFI_SSID     "YOUR SSID"
#define WIFI_PASSWORD "YOUR PASSWORD"

/* ------------------------------------------------- */

ESPTelnet telnet;
IPAddress ip;
uint16_t  port = 23;

/* ------------------------------------------------- */

void onTelnetConnect(String ip)
{
  telnet.println("Welcome " + telnet.getIP());
  telnet.println("(Use ^] + q  to disconnect.)");
}

void setup()
{
  Serial.begin(SERIAL_SPEED);
  Serial.println();

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  WiFi.forceSleepWake();
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

  while(WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }

  WiFi.setAutoReconnect(true);
  WiFi.persistent(true);

  telnet.onConnect(onTelnetConnect);

  telnet.onInputReceived([](String str)
  {
    Serial.println(str);
  });

  telnet.begin(port);
}

void loop()
{
  telnet.loop();

  if(Serial.available())
  {
    telnet.write(Serial.read());
  }
}
Działa, działa. I w ESP32 też. Bramka Z2S jest najlepszym przykładem :)
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Kiedyś miałem coś takiego jak jeszcze używałem pierwszej wersji Blynk-a, był widżet z komunikacją z seriala.
Wszystko fajnie, ale nie rozumiem gdzie to jest wyświetlane w powyższym przypadku? Jak odczytać tego seriala przez wifi?
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

SOYER wrote: Wed Dec 31, 2025 8:02 am Kiedyś miałem coś takiego jak jeszcze używałem pierwszej wersji Blynk-a, był widżet z komunikacją z seriala.
Wszystko fajnie, ale nie rozumiem gdzie to jest wyświetlane w powyższym przypadku? Jak odczytać tego seriala przez wifi?
Pewnie wbijasz na telnet:

telnet adres_ip_urządzenia

Putty też to ogarnie
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

klew wrote: Wed Dec 31, 2025 8:11 am
SOYER wrote: Wed Dec 31, 2025 8:02 am Kiedyś miałem coś takiego jak jeszcze używałem pierwszej wersji Blynk-a, był widżet z komunikacją z seriala.
Wszystko fajnie, ale nie rozumiem gdzie to jest wyświetlane w powyższym przypadku? Jak odczytać tego seriala przez wifi?
Pewnie wbijasz na telnet:

telnet adres_ip_urządzenia

Putty też to ogarnie
Ok, dziękuję.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

U mnie nie działa.
Mam komunikat powitalny i tyle.

Code: Select all

#include <SuplaDevice.h>
#include <supla/sensor/DS18B20.h>
#include <supla/network/esp_wifi.h>
#include "ESPTelnet.h"          // https://github.com/LennartHennigs/ESPTelnet
 Supla::ESPWifi wifi("xx", "xx");

#include <OneWire.h>
#include <DallasTemperature.h>

#include <Timers.h>
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>

/* ------------------------------------------------- */

#define SERIAL_SPEED  115200
#define WIFI_SSID     "xx"
#define WIFI_PASSWORD "xx"

/* ------------------------------------------------- */

ESPTelnet telnet;
IPAddress ip;
uint16_t  port = 23;


int alarmPieca = 0;
int temp_CWU;
int temp_PIEC;
int temp_POWROT;
int temp_INSTALACJA;



OneWire oneWire0(5);//D1
DallasTemperature czujnikCWU_POWROT(&oneWire0);
DeviceAddress termometr_cwu = {0x28, 0xFF, 0xEF, 0x07, 0xB6, 0x01, 0x3C, 0xCF};
DeviceAddress termometr_powrot = {0x28, 0x5F, 0x17, 0x07, 0xB6, 0x01, 0x3C, 0x0B};

OneWire oneWire1(4);//D2
DallasTemperature czujnikPIEC_INSTALACJA(&oneWire1);

DeviceAddress termometr_piec = {0x28, 0x15, 0x50, 0x07, 0xB6, 0x01, 0x3C, 0x09};
DeviceAddress termometr_instalacja = {0x28, 0xE8, 0x5C, 0x07, 0xB6, 0x01, 0x3C, 0x10};


int supla;

char ssid[] = "xx";
char pass[] = "xx";

Timer sekunda;
Timer minut5;
Timer minut10;
Timer sekund3;
Timer minut3;
Timer sekund4;
Timer sekund50;

#define pir D7

void onTelnetConnect(String ip)
{
  telnet.println("Welcome " + telnet.getIP());
  telnet.println("(Use ^] + q  to disconnect.)");
}

void ds(){
  czujnikPIEC_INSTALACJA.requestTemperatures(); 
  temp_PIEC = (czujnikPIEC_INSTALACJA.getTempC(termometr_piec)+8);
  temp_INSTALACJA = czujnikPIEC_INSTALACJA.getTempC(termometr_instalacja);
  czujnikCWU_POWROT.requestTemperatures(); 
  temp_CWU = (czujnikCWU_POWROT.getTempC(termometr_cwu)+7);
  temp_POWROT = (czujnikCWU_POWROT.getTempC(termometr_powrot)+8);
}
void setup() {
  Serial.begin(SERIAL_SPEED); //SERIAL_SPEED
  Serial.println();

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  WiFi.forceSleepWake();
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

  while(WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }

  WiFi.setAutoReconnect(true);
  WiFi.persistent(true);

  telnet.onConnect(onTelnetConnect);

  telnet.onInputReceived([](String str)
  {
    Serial.println(str);
  });

  telnet.begin(port);

    // Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {xx};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {xx};

  new Supla::Sensor::DS18B20(5, termometr_cwu);
  new Supla::Sensor::DS18B20(5, termometr_powrot);
  new Supla::Sensor::DS18B20(4, termometr_piec);
  new Supla::Sensor::DS18B20(4, termometr_instalacja);
  
  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    "svrxx.supla.org",  // SUPLA server address
                    "xx",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key
  
  WiFi.begin(ssid, pass);
  czujnikPIEC_INSTALACJA.begin();
  czujnikCWU_POWROT.begin();

  minut5.begin(59993);
  ds();

}

void loop() {
    SuplaDevice.iterate();
    telnet.loop();

  if(Serial.available())
  {
    telnet.write(Serial.read());
  }

  if(minut5.available()){
   ds();
   minut5.restart();
  }
}
You do not have the required permissions to view the files attached to this post.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
Bania
Posts: 107
Joined: Wed Jul 24, 2024 5:03 pm
Location: Bielsko-Biała
Has thanked: 5 times
Been thanked: 5 times

Post

Ja to testuje w następujący sposób:
1. ESP(1) jest w trybie Telnet (kod który jest w pierwszym poście)
2. ESP(2) ma zainstalowany przykład np. SuplaDevice->ThermostatBasic
3. Łącze ESP(1) z ESP(2) za pomocą Serial: TX(1) <-> RX(2), RX(1) <-> TX(2), GND(1) <-> GND(2).
4. Uruchamiam program PuTTY, ustawiam IP ESP(1) oraz port 23 (Telnet).
5. Uruchamiam urządzenia ESP(1) i ESP(2), obserwuje co się dzieje w ESP(2).

Dlaczego tak?
- mam wolny port USB (fizycznie mam odłączone USB<->RS232)
- mam podgląd zdalny, mogę połączyć się z siecią Telnet w swoim telefonie i obserwować co się dzieje z urządzeniem
- jest to swego rodzaju "zabezpieczenie", bo jeżeli dojdzie do uszkodzenia elektroniki to zostanie uszkodzony tylko ESP
- ESP(1) nie przeszkadza w wykonywaniu głównego programu ESP(2)
- mogę sobie zapisać wszystkie informacje do pliku i później je analizować
- w każdym momencie mogę przerwać sieć Telnet, poprzez wyłączenie ESP(1)
https://github.com/anarhbania/Supla
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Nie mam wolnego esp.
Czy tak jak wkleiłem powyżej nie będzie działać?
"Odbiornikiem" jest laptop, uruchomiłem usługę telnet w windowsie, następnie wpisałem w wierszu poleceń "telnet 192.168.costam.costam i pojawił się komunikat powitalny, ale żadne logi nie są widoczne, a na normalnym serial monitorze jak najbardziej się w tym czasie pojawiają.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

SOYER wrote: Wed Dec 31, 2025 3:19 pm Nie mam wolnego esp.
Czy tak jak wkleiłem powyżej nie będzie działać?
"Odbiornikiem" jest laptop, uruchomiłem usługę telnet w windowsie, następnie wpisałem w wierszu poleceń "telnet 192.168.costam.costam i pojawił się komunikat powitalny, ale żadne logi nie są widoczne, a na normalnym serial monitorze jak najbardziej się w tym czasie pojawiają.
Pewnie to nie to, ale ustawiłeś port na 23? Domyślnie chyba ustawia 22.
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036

Return to “Projekty użytkowników”