Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

kravitch
Příspěvky: 7
Registrován: 10 dub 2019, 10:55
Reputation: 0

Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od kravitch » 10 dub 2019, 11:24

Dobrý den / ahoj,
pro jednoho mého známého jsem vyrobil několik čidel ("wifi teploměrů") přes arduino (NodeMCU). Jedná se o jednoduché zařízení, které pomocí DHT senzoru zjišťuje v pravidelných intervalech teplotu a ta se následně odesílá na web thingspeak.com.

Čidel má už asi 15 a vše fungovalo dobře více než rok. Problém nastal až od chvíle, kdy došlo ke změně internetového poskytovatele (LTE pevný internet vzduchem od T-mobile). Od té doby se z čidel připojených přes tento internet nedostávají data na web. Má tam ještě LTE internet od O2, také wifi připojení od lokálního ISP a přes obě tyto linky čidla úspěšně komunikují. Problém je opavdu jen u toho T-Mobile.

V čidlech mám nahraný tento kód:

Kód: Vybrat vše

#include <DHT.h>

#include <ESP8266WiFi.h>

String apiKey = "C33IQJ957HL3CY98";

const char *ssid = "SSID";
const char *pass = "heslo";
const char* server = "api.thingspeak.com";

#define DHTPIN 0

DHT dht(DHTPIN, DHT11);

WiFiClient client;

void setup()
{
Serial.begin(115200);
delay(10);
dht.begin();

Serial.println("Pripojuji k ");
Serial.println(ssid);

WiFi.begin(ssid, pass);

while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi pripojeno");

}

void loop()
{

float h = dht.readHumidity();
float t = dht.readTemperature();

if (isnan(h) || isnan(t))
{
Serial.println("Chyba cidla");
return;
}

if (client.connect(server,80))
{

String postStr = apiKey;
postStr +="&field1=";
postStr += String(t);
postStr +="&field2=";
postStr += String(h);
postStr += "\r\n\r\n";

client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);

}
client.stop();

Serial.println("Waiting...");

delay(900000);
}
Nejsem programátor, kód není můj. Vzal jsem ho z netu a pouze upravil.

Modem od T-Mobile je tohle https://www.velmo.cz/modemy/lte-modem-huawei-b2368-22/, ale v jeho nastavení jsem nenašel nic zvláštního, co by na to mohlo mít vliv.

Nejdřív jsem si myslel, že T-mobile nějak blokuje thingspeak.com, ale na web se z PC normálně dostanu a když zkusím poslat data ručně přes
nebo přes postmana, tak se odeslaná hodnota normálně na webu zobrazí (testovací kanál tady https://thingspeak.com/channels/750566), což mě samozřejmě znejistilo v domění, že t-mobile opravdu něco blokuje.

Další příčinu bych hledal v kódu, jenže tady zase narážím na to, že přes jiného ISP to opět bez problému fungovalo a funguje.

No a dál jsem už bezradný. Pokud by se tu našel někdo, kdo by třeba jen tušil kde by mohla být chyba, budu vděčný za každou radu či nasměrování. Současně se předem omlouvám pokud jsem pro svůj dotaz zvolil nevhodnou sekci.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od jankop » 10 dub 2019, 13:13

Ověř, jestli jsou čidla na ten router vůbec připojena. Není úplně jasné, jak to v síti s třemi operátory funguje. Třeba je tam rušení, které připojení znemožní. Nebo je tam WiFi 5GHz, co já vím? To spojení vypadává, nebo je stále nefunkční? Jsou změněna hesla?
Nemyslím si, že by provider Thingspeak blokoval. Může být problém s DNS servery nastavenými na modemu. Určitě bych zkusil přeprogramovat jedno čidlo na pevnou IP adresu thingspeak. Víš třeba jistě, že počítač, ze kterého jsi zkoušel přistupovat na thingspeak byl připojen na T- mobile stejně jako čidla?

kravitch
Příspěvky: 7
Registrován: 10 dub 2019, 10:55
Reputation: 0

Re: Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od kravitch » 10 dub 2019, 14:18

Děkuji za reakci.
Ověř, jestli jsou čidla na ten router vůbec připojena. Není úplně jasné, jak to v síti s třemi operátory funguje.
S připojením do sítě problém není. Čidla jsou připojena všechna. V uvedeném programu chybí kus kódu, kterým zapínám LED pokud čidlo ztratí WiFi spojení. Žádné čidlo nesvídí, tedy jsou do LAN připojena. Navíc je i vídím v DHCP Client list modemu. V té síti nejsou 3 ISP současně. Co ISP to samostatná síť. Problém s připojením jsem ověřoval jako první věc.
To spojení vypadává, nebo je stále nefunkční? Jsou změněna hesla?
Ke ztrátě spojení nedochází.
Víš třeba jistě, že počítač, ze kterého jsi zkoušel přistupovat na thingspeak byl připojen na T- mobile stejně jako čidla?
Ano, na 100% Test byl prováděn LAN kabelem přímo do modemu T-Mobile.
Může být problém s DNS servery nastavenými na modemu. Určitě bych zkusil přeprogramovat jedno čidlo na pevnou IP adresu thingspeak.
Naprogramovat IP natvrdo zkusit můžu, ale neřekl bych že je problém s DNS. Zkoušel jsem PING/Tracert z rozhraní modemu (na ICMP pakety thingspeak neodpovídá, ale zobrazí se správný překlad) a taky nastavit ruzné DNS napevno (Google, OpenDNS a Cloudflare).

Ještě doplnění - jedná se rekreační středisko. Jednotlivé domky jsou pokryty sítí access pointů (domky jsou od sebe vzdáleny a v každém domku je vidět pouze síť daného AP). Rušení nebo vliv jiné sítě tedy vylučuji. Tato síť je následně připojena jedním kabelem do LAN portu T-Mobile modemu. Pokud tento kabel jednoduše vemu a zapojím do LTE modemu O2, nebo routeru lokálního ISP, tak jako mávnutím kouzelného proutku vše funguje.

3 ISP jsou tam z provozních důvodů. Lokální ISP (wifi) byl pro zákazníky/rekreanty. O2 LTE je čistě pro provoz střediska (majitel, oddelěná neveřejná síť). No a T-Mobile je tam teď nově jako náhrada toho lokálního ISP.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od pavel1tu » 10 dub 2019, 16:16

Kód: Vybrat vše

client.print(postStr);

}
delay(1000);  //tohle přidej ..... 
client.stop();
možná to pomůže
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

