XAN77 Postat Februarie 14, 2022 Autor Partajează Postat Februarie 14, 2022 (editat) deci, să le iau pe rând: -la mine în PubSubClient.h acea linie este ”#define MQTT_KEEPALIVE 15” -unu din senzorii wifi avea același id cu altul din alta cameră, am modificat dar degeaba -la mine clienții cu senzori trimit datele la 30 secunde, dar am pus acum să trimită și la 10 secunde și degeaba -”ar fi mai simplu sa le trasmita cu retain” cum fac asta ? LE acum are numele ”Dormitor-clock” plus acel hex Editat Februarie 14, 2022 de x_dadu Link spre comentariu
Viorel A Postat Februarie 14, 2022 Partajează Postat Februarie 14, 2022 client.publish("TOPIC/SUBTOPIC", "1",0,true);// ***** true = retain flag Link spre comentariu
XAN77 Postat Februarie 14, 2022 Autor Partajează Postat Februarie 14, 2022 (editat) așa publică clientul cu senzorul dht: temperature = dht.readTemperature(); humidity = dht.readHumidity(); client.publish("dormitor/dht11/tmp", String(temperature,1).c_str(), true) ; client.publish("dormitor/dht11/hum", String(humidity,1).c_str(), true) ; am schimbat si numele topicului ca să fie mai scurt LE am suprascris în funcția setup acel timp de keepalive de 15 secunde cu comanda: client.setKeepAlive(35); Acum are timp să primească toate datele, îmi afișează tot ce vroiam, pare ok. Dar în terminalul raspberry pi văd că tot primesc mesaje că ceasul a întrerupt conexiunea și o reia și tot așa, deci ceva tot e aiurea, că numai el generează evenimentele alea. Doar că acum stă mai mult timp conectat și apucă să primească datele topicurilor la care e abonat. Editat Februarie 14, 2022 de x_dadu Link spre comentariu
Vizitator Postat Februarie 15, 2022 Partajează Postat Februarie 15, 2022 (editat) Este ciudat ca apare "connection close". Normal era ca dupa client.subscribe() , clientul sa citeasca datele din server mqtt cu apelarea client.loop() (prin callback()) fara sa se deconecteze. Pentru test, incearca sa apelezi client.loop() dupa fiecare diy_wait_ms(1000); in afara de ultimul diy_wait... Editat Februarie 15, 2022 de Vizitator Link spre comentariu
XAN77 Postat Februarie 16, 2022 Autor Partajează Postat Februarie 16, 2022 Mulțumesc @Liviu.Mihaiu asta era. Am lăsat keepalive la valoarea default de 15 secunde și am mai adăugat câteva linii client.loop() după acele delayuri, așa cum ai recomandat, iar acum nu mai apar evenimente generate de acel ceas, nu se mai deconectează și primește corect datele la care se abonează. Problema a apărut pentru că eu adăugând un delay în plus, având o informație în plus de afișat pe display respectiv acel al 3-lea topic la care am făcut subscribe, am atins cumva o limită la care neexecutarea funcției client.loop() duce la o întrerupere a conexiunii client-broker. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum