embedded-deck
TEKNİK REHBER GÖMÜLÜ NETWORK MATTER-THREAD 2026

Matter / Thread
Modern IoT Protokolleri

CSA'nın birleşik Matter standardını ve IEEE 802.15.4 tabanlı Thread mesh ağını anlayın; gerçek cihazlar için uçtan uca implementasyon yapın.

00 Matter nedir?

Matter (önceki adı CHIP — Connected Home over IP), Connectivity Standards Alliance (CSA) tarafından geliştirilen açık kaynaklı, IP tabanlı birleşik IoT uygulama protokolüdür.

Neden mevcut protokoller yetmedi?

ProtokolSorun
ZigbeeBirden fazla uygulama profili — farklı vendor'lar birbirine bağlanamıyor
Z-WaveKapalı standart, 900 MHz, ekosistem kısıtlı
HomeKitYalnızca Apple — Android ve Google Home ile çalışmıyor
Google HomeWeave/Cast — kapalı, Android/ChromeOS merkezli
Amazon AlexaASH protokolü — diğer ekosistemlerle entegrasyon zor
ProprietaryVendor lock-in, bulut bağımlılığı, ömür sonu riski

Matter'ın getirdikleri

Birlikte çalışabilirlikApple, Google, Amazon, Samsung, Philips — hepsi aynı protokol; bir cihaz herkesle çalışır
Yerel kontrolBulut olmadan çalışır — yerel ağ üzerinden komut, düşük gecikme, internet kesilse de çalışır
GüvenlikPKI tabanlı kimlik doğrulama, CASE/PASE protokolleri, fabric bazlı kimlik yönetimi
Transport esnekliğiWiFi, Thread (802.15.4), Ethernet üzerinde çalışır; BLE ile komisyon
Açık kaynakconnectedhomeip GitHub repo — Apache 2.0 lisansı

Matter transport yığını

Uygulama katmanı (clusters: OnOff, Temperature, DoorLock…)
        │
Interaction Model (Read/Write/Subscribe/Invoke)
        │
Data Model (attribute, command, event)
        │
Message Layer (MRP — Message Reliability Protocol)
        │
Transport (UDP/TCP)
        │
IP (IPv4 / IPv6)
        │
Fiziksel (WiFi / Thread 802.15.4 / Ethernet)

Bu bölümde

  • Matter = CSA standardı, IP tabanlı, tüm büyük ekosistemler destekli
  • Yerel kontrol: bulut olmadan çalışır; güvenlik: PKI + fabric kimliği
  • Transport: WiFi, Thread, Ethernet; komisyon: BLE üzerinden

01 Thread nedir?

Thread, IEEE 802.15.4 fiziksel katmanı üzerine IPv6 mesh ağı kuran, düşük güçlü IoT cihazları için tasarlanmış açık ağ protokolüdür.

Thread ağ topolojisi

İnternet / Yerel ağ (WiFi/Ethernet)
          │
   ┌──────┴──────┐
   │ Border      │   (OTBR — Thread ↔ IP köprüsü)
   │ Router      │
   └──────┬──────┘
          │  Thread mesh (802.15.4, 2.4 GHz)
    ┌─────┼─────┐
    │     │     │
 Router Router Router    (multi-hop relay, self-healing)
    │     │     │
 FED   SED   MED         (End Device tipleri)

Cihaz rolleri

RolKısaltmaÖzellik
Border RouterBRThread ↔ IPv6/IPv4 köprüsü; NAT64, DNS64, komisyon
RouterRPaket iletimi + End Device'lara hizmet, daima açık
Full End DeviceFEDRouter'a bağlı, daima açık ama paket iletmez
Minimal End DeviceMEDUyku yapabilir, polling ile veri alır
Sleepy End DeviceSEDÇoğu zaman uyku — düşük güç, pil ömrü uzun
SSEDSSEDSynchronized Sleepy End Device — Thread 1.3 yeni özellik

RF parametreleri

