New: the AI firewall watches the whole platform and explains each incident in plain words. See how it works

Reply To: BLE sensörler: eşleştirip bağlanmak mı, yayınları dinlemek mi? Pi gateway bağlantıları düşüyor

Aslan Bey haklı. Evde 40’a yakın BLE sensörü tek Pi ile okuyorum, bağlanmadan.

BLE’de iki ayrı dünya var. Yayın (advertising): sensör kimseye bağlanmadan saniyede bir-iki kez küçük bir paket yayınlıyor, içinde sıcaklık ve nem var. Dinleyen sayısında sınır yok, sensör tarafında en az pil harcayan yol bu. Bağlantı (GATT): Pi sensöre bağlanıp karakteristik okuyor. Bağlantı sayısı adaptöre göre sınırlı (Pi’de pratikte 7-10), her bağlantı iki tarafta da enerji harcıyor. Eşleştirme (pairing/bonding) bağlantının üstüne şifreleme ekliyor; ayar yazmak veya şifreli veri okumak için gerekiyor, sadece ölçüm okumak için gerekmiyor.

Bu tip sensörlerin çoğu ölçümü yayın paketinde de veriyor (bazıları özel firmware ile). bleak’te pasif tarama ile dinle:

from bleak import BleakScanner
son = {}
def cb(dev, adv):
    if dev.address in SENSORLER:
        t, h = coz(adv.service_data)   # sensöre göre çözümleme
        son[SENSORLER[dev.address]] = {"values": {"sicaklik": t, "nem": h}}
scanner = BleakScanner(detection_callback=cb)

Dakikada bir son sözlüğünü tek mesajla gönder: v1/gw/telemetry içinde her child adının altında bir kayıt. 30 sensör tek mesaj, kota açısından da iyi.

Dezavantaj: yayın şifresiz, yakındaki herkes okuyabilir ve taklit edebilir. Bazı firmware’ler şifreli yayın destekliyor (bindkey ile), ilaç gibi bir yer ise ona bakın.

Accepted solution♥ 9