Skip to main content

Sentez Rule Engine

Sentez katmanı ham segment verilerinden Cınga skorlarını üretir. Bu katmanda kritik kararlar: rule versioning, deterministic sıralama, cihaz özel + global fallback ve stream bazlı snapshot tutarlılığıdır.

Rule Tablosu: synthesis_variable_rules

KolonTipNot
idbigint PKKural kimliği
device_idvarchar(21) FK0 ise global kural
variable_idvarchar(30) FKÜretilecek hedef değişken
priorityintegerÇalıştırma sırası
required_variablesjsonbGirdi listesi
conditionsjsonbKoşullar
calculationjsonbFormül / işlem tanımı
min_value, max_valuedouble precisionClamp sınırı
statusbooleanAktif/Pasif
rule_versionintegerSürüm
rule_hashvarchar(64)Snapshot hash
create_time, update_timetimestamptzİzleme

Kural Önceliği

  1. Cihaza özel (device_id = gerçek cihaz)
  2. Global (device_id = '0')

Aynı stream içinde tek rule snapshot kullanılmalıdır.

V1 Basic Synth Kolonları (energy_measurements_synth)

vur, vsr, iu, load_ratio, pf_calc, tsi, distribution_drift_i, distribution_drift_v, score_grid, score_load, score_stress, score_trend, grid_score, health_score, severity_level, health_label.

Pencere-Dışı Sınır

Aşağıdaki metrikler synth tablosunda tutulmaz, energy_windows katmanında tutulur:

  • p10/p50/p90 (window bazlı),
  • skewness, kurtosis,
  • rolling trend/maruziyet serileri.

Örnek Kural Kayıtları

AlanVURLOAD_RATIO
device_id96000000C49BB67096000000C49BB670
variable_idVURLOAD_RATIO
priority1020
required_variablesVA_RMS,VB_RMS,VC_RMSWATT_T,P_NOM
conditionsall_not_null=trueP_NOM > 0
exprmax(abs(...))/avg(...)WATT_T/P_NOM
min/max0 / 10 / 2

Rule Validation Checklist

  • cycle kontrolü (A→B→C→A engeli)
  • min_value <= max_value
  • parse edilebilir güvenli formül
  • aktif kural çakışma kontrolü
  • deterministic sıra: priority ASC, id ASC