Saltar al contenido

Plantilla de línea de tiempo

Un minigráfico en tiempo real para seguir valores a lo largo del tiempo. Cada envío añade un punto de datos; el servidor acumula el historial y entrega los datos del minigráfico a iOS mediante notificaciones push.

Demostración de 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
Llega en la versión 1.3.3 de la app
Información

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

Monitorización de temperatura del servidor
{
  "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

Estado del sistema con unidades mixtas
{
  "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" }
    ]
  }
}
Llega en la versión 1.3.3 de la app

Esta sección describe una función de una actualización de la app que está pendiente de revisión en App Store. Se desbloquea aquí automáticamente en cuanto la actualización esté disponible.

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
💡 Consejo

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