NR NetRelay × MQTT
Uygulama ve donanım kılavuzu · v2.0 · Ağustos 2026

NetRelay’i MQTT ile izleyin ve yönetin.

Dört röle çıkışını uzaktan kontrol edin, dört dijital girişteki değişimleri anlık izleyin ve birden fazla şubeyi tek merkez panelden güvenli biçimde yönetin.

NetRelay endüstriyel IoT röle donanımı
4 giriş · 4 röle · yerel MQTT
4 × dijital girişAnlık 0/1 olay takibi
4 × röle çıkışı250 V / 10 A röle kapasitesi*
PoE · Ethernet · Wi‑FiYerel ağ odaklı bağlantı
MQTT · HTTP · WebSocketEsnek entegrasyon katmanı
01 · GENEL BAKIŞ

Tek panel, çok şube, anlık kontrol.

Bu kurulumda her NetRelay cihazı MQTT broker’a kendine ait kullanıcı hesabıyla bağlanır. Merkez panel çevrimiçi cihazları gösterir, yalnızca seçilen cihaza komut yollar ve cihazdan gelen giriş/röle değişimlerini JSON olarak kaydeder.

!
Elektrik güvenliği

250 V AC gibi tehlikeli gerilimlerle çalışma yalnızca yetkili ve ehil personel tarafından yapılmalıdır. Enerji vermeden önce bağlantıları ayırın, uygun sigorta ve muhafaza kullanın. Röle kapasitesi yük karakteristiği ve ürün varyantına göre doğrulanmalıdır.

YEREL KONTROL

Bulut zorunluluğu yok

Broker, panel ve cihazlar yerel ağ üzerinde çalışabilir. İnternet kesintisi yerel otomasyonu durdurmaz.

HEDEFLİ KOMUT

Kullanıcıya özel topic

Her cihaz yalnızca kendi netrelay/<kullanıcı>/command topic’ini dinler.

ANLIK TELEMETRİ

Input ve röle event’leri

GPIO değişimleri cihaz kimliği, hostname, IP ve çalışma süresiyle JSON olarak yayınlanır.

CANLI PANEL

WebSocket güncellemeleri

Çevrimiçi kullanıcılar ve loglar, sayfa yenilemeden merkez panelde güncellenir.

02 · SİSTEM MİMARİSİ

Mesajın uçtan uca yolculuğu.

Komutlar panelden broker’a, broker’dan yalnızca hedef cihaza gider. Donanım olayları ters yönde event topic’i üzerinden merkeze ulaşır.

UI
MQTT Sunucu PaneliHedef kullanıcı, röle ve 0/1 konumu seçilir.
MQ
Node.js MQTT BrokerKimlik doğrular ve kullanıcıya özel topic’e yayınlar.
IO
NetRelay DonanımıKomutu uygular; giriş ve röle durumlarını JSON ile bildirir.
netrelay/biga_sube/commandMerkez → cihaz komutu
netrelay/biga_sube/eventsCihaz → merkez olayları
03 · CİHAZ KURULUMU

NetRelay’i sahaya hazırlayın.

Her kurulum noktasını benzersiz ve anlaşılır biçimde tanımlamak, merkez panelde doğru cihazı seçmenin temelidir.

1

Genel ayarları yapılandırın

Cihaz web arayüzünde General Settings sayfasını açın.

  • Hostname: Şubeyi ifade eden kısa ve benzersiz bir ad kullanın; ör. NetRelay-Biga.
  • IP: Statik IP kullanılacaksa adres, subnet, gateway ve DNS değerlerini ağ yöneticinizle doğrulayın.
  • Device ID: Her fiziksel cihaz için benzersiz olmalıdır; ör. 1012.
  • Output / Input Names: Teknik pin adı yerine sahadaki işlevi yazın; ör. KapiKilidi, YanginAlarmi.
NetRelay genel ayarlar ekranı açıklamaları
Şekil 1 — Hostname, ağ, cihaz ID ve I/O adlarının yapılandırılması.
2

Input olayını MQTT’ye yönlendirin

Events sayfasında izlemek istediğiniz event kaydını düzenleyin.

  • Takip edilecek input’u seçin.
  • Out alanını mqtt yapın.
  • Gerekirse operatörü, bekleme süresini ve aktif/pasif durumunu düzenleyin.
  • Kaydedin ve event’in listede aktif olduğunu doğrulayın.
NetRelay event yönetimi ekranı açıklamaları
Şekil 2 — Input olayının MQTT çıkışına yönlendirilmesi.
04 · MQTT AYARLARI

Cihazı broker’a bağlayın.

NetRelay web arayüzündeki MQTT Client sayfasında broker ve hesap bilgilerini girin.

AlanÖnerilen değerAçıklama
MQTT Server192.168.1.4Node.js broker’ın yerel ağ IP adresi.
Başlık (Topic)biga_şubeCihazın yapılandırılmış yayın başlığı.
Sub TopicfromServerMevcut cihaz iş akışlarında kullanılan alt topic.
MQTT Port1883TLS kullanılmayan standart MQTT portu.
MQTT Userbiga_subePaneldeki MQTT Kullanıcıları bölümünde oluşturulan benzersiz ve aktif kullanıcı adı.
MQTT PasswordGİZLİSunucudaki kullanıcı kaydıyla birebir eşleşmelidir.
Client ModeAKTİFKaydettikten sonra MQTT bağlantısını etkinleştirir.
NetRelay MQTT istemci ayarları
Şekil 3 — Broker, topic, port ve kimlik doğrulama ayarları.
i
Topic sözleşmesi

Firmware, merkez komutları için ayrıca netrelay/<mqttUsername>/command topic’ine otomatik abone olur ve olayları netrelay/<mqttUsername>/events topic’ine yayınlar.

05 · RÖLE KOMUTLARI

Doğru şubeye, doğru röle komutu.

Merkez panelde çevrimiçi kullanıcıyı seçin; bir veya daha fazla röleyi işaretleyin; konumu 1 (Açık) ya da 0 (Kapalı) olarak belirleyip JSON mesajını gönderin.

MQTT Sunucu Paneli üzerinde NetRelay komutu gönderme
Şekil 4 — Çevrimiçi şube seçimi ve hedefli röle komutu.
Röle 1 ve 3'ü aç
{
  "type": "netrelay",
  "command": "set",
  "targetUsername": "biga_sube",
  "relays": [1, 3],
  "position": 1,
  "delay": 3
}
Tüm röleleri kapat
{
  "type": "netrelay",
  "command": "set",
  "targetUsername": "biga_sube",
  "relays": [1, 2, 3, 4],
  "position": 0,
  "delay": 0
}

Gecikmeli geri dönüş: delay: 0 röleyi yeni konumunda bırakır. Pozitif bir değer röleyi belirtilen saniye sonunda komut öncesindeki konumuna döndürür.

Hedefleme garantisi: Broker topic’i seçilen çevrimiçi kullanıcıdan üretir. Firmware ayrıca targetUsername alanını kendi MQTT hesabıyla karşılaştırır; uyuşmayan komutu uygulamaz.

06 · OLAY MESAJLARI

Sahadaki her değişimi bağlamıyla alın.

Input ve röle değişimleri kullanıcı, cihaz, IP, hostname ve çalışma süresi bilgileriyle sunucuya ulaşır. Sunucu doğrulanmış MQTT kullanıcı adı ve Client ID değerlerini bağlantıdan alır.

Input durumu değiştiğinde

netrelay/biga_sube/events
{
  "type": "netrelay_input_event",
  "mqttUsername": "biga_sube",
  "deviceId": "1012",
  "ipAddress": "192.168.1.50",
  "hostname": "NetRelay-Biga",
  "topic": "biga_şube",
  "subtopic": "fromServer",
  "input": 1,
  "inputName": "KapiSensoru",
  "io": 1,
  "deviceUptimeMs": 4567
}

Röle durumu değiştiğinde

netrelay/biga_sube/events
{
  "type": "netrelay_relay_event",
  "username": "biga_sube",
  "clientId": "1012",
  "ipAddress": "192.168.1.50",
  "hostname": "NetRelay-Biga",
  "relay": 2,
  "position": 1,
  "deviceUptimeMs": 12345
}
AlanAnlamı
inputNameGeneral Settings → INPUT NAMES alanındaki kullanıcı tanımlı isim.
ioDijital girişin gerçek seviyesi: 0 veya 1.
positionRöle çıkışının gerçek GPIO seviyesi: 0 veya 1.
deviceUptimeMsCihaz açıldığından beri geçen milisaniye; yeniden başlatmaları anlamaya yardımcı olur.
serverReceivedAtSunucunun normalize edilmiş loga eklediği ISO zaman damgası.
07 · YÖNETİM PANELİ VE SUNUCU

Güncel NetRelay yönetim özellikleri.

Node.js MQTT Server yalnızca broker değildir; cihaz, kullanıcı, otomasyon, bildirim, güvenlik ve operasyon işlemlerini tek web panelinde birleştirir.

İzleme ve cihaz kontrolü

ÖzellikAçıklama
Genel bakışÇevrimiçi cihazlar, son görülme, IP, hostname, uptime, voltaj, sıcaklık ve bağlantı istatistiklerini gösterir.
Cihaz I/ODört input ve dört röleyi canlı izler; röleleri iPhone tarzı anahtarlarla kontrol eder. Seçilen cihaza durum senkronizasyonu ve yeniden başlatma komutu gönderilebilir.
Bayat cihaz tespitiMQTT bağlantısı açık kalsa bile durum mesajı belirlenen süre boyunca kesilirse cihazı Bayat işaretler; mesaj yeniden geldiğinde iyileşme kaydı oluşturur.
Delta güncellemeleriWebSocket ilk bağlantıda tam durumu, devamında yalnızca değişen alanları göndererek ağ ve tarayıcı yükünü azaltır.

Otomasyon ve toplu kontrol

ZAMANLAMA

Zamanlanmış görevler

Cron, gün doğumu veya gün batımına göre röle çalıştırır. Geri alma süresi, tatil/istisna günleri, çalışma geçmişi ve cihaz çevrimdışıysa bağlandığında çalıştırma kuyruğu desteklenir.

KURAL MOTORU

Olay tabanlı kurallar

Input, sıcaklık veya voltaj koşuluna göre röle konumu değiştirme, SMTP e-posta ve Netgsm REST v2 SMS eylemlerini sıralı çalıştırır. Kurallar düzenlenebilir, silinebilir ve aktif/pasif yapılabilir.

GRUPLAR

Cihaz grupları

Şube veya bölge bazlı cihaz grupları oluşturur; tek komutu birden fazla cihaza gönderir ve çevrimdışı hedefler için komut kuyruğu kullanabilir.

OTA

Merkezi firmware

ESP32 imajını boyut ve SHA-256 ile doğrular, seçilen cihazlara süreli indirme bağlantısı gönderir ve OTA ilerlemesini panelden izler.

Kullanıcı, geçmiş ve sistem yönetimi

Panelİşlev
MQTT kullanıcılarıKullanıcılar SQLite veritabanında tutulur; panelden eklenir, düzenlenir, silinir ve aktif/pasif yapılır. Her hesap yalnızca kendi netrelay/<kullanıcı>/* topic alanına erişebilir.
Panel kullanıcılarıYönetici ve yetkili kullanıcı hesapları; bölüm bazlı izinler, parola değiştirme zorunluluğu, güvenli oturum çerezi ve brute-force hesap kilidi içerir.
Olay geçmişiRöle/input ve cihaz durumu değişikliklerini SQLite’a yazar. Aynı 5 saniyelik heartbeat tekrar kaydedilmez; sensör toleransları uygulanır. MQTT kullanıcıları çoklu seçilebilir ve sonuçlar CSV indirilebilir.
Denetim kaydıPanelde komut gönderen, ayar veya kullanıcı değiştiren hesabı zaman ve uzak IP bilgisiyle kalıcı olarak kaydeder.
REST APIMobil uygulama, Node-RED ve harici otomasyonlar için Bearer API anahtarlı /api/v1 endpointleri sunar. Her anahtar belirlenen cihaz grupları ve onların üyeleriyle sınırlandırılır. Cihaz durumu, geçmiş, röle/restart/sync ve grup komutu desteklenir. Anahtarlar hash’li saklanır; okuma/kontrol kapsamları ve dakikada 120 istek sınırı uygulanır.
Home AssistantHer cihazın dört rölesini MQTT Discovery ile retained switch, dört inputunu binary_sensor olarak yayınlar. Özel homeassistant MQTT hesabına yalnızca gerekli entegrasyon topic yetkileri verilir.
YedeklemeSQLite veritabanı ile isteğe bağlı .env ayarlarını tek bir sıkıştırılmış pakete indirir. Geri yükleme bütünlük kontrolünden sonra yeniden başlatmada uygulanır ve mevcut dosyaların geri dönüş kopyası alınır.
Log rotasyonuGünlük cihaz loglarını ayarlanan sürede .gz arşivine dönüştürür ve saklama süresi dolunca siler. İşlem açılışta, altı saatte bir veya panelden elle çalıştırılabilir.
Log ayarlarıTerminal konsol çıktısı ve ayrıntılı MQTT/TLS debug logu panelden ayrı ayrı açılıp kapatılır; seçimler SQLite’ta saklanır.
ArayüzAçık/koyu tema, mobil menü, N faviconu, iPhone tarzı röle/konum anahtarları ve yetkiye göre görünür menüler desteklenir.
Windows servisiscripts/install-windows-service.ps1 ile NSSM servisi kurulur; Windows açılışında başlar ve hata halinde otomatik yeniden çalışır. PM2 alternatifi de belgelenmiştir.
1
Güvenilir komut teslimi

Röle, restart, sync, kuyruk ve OTA komutları MQTT QoS 1 kullanır. Sunucu her komuta benzersiz commandId ekler; güncel firmware son işlenen ID’leri tutarak tekrar teslim edilen komutları ikinci kez uygulamaz.

i
Test ve bakım

Cron ayrıştırma, olay ayrıştırma, giriş engelleme, değişiklik algılama, çoklu geçmiş filtresi, WebSocket delta ve kalıcı sistem ayarları npm test ile çalışan Node.js testleriyle doğrulanır.

08 · REST API VE MOBİL UYGULAMA

Mobil uygulamadan güvenli cihaz izleme ve kontrol.

NetRelay REST API v1; Android, iOS, Node-RED ve kuruma özel uygulamaların MQTT ayrıntılarını bilmeden cihazları listelemesini, canlı durumu okumasını ve yetkili röle komutları göndermesini sağlar. Temel adres panel adresinin sonuna /api/v1 eklenerek oluşturulur: https://sunucu-adresi/api/v1.

!
API anahtarını parola gibi koruyun

Token yalnızca oluşturulduğu anda gösterilir ve sunucuda SHA-256 özeti saklanır. Mobil uygulamada düz metin dosyaya, kaynak koda, Git deposuna veya loglara yazmayın. Android Keystore / EncryptedSharedPreferences ya da iOS Keychain kullanın. Mağazada herkese dağıtılan bir uygulamaya ortak bir API anahtarı gömmeyin; bu senaryoda kendi kimlik doğrulamalı ara sunucunuzu kullanın.

API anahtarı hazırlama

1

Cihaz grubunu oluşturun

Panelde Kontrol ve Otomasyon → Cihaz Grupları sayfasına gidin. Mobil uygulamanın görebileceği MQTT kullanıcılarını bir gruba ekleyin.

2

Anahtarı sınırlandırın

Sistem → REST API sayfasında anahtar adı, read veya control kapsamı ve erişebileceği cihaz gruplarını seçin. control kapsamı okuma yetkisini de içerir.

3

Tokenı güvenli kaydedin

Oluşturulan nr_... tokenına tıklayarak kopyalayın. Bu değer daha sonra panelde yeniden görüntülenemez; kaybolursa eski anahtarı silip yenisini oluşturun.

Kimlik doğrulama ve erişim sınırı

HTTP istek başlığı
Authorization: Bearer nr_TOKENINIZ

Alternatif olarak X-API-Key: nr_TOKENINIZ başlığı kullanılabilir. Her anahtar dakikada 120 istekle sınırlandırılır. Anahtar yalnızca seçilen grupları ve bu gruplardaki kartları görür; kapsam dışındaki cihazlar bilgi sızdırmamak için 404 Not Found döndürür ve kesinlikle kontrol edilemez.

Mobil uygulamada kullanılacak endpointler

İstekİşlev
GET /healthToken gerektirmeyen sunucu sağlık ve sürüm kontrolü.
GET /devicesYalnızca izin verilen gruplardaki çevrimiçi cihaz kartlarını listeler.
GET /devices/:usernameTek cihazın bağlantı, röle, input, voltaj, sıcaklık ve uptime durumunu getirir.
GET /history?username=cihaz1&limit=100İzinli cihazın değişiklik geçmişini getirir. type parametresiyle olay türü filtrelenebilir.
GET /device-groupsAnahtara atanmış cihaz gruplarını ve üyelerini listeler.
GET /device-groups/:idİzin verilen tek bir grubun ayrıntısını getirir.
POST /devices/:username/relaysBir veya birden fazla röleyi değiştirir; control kapsamı gerekir.
POST /devices/:username/syncCihazdan güncel durum paketi ister; control kapsamı gerekir.
POST /devices/:username/restartCihazı yeniden başlatır; control kapsamı gerekir.
POST /device-groups/:id/relaysGruptaki cihazlara toplu röle komutu yollar; çevrimdışı üyeler isteğe bağlı kuyruğa alınabilir.

Cihaz grubu üyelikleri güvenlik nedeniyle mobil API anahtarıyla değiştirilemez. Grup oluşturma, düzenleme ve silme işlemleri yönetici panelindeki /device-groups sayfasından yapılır.

Örnek röle komutu

POST /api/v1/devices/biga_sube/relays
fetch('https://sunucu-adresi/api/v1/devices/biga_sube/relays', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer nr_TOKENINIZ',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ relays: [1], position: 1, delay: 0 })
});

relays alanı 1–4 arasındaki röleleri, position değeri 0 veya 1 konumunu, delay ise saniye cinsinden gecikmeyi belirtir. Kabul edilen kontrol komutları 202 Accepted döndürür.

Mobil ekran akışı önerisi

BAĞLANTI

Sunucu ve token ayarı

Kullanıcı sunucu URL’sini ve kendisine verilen tokenı bir kez girer. Uygulama önce /health, ardından yetkili /devices isteğiyle bağlantıyı doğrular.

CİHAZLAR

Yetkili kart listesi

Listeyi yalnızca API yanıtından üretin. Sunucu grup filtresini zorunlu uygular; uygulama başka MQTT kullanıcı adlarını tahmin ederek istememelidir.

KONTROL

Durum ve röle ekranı

Cihaz ayrıntısını düzenli ama ölçülü aralıklarla yenileyin; röle işleminden önce kullanıcı onayı alın ve 202 yanıtından sonra durumu yeniden sorgulayın.

HATALAR

Kullanıcı dostu geri bildirim

401 token hatası, 403 yetki eksikliği, 404 kapsam dışı kaynak, 409 çevrimdışı cihaz ve 429 istek sınırı olarak ele alınmalıdır.

i
Canlı güncelleme yaklaşımı

Mobil REST API istek/yanıt tabanlıdır; sürekli WebSocket bağlantısı gerektirmez. Cihaz listesi ve durum ekranında makul aralıklı yenileme kullanın, 429 yanıtında üstel bekleme uygulayın. İnternet üzerinden erişimde panel ve API için geçerli HTTPS sertifikası veya VPN zorunlu tutulmalıdır.

Daha ayrıntılı yanıtlar, grup komutu örnekleri ve Home Assistant bilgileri için proje içindeki docs/REST-API.md dosyasına bakın.

09 · HOME ASSISTANT BAĞLANTISI

Röleleri ve inputları Home Assistant’a otomatik tanıtın.

MQTT Discovery etkinleştirildiğinde her NetRelay kartı Home Assistant’ta tek cihaz olarak görünür; dört röle switch, dört dijital input binary_sensor varlığı olarak otomatik oluşturulur. NetRelay cihazında Home Assistant’a özel bir ayar yapılmaz; cihazın güncel firmware ile kendi MQTT hesabı üzerinden sunucuya bağlı ve event/status mesajlarını yayınlıyor olması yeterlidir.

1

Home Assistant MQTT hesabını oluşturun

NetRelay panelinde Sistem → MQTT Kullanıcıları sayfasını açın. Kullanıcı adı tam olarak homeassistant olan, aktif ve güçlü parolalı ayrı bir hesap oluşturun. Bu hesap kartların kullandığı MQTT hesaplarından farklı olmalıdır.

2

MQTT Discovery’yi etkinleştirin

Sistem → REST API sayfasındaki Home Assistant kartını açın. Discovery prefix için önerilen homeassistant değerini bırakın, MQTT kullanıcısının homeassistant olduğunu doğrulayın, Discovery etkin anahtarını açın ve Kaydet ve yayınla düğmesine basın.

3

Home Assistant MQTT entegrasyonunu ekleyin

Home Assistant’ta Ayarlar → Cihazlar ve servisler → Entegrasyon ekle → MQTT yolunu izleyin. Broker alanına MQTT sunucusunun IP/hostname bilgisini, port alanına şifresiz yerel bağlantı için 1883 veya TLS için 8883 yazın. Kullanıcı adı olarak homeassistant, parola olarak birinci adımda verdiğiniz parolayı kullanın.

4

Cihazları ve varlıkları doğrulayın

MQTT entegrasyonu açıldıktan sonra Ayarlar → Cihazlar ve servisler → MQTT altında NetRelay <kullanıcı> cihazları görünür. Her kartta Relay 1–4 anahtarları ve Input 1–4 binary sensor varlıkları bulunmalıdır.

AyarDeğer / açıklama
BrokerNetRelay MQTT Server’ın yerel IP adresi veya DNS adı; örnek 192.168.1.4.
Port1883 MQTT veya sertifika doğrulamalı bağlantı için 8883 MQTT TLS.
KullanıcıPanelde oluşturulan ve Discovery ayarında seçilen homeassistant hesabı.
Discovery prefixVarsayılan ve önerilen değer homeassistant. Home Assistant tarafındaki discovery prefix ile aynı olmalıdır.
RölelerDört adet switch; komutlar cihazın netrelay/<kullanıcı>/command topic’ine QoS 1 ile gönderilir.
InputlarDört adet binary_sensor; anlık input event’i ve periyodik cihaz durumundan güncellenir.
i
Topic yetkileri otomatik uygulanır

Ayarlanan Home Assistant MQTT hesabına yalnızca Discovery topic aboneliği, NetRelay event aboneliği ve kart command yayını için gereken entegrasyon izinleri verilir. Kartların birbirine ait hesap parolalarını Home Assistant’a eklemeniz gerekmez.

!
TLS kullanıyorsanız

Home Assistant’a sunucunun CA sertifikasını tanıtın ve bağlandığınız hostname/IP değerinin sertifikanın SAN alanında bulunduğunu doğrulayın. Sertifika doğrulamasını kapatmak yerine doğru CA ve sunucu adını kullanın. Uzak erişimde 1883 portunu internete açmayın; VPN veya TLS tercih edin.

Home Assistant sorun giderme

BelirtiÇözüm
MQTT bağlantısı reddediliyorhomeassistant hesabının aktif olduğunu, parolayı ve broker portunu kontrol edin. Sunucu loglarında kimlik doğrulama veya blacklist kaydı olup olmadığına bakın.
NetRelay cihazları görünmüyorDiscovery’nin etkin olduğunu ve prefix’in homeassistant olduğunu doğrulayın; panelde yeniden Kaydet ve yayınla deyin. MQTT entegrasyonunu yeniden yükleyin.
Röle var ama durumu değişmiyorKartın çevrimiçi ve güncel firmware’de olduğunu doğrulayın. Panelde Cihaz I/O ekranından Durumu Yenile komutu gönderin ve event topic mesajlarını kontrol edin.
Inputlar görünmüyor veya güncellenmiyorCihazın netrelay_device_status ve netrelay_input_event mesajlarını yayınladığını sunucu loglarından doğrulayın. Discovery’yi yeniden yayınlayın.
Eski/silinmiş varlıklar kalıyorHome Assistant MQTT entegrasyonunda ilgili eski cihazı silin, doğru Discovery ayarını yeniden kaydedin ve kartın yeniden bağlanmasını bekleyin.
10 · İNDİRMELER

Örnek kod ve güncel firmware.

NetRelay MQTT uygulamasını kurmak veya cihaz firmware’ını güncellemek için gerekli paketlere aşağıdan ulaşabilirsiniz.

NODE.JS · MQTT SERVER

MQTT sunucu örnek kodu

MQTT broker, kullanıcı doğrulaması, canlı web paneli, WebSocket logları ve hedefli NetRelay röle kontrolü için örnek proje.

MQTT Server GitHub ↗

Kaynak kod, güncelleme geçmişi ve kurulum belgeleri GitHub deposundadır.

NETRELAY · S-3.3.5

Güncel firmware

MQTT QoS 1 komut aboneliği, commandId tekrar koruması, restart/sync, merkezi OTA, röle/input event mesajları, heartbeat, uptime, IP ve hostname desteğini içerir.

NetRelay Yazılımları ↗

ESP32-S3 / 8 MB için doğru partition ve donanım modelini doğrulayın.

i
Güncelleme öncesi

Mevcut cihaz ayarlarınızı yedekleyin, doğru donanım sürümünü kullandığınızı doğrulayın ve firmware yüklemesi sırasında cihazın enerjisini kesmeyin.

11 · GÜVENLİK

Saha kontrolünü koruyun.

HESAPLAR

Her cihaz için ayrı kullanıcı

Şubeler arasında hesap paylaşmayın. Uzun, benzersiz parolalar kullanın; hesapları SQLite tabanlı MQTT Kullanıcıları ekranından yönetin. .env, veritabanı ve yedek paketlerini sürüm kontrolüne eklemeyin.

IoT VLAN kullanın

Cihazları ayrı bir VLAN’da tutun; yalnızca MQTT broker ve gerekli yönetim istemcilerine erişim verin.

İNTERNET

1883 portunu doğrudan açmayın

Uzak erişimde VPN tercih edin. İnternet üzerinden MQTT gerekiyorsa TLS, sertifika doğrulama ve erişim listeleri kullanın.

PANEL

Web erişimini sınırlandırın

Panel oturum doğrulaması, rol/yetki kontrolleri ve giriş denemesi kilidi içerir. Üretimde HTTPS’yi etkinleştirin veya güvenilir bir TLS ters proxy kullanın; paneli doğrudan internete açmayın.

TOPIC ACL

Cihazları topic ile yalıtın

Broker publish/subscribe yetkilendirmesi her MQTT hesabını kendi netrelay/<kullanıcı>/* alanıyla sınırlar. Uyumluluk gerekmedikçe MQTT_TOPIC_ENFORCEMENT=1 kullanın.

TLS / mTLS

Sertifikaları doğrulayın

MQTT TLS 1.2+, CA doğrulaması ve isteğe bağlı karşılıklı istemci sertifikası desteklenir. Web paneli için de HTTPS anahtar/sertifika ayarları kullanılabilir.

GİRİŞ KORUMASI

Tekrarlanan denemeleri engelleyin

MQTT ve web paneli başarısız girişleri ayrı pencere/eşik süreleriyle izlenir; eşik aşıldığında IP veya hesap geçici olarak engellenir.

GİZLİ VERİ

Yedekleri de parola gibi koruyun

Yedek paketi SMTP ve Netgsm parolaları ile ortam ayarlarını içerebilir. .env, SQLite dosyaları, sertifika private key’leri ve yedekleri Git’e göndermeyin.

12 · SORUN GİDERME

Hızlı kontrol listesi.

BelirtiKontrol
Cihaz çevrimiçi görünmüyorBroker IP/port, ağ geçidi, kablo/PoE, MQTT Client Mode ve kullanıcı/parola eşleşmesini kontrol edin.
Not authorizedNetRelay MQTT User/Password değerlerini paneldeki MQTT Kullanıcıları kaydıyla karşılaştırın; hesabın aktif olduğundan ve cihazın yalnızca kendi topic alanını kullandığından emin olun.
Komut cihaza ulaşmıyorCihazı yeni firmware ile yeniden başlatın; seri monitörde özel command topic aboneliğini doğrulayın.
Yanlış cihaz komut alıyorHer şubenin farklı MQTT kullanıcı adı kullandığını ve panelde doğru çevrimiçi hesabın seçildiğini doğrulayın.
Input olayı görünmüyorInput pinini, INPUT NAMES ayarını ve event topic loglarını kontrol edin. Giriş değişimi 30 ms kararlılık filtresinden geçer.
Türkçe karakter bozukTerminal ve log dosyalarının UTF‑8 kullandığını doğrulayın. Web paneli UTF‑8 olarak servis edilir.
Devreye alma testi

Önce yüksüz veya güvenli düşük gerilimli bir test devresiyle Röle 1’i aç/kapatın; ardından input değişimini tetikleyip panelde doğru inputName ve io değerlerini gözlemleyin.