Antodis

Seshat .NET SDK

TR | EN

.NET SDK

Async sayfalama, tiplendirilmiş IoT modelleri, Makineler servisi.

Kurulum

Paket bilgisi alınıyor…

NuGet

Paket bilgisi alınıyor…

İstemci Başlatma

var client = new SeshatClient(apiKey, secret, new SeshatClientOptions {
  Host = "localhost", // seshat sunucusu
  Company = "<company>"
});

Sensörler

var fo = client.Sensors.FindOpts();
fo.Name = "temp"; fo.Tag = "critical"; fo.All = true;
await client.Sensors.FindEachPageAsync(fo, (items, total, page, limit) => {
  // sayfa
  return true;
});
var q = client.Sensors.IoTQueryOptions()
    .SensorId("sensor123")
    .PerPage(50)
    .SortByDateDesc();
var data = await client.Sensors.GetIoTDataAsync(q);
if (data?.Items != null){ foreach (var it in data.Items){ /* it.Value */ } }

Dönüşler

Sensor özellikleri (C#)

SensorValue

Makineler

var mo = new MachinesService.FindOptions{ Tag = "production" };
var res = await client.Machines.FindAsync(mo);
var list = res?.Data; var total = res?.Total ?? 0;

Dönüşler

Machine alanları (C#)

FindOptions özeti

Canlı

// Sensör servisi üzerinden doğrudan canlı akış (dayanıklı)
await client.Sensors.LiveWithAsync(new[]{"sensor123"}, null, (sensorId, value, type) => {
   Console.WriteLine($"{sensorId}: {value}");
});

Veri Tipleri (type → C#)

IoT Verisi

var q = client.Sensors.IoTQueryOptions()
    .SensorId("sensor-1")
    .PerPage(100)
    .SortByDateDesc()
    .Start("2024-01-01T00:00:00Z")
    .End("2024-01-02T00:00:00Z");
var data = await client.Sensors.GetIoTDataAsync(q);
var changes = await client.Sensors.GetIoTDataChangesAsync(q);
if (data?.Items != null) {
    foreach (var rec in data.Items) {
        // rec.Timestamp, rec.Value, rec.Metadata
    }
}

Dönüşler

IoTDataRecord

Bağlantılar

Her sensör bir bağlantıyla ilişkilidir. MQTT'ye parametreli (ör: topic) yayınlamak için WriteItem kullanın.

// Gelişmiş: topic parametresiyle boolean yazım
var item = new SeshatSdk.Services.ConnectionsService.WriteItem {
    AnyValue = new { value = true },
    Type = 16, // bool
    Parameters = new List {
        new() { Key = "topic", Value = System.Text.Encoding.UTF8.GetBytes("67333c8d615f8c6cd6f07c38/67333c8d615f8c6cd6f07c39") }
    }
};
await client.Connections.WriteItemAsync("mqtt://0.0.0.0:8888", item);

Olaylar

var resp = await client.Events.TriggerAsync("rebuild-cache", new { fast = true });
var list = await client.Events.ListAsync();

Hata Yönetimi

try {
  var fo = client.Sensors.FindOpts();
  var page = await client.Sensors.FindAsync(fo);
} catch (HttpRequestException ex) {
  // ağ hatası
}

try {
  var q = client.Sensors.IoTQueryOptions().SensorId("sensor123").PerPage(100).SortByDateDesc();
  var data = await client.Sensors.GetIoTDataAsync(q);
} catch (Exception ex) {
  // aktarım / parse hatası
}