İçeriğe geç

Script API

Script API, diğer script’leri yönetme ve script’ler arası veri paylaşımı sağlar.

FonksiyonAçıklama
ins.scheduleScript(name)Script’i zamanlayıcısına göre başlat
ins.cancelScript(name)Çalışan script’i durdur
ins.executeScript(name)Script’i anında çalıştır, sonucu döndür
// Script'i zamanlayıcısına göre başlat
ins.scheduleScript("Chart_ActiveReactivePower");
// → OK
// Script'i durdur
ins.cancelScript("Chart_ActiveReactivePower");
// → OK
// Başka bir script'i anında çalıştır ve sonucunu al
var result = ins.executeScript("Calculate_DailyTotal");

Global Nesne (Script’ler Arası Veri Paylaşımı)

Section titled “Global Nesne (Script’ler Arası Veri Paylaşımı)”

Script’ler birbirinden izole çalışır. Ancak setGlobalObject / getGlobalObject ile script’ler arası veri paylaşımı yapılabilir.

FonksiyonAçıklama
ins.setGlobalObject(name, obj)Paylaşımlı nesne kaydet
ins.getGlobalObject(name)Paylaşımlı nesneyi oku
ins.setGlobalObject(name, obj, ms)TTL ile paylaşımlı nesne (otomatik silinir)
// Script A: değer kaydet
ins.setGlobalObject("daily_counter", 42);
// Script B: değeri oku
var counter = ins.getGlobalObject("daily_counter");
// → 42
// Script A: vardiya bilgisi kaydet
ins.setGlobalObject("shift_data", {
shift: "A",
count: 150,
startTime: ins.now().toString()
});
// Script B: vardiya bilgisini oku
var data = ins.getGlobalObject("shift_data");

Yanıt:

{
"shift": "A",
"count": 150,
"startTime": "Sat Mar 28 12:10:21 TRT 2026"
}

Belirli süre sonra otomatik silinen geçici veri:

// 60 saniye sonra otomatik silinecek cache
ins.setGlobalObject("temp_cache", {value: 99}, 60000);
var cached = ins.getGlobalObject("temp_cache");
// → { value: 99 }
// 60 saniye sonra → null
// Senaryo 1: Periyodik script hesaplama sonucunu UI script'ine aktar
// Backend script (her 10 saniye):
var power = ins.getVariableValue("ActivePower_kW").value;
var voltage = ins.getVariableValue("Voltage_V").value;
ins.setGlobalObject("dashboard_summary", {
power: power,
voltage: voltage,
updatedAt: ins.now().toString()
});
// Frontend/UI script:
var summary = ins.getGlobalObject("dashboard_summary");
// Senaryo 2: Rate limiting — son çalışma zamanını kontrol et
var lastRun = ins.getGlobalObject("report_last_run");
var now = ins.now().getTime();
if (!lastRun || (now - lastRun) > 3600000) {
// 1 saatten fazla olmuş, raporu çalıştır
ins.scheduleReport("hourly_report");
ins.setGlobalObject("report_last_run", now);
}