تخطٍّ إلى المحتوى

قالب الخط الزمني

مخطّط sparkline فوري لتتبّع القيم عبر الزمن. يرسل كل إشعار نقطة بيانات؛ يجمع الخادم السجلّ ويسلّم بيانات الـ sparkline إلى iOS عبر الإشعارات.

عرض توضيحي لـ Live Activity

Fields

FieldTypeDescription
templatestringRequired. Must be "timeline"
valueobjectThe data point(s) for this push. Required. A labeled map (e.g. {\"CPU\": 72.5} or {\"CPU\": 72.5, \"GPU\": 45.2}). Max 10 series, 32-char keys
unitstringUnit suffix on value display (e.g. "°C", "%"). Max 32 characters. Used as fallback when units is set
unitsobjectPer-series unit overrides. Keys must match value keys; missing keys fall back to unit. Max 32-char values
scalestringY-axis scaling: "linear" (default) or "logarithmic"
decimalsintegerDecimal places for display. null = auto-detect. Range 0–10
smoothingbooleanCurve interpolation between points. Default: false (straight segments)
thresholdsarrayUp to 5 horizontal reference lines. Each has value (required), color, and label (max 12 chars)
statestringStatus text (e.g. "Heating", "Monitoring")
iconstringSF Symbol name (e.g. "chart.xyaxis.line") or MDI icon with mdi: prefix
accent_colorstringNamed color or hex. Default: teal
قادم في إصدار التطبيق 1.3.3
معلومة

The server accumulates history automatically — each push appends a timestamped data point. The history field in the response is read-only (client-supplied history is ignored). Up to 300 points per series are stored; APNs payloads are dynamically downsampled via LTTB to fit 4KB while preserving peaks and visual shape.

Example: Single Value

مراقبة درجة حرارة الخادم
{
  "state": "ongoing",
  "content": {
    "template": "timeline",
    "value": {"Temperature": 13.7},
    "unit": "°C",
    "state": "Heating",
    "icon": "thermometer.medium",
    "accent_color": "orange",
    "smoothing": true
  }
}

Example: Multi-Value with Thresholds

صحة النظام بوحدات مختلطة
{
  "state": "ongoing",
  "content": {
    "template": "timeline",
    "value": {
      "CPU": 72.5,
      "GPU": 45.2,
      "Fan": 60.0,
      "SSD": 38.1
    },
    "unit": "%",
    "units": { "GPU": "°C", "SSD": "°C" },
    "state": "Monitoring",
    "primary_series": "CPU",
    "thresholds": [
      { "value": 80, "color": "red", "label": "Critical" },
      { "value": 60, "color": "orange" }
    ]
  }
}
قادم في إصدار التطبيق 1.3.3

يصف هذا القسم ميزة في تحديث للتطبيق قيد مراجعة App Store. يُفتح هنا تلقائيًا بمجرد أن يصبح التحديث متاحًا.

Typical Flow

  1. Start tracking (ended -> ongoing): Set initial value, unit, and display options (scale, smoothing, thresholds)
  2. Send data points (ongoing -> ongoing): Push updated values — the sparkline grows with each push
  3. Stop tracking (ongoing -> ended): Final value displayed, sparkline frozen
💡 نصيحة

Value-only updates are delivered at low priority to conserve the iOS push budget. Changing scale, smoothing, decimals, unit, or units triggers high-priority delivery.

Buttons & tap targets

Renders url_action and secondary_url_action as buttons below the sparkline; tap_action covers taps elsewhere on the widget. See Tap actions for the action object shape.

Use Cases

  • Server monitoring — CPU temperature, memory usage, network throughput over time
  • Smart home — room temperature trends, humidity tracking, energy consumption
  • 3D printing — hotend/bed temperature curves during a print
  • CI/CD — build time trends, test suite duration over consecutive runs
  • IoT — sensor readings over time with threshold alerts