{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/sense/main/json-schema/sense-realtime-payload.json",
  "title": "Sense Realtime Payload",
  "description": "Real-time power snapshot delivered via WebSocket or the /realtime_update REST endpoint. Contains whole-home wattage, solar output, grid exchange, voltage, frequency, and currently active devices.",
  "type": "object",
  "properties": {
    "w": {
      "type": "number",
      "description": "Current whole-home power consumption in watts.",
      "minimum": 0,
      "example": 1234.5
    },
    "solar_w": {
      "type": "number",
      "description": "Current solar panel production in watts. Zero for non-solar monitors.",
      "minimum": 0,
      "example": 850.0
    },
    "grid_w": {
      "type": "number",
      "description": "Net grid exchange in watts. Positive indicates import from grid; negative indicates export to grid.",
      "example": 384.5
    },
    "hz": {
      "type": "number",
      "description": "AC grid frequency in hertz.",
      "minimum": 50,
      "maximum": 70,
      "example": 60.01
    },
    "voltage": {
      "type": "array",
      "description": "AC voltage readings per electrical leg in volts. US residential panels report two legs.",
      "items": {
        "type": "number",
        "minimum": 0,
        "maximum": 300
      },
      "minItems": 1,
      "maxItems": 4,
      "example": [121.2, 120.8]
    },
    "devices": {
      "type": "array",
      "description": "List of currently active detected devices and their power draw.",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Device ID"
          },
          "name": {
            "type": "string",
            "description": "Device name"
          },
          "icon": {
            "type": "string",
            "description": "Device icon identifier"
          },
          "w": {
            "type": "number",
            "description": "Current device power consumption in watts",
            "minimum": 0
          }
        },
        "required": ["id", "name", "w"]
      }
    }
  }
}
