Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Elektrik kesintisinden sonra 60 ESP32 bitmeyen bir yeniden bağlanma döngüsüne giriyor

Elektrik kesintisinden sonra 60 ESP32 bitmeyen bir yeniden bağlanma döngüsüne giriyor

Çözüldü 4 3

Merhaba, uzun yazacağım kusura bakmayın.

Çalıştığım su arıtma tesisinde seviye, debi ve pompa durumları için yaklaşık 200 tane ESP32 tabanlı küçük ölçüm kutusu kurmayı planlıyoruz. Hepsi aynı binada, aynı erişim noktasına bağlanacak, MQTT ile Hermetry’ye gidecek. Önce 60 tanesiyle pilot yaptık.

Normal çalışırken sorun yok. Ama geçen hafta binada 20 dakikalık elektrik kesintisi oldu, elektrik gelince kutuların çoğu bir türlü düzgün bağlanamadı. Seri porttan izlediğim birinde sürekli bağlan-düş var, dashboard’da cihazlar bir çevrimiçi bir çevrimdışı. Cihazların Log sekmesine baktım:

Connected via mqtts
Disconnected  Reason: takeover
Connected via mqtts
Disconnected  Reason: takeover

Bir de yöneticilere “takeover fight” diye bir bildirim gelmiş.

İlk aklıma gelen erişim noktası oldu. Ev tipi bir AP kullanıyoruz, 60 istemcide zorlanıyor olabilir, 200’de ne olacak bilmiyorum. Bu arada pilotta hız kazanmak için tüm kutulara aynı firmware’i ve aynı access token’ı yükledik, bir de onu yazayım, alakası var mı bilmiyorum.

♥ 0

Ev tipi AP’lerin çoğu 30-50 istemcide tıkanır, bence sorun orada. Kurumsal bir AP lazım.

Sahadan selamlar.
♥ 0

AP konusunda İlgaz haklı ama Log’daki takeover başka bir şey söylüyor, asıl sebep son yazdığın cümle.

Hermetry’de her cihazın tek bir oturumu olur. Aynı cihazın ikinci bağlantısı gelince birincisini kapatıp devralır. 60 kutu aynı token’la bağlanınca Hermetry bunları tek bir cihaz olarak görüyor: her bağlanan bir öncekini düşürüyor, düşen tekrar bağlanıyor, sonsuz döngü. Bunu iki ağdan sürekli yapan cihaz bir süre geri tutuluyor ve “takeover fight” bildirimi o. Normalde bağlantılar dağınık olduğu için fark etmemişsiniz, elektrik gelince 60’ı aynı anda kalkınca patlamış.

Ne yapmalı:

1. Her kutuya kendi kimlik bilgisi. 200 cihazı tek tek açmak yerine Imports sayfasından CSV ile toplu içe aktarma yapılabiliyor (dosya başına 1.000 satıra kadar), önce kuru çalıştırma gösteriyor, yeni cihazların token’ları bir kere indirilebilen bir dosyada geliyor. Alternatif olarak profilde provisioning key ile cihazların ilk açılışta kendi token’ını almasını sağlayabilirsiniz. 2. Yeniden bağlanmaya rastgele gecikme ekleyin. CONNACK 3 gelirse bekle-tekrar dene, ama hepsi aynı saniyede denemesin:

uint32_t backoff = 2000 + (esp_random() % 8000);   // 2-10 sn
if (!mqtt.connected()) { delay(backoff); mqtt.connect(id, token, ""); }

3. Keepalive 30-300 saniye arası. 60 iyi. 4. 200 kutu için tek ev tipi AP’ye güvenmeyin, 2-3 tane kurumsal AP’ye bölün.

Oturum ve CONNACK detayları MQTT sayfasında.

Kayıtta yoksa olmamıştır.
Kabul edilen çözüm♥ 5

Esra çok teşekkürler, aynen öyleymiş. 60 cihazı CSV ile içe aktardım, indirdiğim dosyadaki token’ları seri numarasına göre kutulara yükledik. Dün bilerek sigortayı indirip kaldırdık, hepsi 15 saniye içinde temiz bağlandı, Log’da tek takeover yok.

AP’yi de değiştirdik, 200’e geçerken üç tavan tipi AP’ye bölüyoruz.

♥ 0

+1 jitter için. Bizde de bir sahada 40 sensör aynı anda bağlanmaya çalışınca bazıları adres engellemesine takılmıştı, rastgele gecikmeyle düzeldi.

Sahadan selamlar.
♥ 2
5 yazı görüntüleniyor – 1 ile 5 arası (toplam 5)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Sohbete katılın

Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

Paylaş