Fiziksel katmanIEEE 802.15.4, 2.4 GHz ISM bandı (channel 11–26), 250 kbps
Ağ katmanıIPv6 — 6LoWPAN sıkıştırma ile 127 byte'lık 802.15.4 frame'e sığar
Kapsama~10 m iç mekan (duvarlar etkiler), mesh ile yüzlerce metre
GüvenlikAES-128-CCM şifreleme, mesh anahtar + cihaz kimlik bilgileri
MeshSelf-forming, self-healing — bir Router düşerse trafik otomatik yönlendirilir
Thread 1.3Service Registration Protocol (SRP), DNS-SD keşif, SSED desteği

Bu bölümde

  • Thread = 802.15.4 + IPv6 + mesh; Border Router ile IP ağıyla köprülenebilir
  • Roller: Border Router, Router, FED, MED, SED — güç bütçesine göre seçilir
  • AES-128-CCM şifreleme, self-healing mesh — endüstriyel IoT için güvenilir

02 OpenThread

OpenThread, Google tarafından geliştirilen ve Thread protokolünün açık kaynaklı C++ implementasyonudur. POSIX, bare-metal MCU ve Linux platformlarında çalışır.

Platform desteği

PlatformBuild hedefiKullanım
POSIX / LinuxsimulationTest ve geliştirme, ot-cli, ot-daemon
nRF52840nrf52840Nordic SDK ile üretim MCU
ESP32-H2 / C6esp32h2Espressif IDF ile entegre
Silicon Labs EFR32efr32mgSimplicity Studio ile
TI CC1352cc2652TI SimpleLink ile
QEMUsimulationCI/CD test ortamı

OpenThread derleme ve kurulum (POSIX)

bash
# Bağımlılıklar
sudo apt install -y cmake ninja-build libssl-dev \
  libdbus-1-dev libbluetooth-dev libreadline-dev \
  libncurses-dev python3

# OpenThread klonla
git clone https://github.com/openthread/openthread.git
cd openthread

# POSIX simulation build (ot-cli + ot-daemon)
cmake -B build/posix \
  -GNinja \
  -DOT_PLATFORM=posix \
  -DOT_COMPILE_WARNING_AS_ERROR=OFF \
  -DOT_COMMISSIONER=ON \
  -DOT_JOINER=ON \
  -DOT_DHCP6_CLIENT=ON \
  -DOT_DNS_CLIENT=ON \
  -DOT_SRP_CLIENT=ON \
  -DCMAKE_BUILD_TYPE=Release \
  .

ninja -C build/posix -j$(nproc)

# Araçlar: ot-cli, ot-daemon, ot-ctl
ls build/posix/src/posix/

ot-cli temel komutlar

ot-cli
# Thread ağ kimlik bilgilerini ayarla
> dataset init new
> dataset networkname MyThread
> dataset networkkey 00112233445566778899aabbccddeeff
> dataset panid 0x1234
> dataset channel 15
> dataset commit active

# Thread arayüzünü başlat
> ifconfig up
> thread start

# Durum kontrolü
> state
router          # veya leader, child, detached

> ipaddr
fdde:ad00:beef::1   # mesh-local IPv6

# Komşu cihazları listele
> neighbor table

# Router tablosu
> router table

Bu bölümde

  • OpenThread: Google'ın açık kaynak Thread implementasyonu — nRF, ESP32, TI, POSIX
  • POSIX build ile masaüstünde Thread simülasyonu ve geliştirme yapılabilir
  • ot-daemon Linux'ta Thread arka plan servisi olarak çalışır

03 OTBR — OpenThread Border Router

OTBR, Thread mesh ağını IPv6/IPv4 ağlarla köprüleyen yazılım yığınıdır. Raspberry Pi gibi Linux cihazlarda çalışır ve Thread komisyon işlemlerini yönetir.

OTBR bileşenleri