rejze69
Příspěvky: 174
Registrován: 02 dub 2018, 18:56
Reputation: 0

Re: Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od rejze69 » 10 dub 2019, 22:56

Zdravím. Tohle je dost duchařina. Jsem na tech. podpoře pro síťové prvky a tyhle duchy lovíme každou chvíli a obvykle marně. Někomu přes to nefungují VPN vůbec, někomu se spojí, ale nejde nějaká služba(rdp) já to postavím od nás k nim se stejnym LTE modemem, jejich konfigurací a operátorem a funguje všechno. Skoro mi připadá jako by záleželo ke který BTS se připojíš a jestli tam nezatrhli nějaký porty. Každý takový modem je za desítkou NATů a je asi o náhodě jestli to projde. Jestli ten modem má nějaký nastavení ALG tak ho zkus uplně vypnout.

kravitch
Příspěvky: 7
Registrován: 10 dub 2019, 10:55
Reputation: 0

Re: Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od kravitch » 11 dub 2019, 00:19

pavel1tu píše:
10 dub 2019, 16:16

Kód: Vybrat vše

client.print(postStr);

}
delay(1000);  //tohle přidej ..... 
client.stop();
možná to pomůže
Nejsem si tím zcela jistý ale určitě vyzkouším. Jen se tam teď nejspíš pár dní nedostanu.
rejze69 píše:
10 dub 2019, 22:56
Zdravím. Tohle je dost duchařina. Jsem na tech. podpoře pro síťové prvky a tyhle duchy lovíme každou chvíli a obvykle marně. Někomu přes to nefungují VPN vůbec, někomu se spojí, ale nejde nějaká služba(rdp) já to postavím od nás k nim se stejnym LTE modemem, jejich konfigurací a operátorem a funguje všechno. Skoro mi připadá jako by záleželo ke který BTS se připojíš a jestli tam nezatrhli nějaký porty. Každý takový modem je za desítkou NATů a je asi o náhodě jestli to projde. Jestli ten modem má nějaký nastavení ALG tak ho zkus uplně vypnout.
Tady se používá port 80, tedy http. To by nešel žádný web předpokládám. Internet jako takový funguje. Je to pro mě opravdu začarované, protože jak jsem psal - z pc mi přes ten T-Mobile thingspeak data normálně přijímá. NAT by mělo smysl řešit pokud by byla komunikace z netu do LAN, ne? Tady je ale směr posílání dat opačný. Jinak ten modem v nastavení NATu má funkci ALG a vypnout to samozřejmě zkusit můžu.

Každopádně díky vám oběma za čas a reakci, dám vědět jestli došlo k nějakému posunu.

kravitch
Příspěvky: 7
Registrován: 10 dub 2019, 10:55
Reputation: 0

Re: Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od kravitch » 11 dub 2019, 15:52

Tak zdá se že problém je vyřešen. Na testovacím čidle přídání delay dle rady pavel1tu pomohlo. Tedy původně 1000 ms nezabralo, zkoušel jsem pak zvyšovat až na 5000 ms když už se data začala na webu thingspeak zobrazovat. Dal jsem pro jistotu 10000. Tak uvidíme jak to bude fungovat :)

Každopádně tímto velmi děkuji za radu!

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od pavel1tu » 11 dub 2019, 16:54

To je divné,já začínal na 1s
I tam kde jsem připojen GPRS (pohraničí) mi z alarmu vše funguje při hodnotě 275ms (odesílám do databáze každou hodinu stav alarmu, napětí zdroje, solátka a baterky) - neposíláš moc dat najednou ?
Je to vlastně čas, který potřebuje "server" na zpracování tvého požadavku, nesmíš mu spojení dříve utnout.

10s je moc, asi bych to začal zkoumat - něco je blbě .....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

kravitch
Příspěvky: 7
Registrován: 10 dub 2019, 10:55
Reputation: 0

Re: Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od kravitch » 11 dub 2019, 17:16

Divné to je od chvíle co tam je ten T-Mobile. Do té doby čidla bez výpadku posílaly data skoro rok v kuse bez nutnosti dávát tam delay. No a pokud jde o to množství dat, tak každé čidlo posílá jen naměřenou hodnotu teploty a vlhkosti 1x za 15 minut.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Problém s odesíláním dat na api.thingspeak.com přes T-Mobile

Příspěvek od pavel1tu » 11 dub 2019, 18:03

Myslím počet odesílaných bajtů v jednom spojení ....
Já to na tom GPRS ořezal co to šlo, i tak mi to někdy v zimě vypadne, pak mám falešný alarm, že se zařízení odmlčelo.

A co za zažízení tam máš ? Něco od T-Mobile ? Já jen že spousta GSM modulů z číny se tady k LTE někdy nepřipojí, je potřeba flešnout firmware
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti