Esular · MQTT Veri Yapıları Kılavuzu
Esular · MQTT Veri Yapıları Kılavuzu

Esular MQTT Telemetri Veri Yapısı — Kapsamlı Kılavuz

Bu sayfa, sistemdeki tüm cihaz ve sensörlerin MQTT üzerinden gönderdiği telemetri paketlerini tek bir yerde toplar. Her bölüm; genel açıklama, anotasyonlu paket yapısı, alan-alan referans tablosu ve üzerinde oynayabileceğiniz interaktif örnek JSON içerir.

11 Cihaz Tipi Anotasyonlu Yapı Alan Referans Tabloları İnteraktif JSON

Cihaz Tipleri — Hızlı Referans

Tüm paketler ortak bir devices[ ].sensors[ ] çatısı kullanır; yalnızca iç sensör tipleri ve birimleri cihaza göre değişir. Aşağıdaki tablo, hangi tip numarasının hangi cihaza karşılık geldiğini ve topic önekini özetler.

Tip NoCihaz / SensörTopic ÖnekiPaketBölüm
6Su SayacıWM_1Git →
123Vana ÜnitesiValve_1Git →
124PompaPomp_2Git →
134Seviye SensörüLevel_1Git →
175Enerji AnalizörüEMT_1Git →
200Ortam Nem/SıcaklıkTemp_1Git →
201Toprak Nem/SıcaklıkSoil_1Git →
202Basınç SensörüPre_1Git →
203Enerji Durum SensörüPower_1Git →
208Sulama GrubuIrrigationGr_1Git →
244Bildirim (Notification)Noti_1Git →
Temel

Genel Veri Yapısı

Tüm cihazlar için ortak çatı
MQTT veri yapısında her cihaz için benzersiz bir paket iletilir. Bir paket tek bir cihaz taşıyabileceği gibi çoklu cihaz da barındırabilir. Aşağıdaki genel çerçeve tüm sensörlerde ve bildirimlerde korunur; yalnızca iç yapıdaki type / unit / value içerikleri cihaza göre değişir.
  • Topic üç parçadan oluşur. İlk iki parça ayarlanabilir, son parça sistem tarafından eklenir ve pakete göre benzersizdir.
  • İlk parça clientID ile aynıdır (ör. esular); ikinci parça /telemetry/ sabit-ayarlanabilir kısımdır.
  • Son parça genelde paketteki ilk cihazın name değerinden türetilir (ör. Pomp_44013603).
  • Paketler kablosuz haberleşme nedeniyle parça parça (chunk) gelebilir.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/Pomp_44013603   // 3 parçalı topic. 1: clientID "esular" (ayarlanabilir)
                                         // 2: "/telemetry/" (ayarlanabilir) 3: "Pomp_44013603" (sistem ekler, benzersiz)
{
  "devices": [            // Bir pakette en az 1 cihaz bulunur (cihaz listesi)
    {
      "name": "44013603",   // Benzersiz seri no. Önek=cihaz tipi, sayısal kısım=gerçek seri no
      "type": 124.0,       // Cihaz tipi (124 = pompa). Tip listesini referans tablodan kontrol edin
      "sensors": [          // Bir cihazda birden fazla sensör/ölçüm olabilir
        {
          "type": "Status", // Ölçümün adı
          "unit": "bool",   // Ölçümün birimi/tipi
          "value": 0         // Değer. Genelde float; string içerik de gelebilir
        },
        { "type": "OnTime",  "unit": "dk",  "value": 0 },
        { "type": "OffTime", "unit": "dk",  "value": 6 },
        { "type": "DIO",    "unit": "int", "value": 0 }
      ]
    }
  ]
}
Çatı Alanları
AlanAçıklama
devices[ ]Paketteki cihaz listesi. En az 1 cihaz içerir.
nameCihazın benzersiz seri numarası. Öneki cihaz tipini, sayısal kısmı gerçek seri numarasını gösterir.
typeCihazın tip numarası (ör. 124 = pompa). Hangi cihaz olduğunu belirler.
sensors[ ]Cihaza ait ölçüm listesi. Her ölçüm type / unit / value üçlüsüdür.
İnteraktif Örnek JSON
Topic: /esular/telemetry/Power_44013600

                    
Tip 6

Su Sayacı Sensörü

WM_ 1 paket
Su sayacında şu anda 1 adet MQTT paket yapısı vardır. Toplam tüketim ve anlık akış bilgisini iletir.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/WM_44017700
{
  "devices": [
    {
      "name": "WM_44017700",
      "type": 6.0,            // 6 = su sayacı
      "sensors": [
        { "type": "Volume", "unit": "m3",   "value": 23.3  // Tüketilen toplam su (m3) },
        { "type": "Flow",   "unit": "m3/h", "value": 12.45 // Anlık akış (m3/h) }
      ]
    }
  ]
}
Sensör Alanları
AlanBirimAçıklama
Volumem3Tüketilen toplam su miktarı (kümülatif endeks).
Flowm3/hAnlık akış değeri.
İnteraktif Örnek JSON
Topic: /esular/telemetry/WM_44017700

                    
Tip 123

Vana Ünitesi

Valve_ 1 paket
Vana durumunu ve vana ile ilgili süre bilgilerini iletir.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/Valve_44017706
{
  "devices": [
    {
      "name": "44017706",
      "type": 123.0,         // 123 = vana
      "sensors": [
        { "type": "Status",  "unit": "bool", "value": 0  // 0:Kapalı, 1:Açık, -1:Belirsiz },
        { "type": "OnTime",  "unit": "dk",   "value": 0  // Açık kalma süresi (dakika) },
        { "type": "OffTime", "unit": "dk",   "value": 58 // Kapalı kalma süresi (dakika) },
        { "type": "DIO",     "unit": "int",  "value": 0  // Dijital giriş/çıkış (kullanılmıyor) }
      ]
    }
  ]
}
Sensör Alanları
AlanBirimAçıklama
StatusboolVana durumu — 0: Kapalı, 1: Açık, -1: Belirsiz.
OnTimedkAçık kalma süresi (dakika).
OffTimedkKapalı kalma süresi (dakika).
DIOintDijital giriş/çıkış durumu. Şu an kullanılmıyor.
İnteraktif Örnek JSON
Topic: /esular/telemetry/Valve_44017706

                    
Tip 124

Pompa

Pomp_ 2 paket
Pompada 2 farklı MQTT paketi bulunur: Paket-1 normal pompa durumunu, Paket-2 ise enerji/güç tüketim verilerini iletir. Paket-2 genelde invertörlü sistemlerde invertör verilerini takip için kullanılır ve cihaz adının sonuna _2 eki gelir.
Paket-1 · Durum
Topic: /esular/telemetry/Pomp_44013603
{
  "devices": [
    {
      "name": "44013602",
      "type": 124.0,         // 124 = pompa
      "sensors": [
        { "type": "Status",  "unit": "bool", "value": 0 // 0:Kapalı, 1:Açık, -1:Belirsiz },
        { "type": "OnTime",  "unit": "dk",   "value": 0 // Açık kalınan süre },
        { "type": "OffTime", "unit": "dk",   "value": 6 // Kapalı kalınan süre },
        { "type": "DIO",     "unit": "int",  "value": 0 }
      ]
    }
  ]
}
Paket-2 · Güç / Enerji
Topic: /esular/telemetry/Pomp_44013600_2   // Sondaki _2 paket numarasını ifade eder
{
  "devices": [
    {
      "name": "Pomp_44013600_2",
      "sensors": [
        { "type": "Status",   "unit": "bool", "value": 0 },
        { "type": "PowerKW",  "unit": "kw",   "value": 0 // Anlık çekilen enerji },
        { "type": "PowerHP",  "unit": "hp",   "value": 0 // Hidrolik güç },
        { "type": "Current",  "unit": "A",    "value": 0 // Toplam akım },
        { "type": "Voltage",  "unit": "V",    "value": 0 // RMS voltaj }
      ]
    }
  ]
}
Sensör Alanları
PaketAlanBirimAçıklama
1StatusboolPompa çalışıyor mu — 0:Kapalı, 1:Açık, -1:Belirsiz.
1OnTimedkPompanın açık kaldığı süre.
1OffTimedkPompanın kapalı kaldığı süre.
1DIOintDijital giriş/çıkış. Kullanılmıyor.
2PowerKWkwPompanın çektiği anlık enerji.
2PowerHPhpPompanın hidrolik gücü.
2CurrentATüm fazlardan çekilen toplam akım.
2VoltageVRMS voltaj değeri.
İnteraktif Örnek — Paket-1
Topic: /esular/telemetry/Pomp_44013603

                    
İnteraktif Örnek — Paket-2
Topic: /esular/telemetry/Pomp_44013600_2

                    
Tip 134

Seviye Sensörü

Level_ 1 paket
Su seviyesi durumunu ve seviye ile ilgili ölçümleri iletir.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/Level_44017701
{
  "devices": [
    {
      "name": "44017701",
      "type": 134.0,         // 134 = su seviye sensörü
      "sensors": [
        { "type": "Status", "unit": "bool", "value": 0   // 0:Kapalı, 1:Açık, -1:Belirsiz },
        { "type": "Value",  "unit": "%",    "value": 100 // Havuz seviyesi (% — doğrudan seviye) },
        { "type": "Length", "unit": "cm",   "value": 0   // Suyun sensöre uzaklığı (cm) },
        { "type": "Type",   "unit": "int",  "value": 0   // Sensör tipi (ultrasonik/şamandıra/2-prob… aktif kullanılmıyor) }
      ]
    }
  ]
}
Sensör Alanları
AlanBirimAçıklama
StatusboolSeviye durumu — 0:Kapalı, 1:Açık, -1:Belirsiz.
Value%Yüzde cinsinden havuz/depo seviyesi. Doğrudan seviyeyi gösterir.
LengthcmSuyun sensöre uzaklığı (cm).
TypeintSensör tipi (ultrasonik, şamandıra, 2-prob vb.). Şu an aktif kullanılmıyor.
İnteraktif Örnek JSON
Topic: /esular/telemetry/Level_44017701

                    
Tip 175

Enerji Analizörü

EMT_ 1 paket · ~60 alan
Enerji analizörü, üç fazlı şebekeye dair voltaj, akım, anlık güç, güç faktörü, enerji sayaçları (kWh/kvarh/kVAh) ve harmonik bozulma değerlerini tek pakette iletir. Alan sayısı çok olduğundan aşağıda gruplanmış referans tablosu ile birlikte verilmiştir. unit: "f" ifadesi cihazdan gelen ham float değeri belirtir.
Paket Yapısı (özet)
Topic: /esular/telemetry/EMT_44017700
{
  "devices": [
    {
      "name": "44017700_17",
      "type": 175.0,     // 175 = enerji analizörü
      "sensors": [
        { "type": "Status", "unit": "bool", "value": 0 // 0:Okuma yok, 1:Okuma yapıldı, -1:Belirsiz },
        { "type": "F",    "unit": "hz", "value": 0 // Frekans },
        { "type": "kWa",  "unit": "kw", "value": 0 // A fazı anlık güç },
        { "type": "kWb",  "unit": "kw", "value": 0 },
        { "type": "kWc",  "unit": "kw", "value": 0 },
        // … Uan/Ubn/Ucn, Uab/Ubc/Uca, UAvg (voltajlar)
        // … Ia/Ib/Ic, IAvg (akımlar)
        // … kvar*, kVA*, PF* (reaktif/görünür güç, güç faktörü)
        // … kWh*/kvarh*/kVAh* (enerji sayaçları)  ·  THaD/THbD/THcD (harmonik)
      ]
    }
  ]
}
Gruplanmış Alan Referansı
GrupAlanlarBirimAçıklama
DurumStatusboolOkuma durumu — 0:Okuma yok, 1:Okuma yapıldı, -1:Belirsiz.
FrekansFhzŞebeke frekansı.
Anlık GüçkWa kWb kWc kWTkw / fFaz A/B/C ve toplam (T) anlık aktif güç.
Faz-Nötr VoltajUan Ubn UcnVFaz-nötr gerilimleri.
Faz-Faz VoltajUab Ubc Uca UAvgVFaz-faz gerilimleri ve ortalama.
AkımIa Ib Ic IAvgAFaz akımları ve ortalama.
Reaktif Güçkvara kvarb kvarc kvarTfFaz ve toplam reaktif güç.
Görünür GüçkVAa kVAb kVAc kVATfFaz ve toplam görünür güç.
Güç FaktörüPFa PFb PFc PFTfFaz ve toplam güç faktörü.
AçılarUAng IaAn IbAn IcAnfGerilim ve akım faz açıları.
Aktif EnerjikWhI kWhE kWhN kWhTfİçe/Dışa/Net/Toplam aktif enerji sayacı.
Reaktif EnerjikvarhI kvarhE kvarhN kvarhTfİçe/Dışa/Net/Toplam reaktif enerji.
Görünür EnerjikVAhI kVAhE kVAhN kVAhTfİçe/Dışa/Net/Toplam görünür enerji.
Endüktif ReaktifkvarhEndI/E/N/TfEndüktif reaktif enerji sayaçları.
Kapasitif ReaktifkvarhCapI/E/N/TfKapasitif reaktif enerji sayaçları.
HarmonikTHaD THbD THcDfFaz bazlı toplam harmonik bozulma (THD).
Not: Bu pakette alanların büyük çoğunluğu cihaz tarafından ham float (unit: "f") olarak gönderilir; ölçeklendirme ve birim yorumu uygulama tarafında yapılır.
İnteraktif Örnek JSON
Topic: /esular/telemetry/EMT_44017700

                    
Tip 200

Ortam Nem/Sıcaklık Sensörü

Temp_ 1 paket
Ortam (hava) sıcaklığı ve nem değerini iletir.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/Temp_10004100
{
  "devices": [
    {
      "name": "10004100",
      "type": 200.0,         // 200 = ortam nem/sıcaklık sensörü
      "sensors": [
        { "type": "Temp", "unit": "C", "value": 17.98 // Sıcaklık (°C) },
        { "type": "Hum",  "unit": "%", "value": 0     // Nem (%) }
      ]
    }
  ]
}
Sensör Alanları
AlanBirimAçıklama
TempCOrtam sıcaklığı (°C).
Hum%Ortam nem değeri (%).
İnteraktif Örnek JSON
Topic: /esular/telemetry/Temp_10004100

                    
Tip 201

Toprak Nem/Sıcaklık Sensörü

Soil_ 1 paket
Toprak sıcaklığı ve nem değerini iletir.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/Soil_44017700
{
  "devices": [
    {
      "name": "44017700",
      "type": 201.0,         // 201 = toprak nem/sıcaklık sensörü
      "sensors": [
        { "type": "Temp", "unit": "C", "value": 17.98 // Toprak sıcaklığı (°C) },
        { "type": "Hum",  "unit": "%", "value": 65    // Toprak nemi (%) }
      ]
    }
  ]
}
Sensör Alanları
AlanBirimAçıklama
TempCToprak sıcaklığı (°C).
Hum%Toprak nem değeri (%).
İnteraktif Örnek JSON
Topic: /esular/telemetry/Soil_44017700

                    
Tip 202

Basınç Sensörü

Pre_ 1 paket
Anlık basınç değerini, sensör tipini ve ölçülen min/max basınçları iletir.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/Pre_44017701
{
  "devices": [
    {
      "name": "44017701",
      "type": 202.0,         // 202 = basınç sensörü
      "sensors": [
        { "type": "Status",   "unit": "bool", "value": 0    // 0:Normal, 1:Hatalı basınç, -1:Belirsiz },
        { "type": "Value",    "unit": "bar",  "value": 1.23 // Anlık basınç },
        { "type": "Type",     "unit": " ",    "value": 2    // 0:None, 1:Limit, 2:4-20mA, 3:0-10V },
        { "type": "MaxValue", "unit": "bar",  "value": 0    // Maksimum ölçülen basınç },
        { "type": "MinValue", "unit": "bar",  "value": 0    // Minimum ölçülen basınç }
      ]
    }
  ]
}
Sensör Alanları
AlanBirimAçıklama
Statusbool0:Normal basınç, 1:Hatalı basınç, -1:Belirsiz.
ValuebarAnlık basınç verisi.
TypeintSensör tipi — 0:None, 1:Limit, 2:4-20mA, 3:0-10V.
MaxValuebarMaksimum ölçülen basınç.
MinValuebarMinimum ölçülen basınç.
İnteraktif Örnek JSON
Topic: /esular/telemetry/Pre_44017701

                    
Tip 203

Enerji Durum Sensörü

Power_ 1 paket
Cihazın besleme/enerji durumunu, pil seviyesini ve enerji/pil tiplerini iletir.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/Power_44013600
{
  "devices": [
    {
      "name": "44013600",
      "type": 203.0,             // 203 = enerji durum cihazı
      "sensors": [
        { "type": "Status",       "unit": "bool", "value": 1    // 1:Besleme var },
        { "type": "BatteryLevel", "unit": "%",    "value": 98.5 // Pil seviyesi (%) },
        { "type": "PowerType",    "unit": "int",  "value": 1    // 0:None, 1:ExternalDC, 2:ExternalAC },
        { "type": "BatteryType",  "unit": "int",  "value": 3    // 0:None,1:9V,2:3V6,3:Şarjlı-Li,4:External }
      ]
    }
  ]
}
Sensör Alanları
AlanBirimAçıklama
StatusboolEnerji durumu — 0:Kapalı, 1:Açık (besleme var), -1:Belirsiz.
BatteryLevel%Yüzde cinsinden pil seviyesi (float).
PowerTypeintEnerji tipi — 0:None, 1:ExternalDC, 2:ExternalAC.
BatteryTypeintPil tipi — 0:None, 1:Tek kullanım 9V, 2:Tek kullanım 3V6, 3:Şarjlı Lityum, 4:External.
İnteraktif Örnek JSON
Topic: /esular/telemetry/Power_44013600

                    
Tip 208

Sulama Grubu

IrrigationGr_ 1 paket
Bir sulama grubunun çalışma durumunu, ilerleme yüzdesini ve süre bilgilerini iletir.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/IrrigationGr_44017733
{
  "devices": [
    {
      "name": "44017733",
      "type": 208.0,           // 208 = sulama grubu
      "sensors": [
        { "type": "Status",      "unit": "bool", "value": 0  // 1:Running,2:WillStop,3:Stop,4:Error,5:Calibre },
        { "type": "IsActive",    "unit": "bool", "value": 0  // Grup aktif mi },
        { "type": "Percent",     "unit": "%",    "value": 75 // Sulama yüzdesi },
        { "type": "WorkingTime", "unit": "dk",   "value": 10 // Maksimum çalışma süresi },
        { "type": "OnTime",      "unit": "dk",   "value": 7  // Geçen sulama süresi }
      ]
    }
  ]
}
Sensör Alanları
AlanBirimAçıklama
StatusboolGrup durumu — 1:Running (çalışıyor), 2:WillStop, 3:Stop, 4:Error, 5:Calibre.
IsActiveboolGrup aktif mi.
Percent%Sulamanın hangi oranda yapıldığını gösteren yüzde.
WorkingTimedkMaksimum çalışma süresi (dakika).
OnTimedkSulama açıkken geçen süre (dakika).
İnteraktif Örnek JSON
Topic: /esular/telemetry/IrrigationGr_44017733

                    
Tip 244

Bildirim (Notification)

Noti_ 1 paket
type: 244 paketin bir bildirim olduğunu gösterir. name alanı, bildirimin ilgili olduğu cihazın seri numarasını taşır; içerideki sensör alanları bildirimin türünü ve detayını ifade eder.
Anotasyonlu Paket Yapısı
Topic: /esular/telemetry/Noti_44017701
{
  "devices": [
    {
      "name": "44017701",        // Bildirimin ilgili olduğu cihazın seri no'su
      "type": 244.0,           // 244 = bildirim paketi
      "sensors": [
        { "type": "Type",       "unit": "int", "value": 1 // 0:None,1:Alert,2:Danger,3:Info,4:Warning,5:Success },
        { "type": "DeviceType", "unit": "int", "value": 0 // İlgili cihazın tipi },
        { "type": "InType",     "unit": "int", "value": 0 // Detaylı bildirim kodu (aşağıdaki tabloya bakın) }
      ]
    }
  ]
}
Sensör Alanları
AlanBirimAçıklama
TypeintBildirim tipi — 0:None, 1:Alert, 2:Danger, 3:Info, 4:Warning, 5:Success.
DeviceTypeintBildirimin ilgili olduğu cihazın tipi.
InTypeintDetaylı (iç) bildirim kodu — aşağıdaki tabloya bakın.
InType — Detaylı Bildirim Kodları
KodSabitAnlamı
0Noti_Inner_NoneDetay yok.
1Noti_Inner_RefreshTimeoutYenileme zaman aşımı.
2Noti_Inner_ValueNotChangedDeğer değişmedi.
3Noti_Inner_MaxErrorMaksimum sınır hatası.
4Noti_Inner_MinErrorMinimum sınır hatası.
5Noti_Inner_GoneCihaz iletişimi kayboldu.
6Noti_Inner_ComeCihaz iletişimi geri geldi.
7Noti_Inner_WorkingErrorÇalışma hatası.
8Noti_Inner_TWorkingErrorZamanlı çalışma hatası.
9Noti_Inner_TimeOutErrorZaman aşımı hatası.
10Noti_Inner_SuccessBaşarılı.
İnteraktif Örnek JSON
Topic: /esular/telemetry/Noti_44017701

                    

Yakında Eklenecek Yapılar

Hazırlanıyor
Aşağıdaki cihaz tiplerinin MQTT veri yapısı henüz yayınlanmamıştır; tanımlandıkça bu sayfaya eklenecektir.
  • Arazi veri yapısı — Arazilerin gönderdiği MQTT verinin yapısı.
  • İklim istasyonu sensörü — İklim istasyonu telemetri paketi.
İhtiyaç duyduğunuz ek bir cihaz/paket tipi varsa, mevcut devices[ ].sensors[ ] çatısı korunarak kolayca eklenebilir.