otbr-agentAna daemon — ot-daemon ile konuşur, Thread ağını yönetir
otbr-webTarayıcı tabanlı yönetim arayüzü (:80)
NAT64Thread IPv6 cihazları IPv4 internete eriştirir — tayga/jool ile
DNS64IPv4 adresleri IPv6'ya dönüştürür — DNS64 sunucu
wpantundEski OTBR ajanı; modern kurulumda otbr-agent kullanılır
mDNS/SRPThread 1.3 SRP kayıtlarını mDNS'e bridge eder — Matter keşfi için kritik

Raspberry Pi OTBR kurulumu

bash — Raspberry Pi 4/5
# OTBR repo ve bağımlılıklar
sudo apt install -y git cmake ninja-build libssl-dev \
  libdbus-1-dev libbluetooth-dev libreadline-dev \
  libncurses-dev libjsoncpp-dev libboost-dev \
  avahi-daemon avahi-utils

git clone https://github.com/openthread/ot-br-posix.git
cd ot-br-posix
git submodule update --init --recursive

# RCP (Radio Co-Processor) modunu build et
# nRF52840 USB dongle veya ESP32-H2 UART RCP gerektirir
cmake -B build \
  -GNinja \
  -DOTBR_AGENT=ON \
  -DOTBR_WEB=ON \
  -DOTBR_BACKBONE_ROUTER=ON \
  -DOTBR_BORDER_ROUTING=ON \
  -DOTBR_NAT64=ON \
  -DOTBR_DNS_UPSTREAM_QUERY=ON \
  -DOTBR_SRP_ADVERTISING_PROXY=ON \
  -DOT_COMMISSIONER=ON \
  -DOT_JOINER=ON \
  -DCMAKE_BUILD_TYPE=Release \
  .

ninja -C build -j$(nproc)
sudo ninja -C build install

OTBR agent başlatma (RCP mod)

bash
# nRF52840 USB dongle RCP /dev/ttyACM0 üzerinde
sudo otbr-agent \
  -I wpan0 \
  -B eth0 \
  spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200 \
  trel://eth0

# Systemd servisi olarak
sudo systemctl enable --now otbr-agent
sudo systemctl status otbr-agent

# ot-ctl ile Thread ağını başlat
sudo ot-ctl dataset init new
sudo ot-ctl dataset commit active
sudo ot-ctl ifconfig up
sudo ot-ctl thread start
sudo ot-ctl state        # leader beklenir

# Web arayüzü: http://raspberrypi.local:80

Thread komisyonu — yeni cihaz ekleme

bash
# Border Router tarafında komisyoncuyu başlat
sudo ot-ctl commissioner start
sudo ot-ctl commissioner joiner add * J01NME  # joiner credential

# Yeni cihaz tarafında (ot-cli)
> joiner start J01NME
> ifconfig up
> thread start

# Cihaz ağa katılır, ot-ctl ile görünür
sudo ot-ctl child table

Bu bölümde

  • OTBR: Raspberry Pi + RCP dongle (nRF52840/ESP32-H2) ile tam Border Router
  • NAT64 + DNS64 ile Thread cihazları IPv4 internete erişir
  • SRP Advertising Proxy ile Thread cihazları mDNS'e görünür — Matter için kritik

04 Matter Mimarisi

Matter'ın uygulama katmanı, birbirine bağlı kavramlar hiyerarşisiyle tanımlanır: fabric, node, endpoint, cluster, attribute, command ve event.

Temel kavramlar

FabricOrtak PKI ile oluşturulan güvenilir cihaz ağı; bir cihaz birden fazla fabric'e üye olabilir
NodeMatter fabric üyesi fiziksel veya sanal cihaz; 64-bit Node ID ile tanımlanır
EndpointNode içindeki işlevsel birim; örn. ampul endpoint 1, dim endpoint 2
Clusterİlgili attribute ve komutların grubu; OnOff, LevelControl, ColorControl vb.
AttributeOkunabilir/yazılabilir özellik; OnOff.OnOff, LevelControl.CurrentLevel gibi
CommandCihaza gönderilen eylem; Toggle, MoveToLevel, LockDoor gibi
EventCihazdan gelen bildirim; kapı açık/kapalı, alarm tetiklendi gibi
CommissionerYeni cihazı fabric'e katan uygulama — CHIP Tool, Home uygulamaları

Interaction Model işlemleri

İşlemYönAçıklama
ReadController → CihazAttribute değerini oku
WriteController → CihazAttribute değerini yaz
SubscribeController ↔ CihazAttribute/event değişimini izle — push bildirim
InvokeController → CihazKomut çalıştır (Toggle, Lock vb.)
ReportCihaz → ControllerAbonelik sonucu veri gönder

PASE ve CASE protokolleri

PASE (Passcode Authenticated Session Establishment): ilk komisyon sırasında kullanılır — QR kodu veya manüel PIN ile geçici oturum. CASE (Certificate Authenticated Session Establishment): komisyon sonrası, PKI sertifikasıyla kalıcı güvenli kanal.

Komisyon (bir kez):
Commissioner → [BLE] PASE(passcode) → Cihaz → fabric credential yükle

Sonraki kullanımlar:
Controller → [IP: UDP/TCP] CASE(sertifika) → Cihaz → şifreli oturum → komutlar

Bu bölümde

  • Matter hiyerarşisi: fabric → node → endpoint → cluster → attribute/command/event
  • Interaction Model: Read, Write, Subscribe, Invoke — tüm cihaz iletişimi bu 4 işlemle
  • PASE ile ilk komisyon (BLE+PIN), CASE ile sonraki iletişim (PKI)

05 chip-tool Kullanımı

chip-tool, Matter cihazlarını komut satırından komisyon eden ve kontrol eden referans CLI aracıdır. CI/CD testleri ve geliştirme için vazgeçilmezdir.

chip-tool derleme

bash
# connectedhomeip repo
git clone https://github.com/project-chip/connectedhomeip.git
cd connectedhomeip
git submodule update --init --depth=1

# Bağımlılıklar (Ubuntu 22.04)
sudo apt install -y git cmake ninja-build libssl-dev \
  libdbus-1-dev libbluetooth-dev libglib2.0-dev \
  libavahi-client-dev python3-venv python3-pip \
  pkg-config

# Bootstrap (sanal ortam + araçlar)
source scripts/bootstrap.sh

# chip-tool derle
source scripts/activate.sh
gn gen out/host --args='chip_mdns="platform"'
ninja -C out/host chip-tool

ls out/host/chip-tool

Komisyon — BLE + WiFi yöntemi

bash — chip-tool
# WiFi Matter cihazı komisyon et
# --discriminator: QR kod veya manüel PIN'den, --passcode: PIN kodu
./chip-tool pairing ble-wifi \
  1 \
  "MyWiFiSSID" "wifi_password" \
  20202021 \
  3840
# Argümanlar: nodeId=1, ssid, password, passcode, discriminator

# BLE + Thread komisyonu
./chip-tool pairing ble-thread \
  2 \
  hex:0e080000000000010000000300001035060004001fffe00208dead00beef00cafe0708fd1122334455667605101122334455667788990011aabbccddeeff030e4f70656e54687265616400010214 \
  20202021 3840
# Thread dataset hex formatında verilir (ot-ctl dataset active -x ile alınır)

Cihaz kontrolü

bash — chip-tool
# OnOff cluster — aç/kapat
./chip-tool onoff on  1 1    # nodeId=1, endpoint=1
./chip-tool onoff off 1 1
./chip-tool onoff toggle 1 1

# Attribute oku
./chip-tool onoff read on-off 1 1
./chip-tool levelcontrol read current-level 1 1
./chip-tool temperaturemeasurement read measured-value 1 1

# Attribute yaz
./chip-tool levelcontrol move-to-level 128 0 0 0 1 1

# Subscribe (abonelik — sürekli bildirim al)
./chip-tool onoff subscribe on-off 1 10 1 1
# min-interval=1s, max-interval=10s

# Tüm komisyon edilmiş cihazları listele
./chip-tool pairing get-commissioned-nodes

Thread dataset alma

bash
# OTBR'dan Thread Active Dataset al (hex)
sudo ot-ctl dataset active -x
# 0e080000000000010000000300001035...

# chip-tool komisyonunda bu değeri kullan
THREAD_DATASET=$(sudo ot-ctl dataset active -x | tr -d '\r\n')
./chip-tool pairing ble-thread 2 hex:${THREAD_DATASET} 20202021 3840

Bu bölümde

  • pairing ble-wifi ve pairing ble-thread iki temel komisyon yöntemi
  • onoff, levelcontrol, temperaturemeasurement — temel cluster'lar chip-tool ile test edilebilir
  • subscribe komutu ile attribute değişimlerini gerçek zamanlı takip edilebilir

06 Matter Cihaz Oluşturma

connectedhomeip deposundaki örnek uygulamalar, Matter cihaz firmware'i geliştirmek için başlangıç noktasıdır. Linux üzerinde sanal cihaz çalıştırılarak hızlı prototip yapılabilir.

Örnek uygulamalar

UygulamaKonumAçıklama
lighting-appexamples/lighting-app/linuxAkıllı ampul — OnOff, LevelControl, ColorControl
lock-appexamples/lock-app/linuxAkıllı kilit — DoorLock cluster
thermostatexamples/thermostat/linuxTermostat — Thermostat cluster
bridge-appexamples/bridge-app/linuxMatter bridge — diğer protokolleri köprüler
contact-sensorexamples/contact-sensor-app/linuxKapı/pencere sensörü
ota-provider-appexamples/ota-provider-app/linuxOTA firmware güncelleme sunucusu

Linux lighting-app derleme ve çalıştırma

bash
# Ortamı hazırla
cd connectedhomeip
source scripts/activate.sh

# Linux lighting-app derle
gn gen out/lighting-linux \
  --args='chip_mdns="platform" chip_inet_config_enable_ipv4=true'
ninja -C out/lighting-linux examples/lighting-app/linux

# Çalıştır — KV depolama için temp dizin
./out/lighting-linux/chip-lighting-app \
  --KVS /tmp/lighting-kv \
  --discriminator 3840 \
  --passcode 20202021 \
  --secured-device-port 5540

# Başka terminalde chip-tool ile komisyon
./out/host/chip-tool pairing onnetwork 1 20202021

# Kontrol
./out/host/chip-tool onoff toggle 1 1

Custom cluster ekleme

cpp — SensorDevice.cpp
#include <app/clusters/temperature-measurement-server/temperature-measurement-server.h>
#include <app/server/Server.h>
#include <platform/CHIPDeviceLayer.h>

using namespace chip;
using namespace chip::app;
using namespace chip::app::Clusters;

/* Sıcaklık attribute'unu güncelle */
void UpdateTemperature(int16_t celsius_x100)
{
    /* TemperatureMeasurement cluster, endpoint 1 */
    Protocols::InteractionModel::Status status =
        TemperatureMeasurement::Attributes::MeasuredValue::Set(
            1 /* endpoint */, celsius_x100);

    if (status != Protocols::InteractionModel::Status::Success)
        ChipLogError(AppServer, "Temp attribute set failed");
}

/* I2C'den sıcaklık oku ve Matter attribute'unu güncelle */
void SensorPollTask(intptr_t /* unused */)
{
    while (true) {
        float temp_c = read_si7021_temperature();  /* donanım okuma */
        int16_t temp_matter = static_cast<int16_t>(temp_c * 100);
        UpdateTemperature(temp_matter);
        chip::DeviceLayer::SystemLayer().StartTimer(
            chip::System::Clock::Seconds32(5), SensorTimerCallback, nullptr);
        break;  /* timer ile tekrar çağrılacak */
    }
}

Bu bölümde

  • lighting-app, lock-app, bridge-app — Linux'ta doğrudan çalışabilen örnek Matter cihazlar
  • TemperatureMeasurement::Attributes::MeasuredValue::Set() ile attribute güncelleme
  • Aboneler (chip-tool subscribe, Home uygulamaları) değişimi otomatik alır

07 Linux Bridge Entegrasyonu

Matter bridge, Matter'ı konuşmayan cihazları (Zigbee, Z-Wave, BLE, Modbus) Matter fabric'ine köprüleyen özel bir Matter node türüdür.

Bridge mimarisi

Matter Fabric (IPv6 / Thread / WiFi)
          │
    ┌─────┴─────┐
    │   Matter  │   (Linux bridge-app — Raspberry Pi)
    │   Bridge  │
    └─────┬─────┘
          │
    ┌─────┼─────┬──────────┐
    │     │     │          │
 Zigbee  BLE Modbus  Proprietary
  (Z2M) (GATT) (RTU)  (custom)

bridge-app — dinamik endpoint ekleme

cpp — BridgeApp.cpp
#include <app/server/Server.h>
#include <app/util/af.h>
#include <app/clusters/bridged-device-basic-information-server/BridgedDeviceBasicInformationServer.h>

/* Köprülenecek cihaz yapısı */
struct BridgedDevice {
    chip::EndpointId endpoint_id;
    char             friendly_name[64];
    bool             is_online;
};

static BridgedDevice g_devices[MAX_BRIDGE_DEVICES];
static chip::EndpointId g_next_endpoint = 2;  /* 0=root, 1=aggregator */

/* Zigbee cihazını Matter'a köprüle */
chip::EndpointId AddZigbeeDevice(const char *name, uint16_t zigbee_addr)
{
    chip::EndpointId eid = g_next_endpoint++;

    /* Dinamik endpoint oluştur — OnOff + BridgedDeviceBasicInformation */
    EmberAfEndpointType *ep_type = CreateBridgedEndpoint(eid,
        DEVICE_TYPE_ON_OFF_LIGHT);
    emberAfSetDynamicEndpoint(eid - 2, eid, ep_type,
        Span<DataVersion>(g_dataVersions[eid]),
        Span<const EmberAfDeviceType>(g_deviceList[eid]));

    /* BridgedDeviceBasicInformation ayarla */
    BridgedDeviceBasicInformation::Attributes::NodeLabel::Set(
        eid, chip::CharSpan::fromCharString(name));
    BridgedDeviceBasicInformation::Attributes::Reachable::Set(eid, true);

    /* Zigbee adres eşlemesini kaydet */
    g_zigbee_map[eid] = zigbee_addr;

    ChipLogProgress(AppServer, "Bridged %s as endpoint %u", name, eid);
    return eid;
}

/* Zigbee'den gelen OnOff event'ini Matter attribute'una yansıt */
void OnZigbeeStateChange(uint16_t zigbee_addr, bool on_off)
{
    chip::EndpointId eid = FindEndpointByZigbeeAddr(zigbee_addr);
    if (eid == chip::kInvalidEndpointId) return;

    OnOff::Attributes::OnOff::Set(eid, on_off);
    /* Abonelere otomatik bildirim gider */
}

Matter over WiFi — mDNS keşfi

bash
# Matter cihazlarını mDNS ile keşfet
avahi-browse -r _matter._tcp
avahi-browse -r _matterc._udp   # komisyonlanabilir cihazlar

# chip-tool ile mDNS üzerinden doğrudan komisyon
./chip-tool pairing onnetwork 1 20202021

# OTA provider başlatma
./chip-ota-provider-app \
  --filepath ./firmware_v2.ota \
  --KVS /tmp/ota-kv

# OTA güncellemesini başlat
./chip-tool otasoftwareupdaterequestor \
  announce-otaprovider 2 0 0 0 1 0
# provider-nodeId=2, providerEndpoint=0, target-nodeId=1

Bu bölümde

  • bridge-app dinamik endpoint ile Zigbee/BLE cihazları Matter'a köprüler
  • Her köprülenmiş cihaz Matter fabric'te bağımsız node gibi görünür
  • mDNS keşfi ile otomatik cihaz bulma; OTA provider ile uzaktan güncelleme

08 Pratik: Raspberry Pi Matter Bridge

Thread sıcaklık sensörünü Matter fabric'ine köprüleme. nRF52840 + OpenThread sensörü, OTBR üzerinden Matter bridge-app aracılığıyla Apple Home ve Google Home'a entegre edilir.

Donanım gereksinimleri

Raspberry Pi 4/5OTBR + Matter bridge host; 4 GB RAM önerilir
nRF52840 USB dongleNordic Semiconductor — RCP (Radio Co-Processor) olarak çalışır
nRF52840-DKThread sensör cihazı — OpenThread + Si7021 I2C sensör

Adım 1 — nRF52840 dongle'a RCP firmware yükle

bash
# nRF5 SDK + nrfutil kurulu olmalı
# OpenThread repo'sundan RCP örneği
cd openthread
cmake -B build/nrf52840 \
  -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain/gnu.cmake \
  -DOT_PLATFORM=nrf528xx \
  -DOT_NCP_HDLC_ENABLE=ON \
  -DOT_BOOTLOADER=USB \
  .
make -C build/nrf52840 ot-rcp -j4

# nrfutil ile dongle'a flash
nrfutil pkg generate \
  --hw-version 52 \
  --sd-req 0x00 \
  --application build/nrf52840/src/ncp/ot-rcp.hex \
  --application-version 1 rcp.zip
nrfutil dfu usb-serial -pkg rcp.zip -p /dev/ttyACM0

Adım 2 — OTBR servisi başlat ve Thread ağı kur

bash
# OTBR agent — RCP dongle /dev/ttyACM0
sudo otbr-agent -I wpan0 -B eth0 \
  spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200

# Thread ağı oluştur
sudo ot-ctl dataset init new
sudo ot-ctl dataset channel 15
sudo ot-ctl dataset networkname SensorNet
sudo ot-ctl dataset commit active
sudo ot-ctl ifconfig up
sudo ot-ctl thread start

# Thread dataset al — sensör cihazı için gerekli
sudo ot-ctl dataset active -x
# 0e08000000000001000000030000103506...

Adım 3 — Matter bridge uygulaması

bash
# connectedhomeip bridge-app derle
cd connectedhomeip
source scripts/activate.sh

gn gen out/bridge --args='
  chip_mdns="platform"
  chip_inet_config_enable_ipv4=true
  chip_enable_transport_trace=false
'
ninja -C out/bridge examples/bridge-app/linux

# Bridge uygulamasını başlat
./out/bridge/chip-bridge-app \
  --KVS /tmp/bridge-kv \
  --discriminator 3840 \
  --passcode 20202021

Adım 4 — chip-tool ile komisyon ve test

bash
# Bridge'i komisyon et
./out/host/chip-tool pairing onnetwork 100 20202021

# Bridge'in endpoint listesini al
./out/host/chip-tool descriptor read parts-list 100 0

# Sensör cihazı endpoint 2 olarak görünür
./out/host/chip-tool temperaturemeasurement read measured-value 100 2
# Value: 2350  (23.50 °C)

# Sıcaklık subscribe (her 5–30 saniye güncelleme)
./out/host/chip-tool temperaturemeasurement subscribe measured-value \
  5 30 100 2

# Apple Home uygulamasından QR kodu tara → otomatik bulunur
# Google Home uygulamasından "Cihaz ekle" → Matter → QR kodu tara
SONUÇ

Thread sensör, OTBR aracılığıyla IPv6 erişilebilir hale gelir; Matter bridge-app SRP üzerinden sensörü Matter fabric'ine köprüler. Apple Home, Google Home ve Amazon Alexa aynı cihazı herhangi bir bulut servisi olmadan yerel ağda kontrol edebilir.

Bu bölümde

  • nRF52840 USB dongle RCP olarak OTBR'a bağlanır — Thread radyo katmanı sağlar
  • bridge-app Thread sensörü Matter TemperatureMeasurement cluster'ı olarak sunar
  • chip-tool ile test; Apple Home/Google Home ile gerçek kullanım — bulut gereksiz