Schemas

Pet treat dispenser camera

A composed HomeTruth object that requires both Camera and TreatDispenser capabilities.

https://hometruth.ai/schemas/pet-treat-dispenser-camera · PetTreatDispenserCamera

Instances

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://hometruth.ai/schemas/pet-treat-dispenser-camera",
  "title": "Pet treat dispenser camera",
  "description": "A HomeTruth object that must combine Camera and TreatDispenser capabilities; a MotionSensor when the product's on-device detection reaches HomeTruth.",
  "type": "object",
  "allOf": [
    {
      "$ref": "https://hometruth.ai/schemas/object"
    },
    {
      "type": "object",
      "properties": {
        "capabilities": {
          "type": "object",
          "properties": {
            "camera": {},
            "treatDispenser": {}
          },
          "required": [
            "camera",
            "treatDispenser"
          ]
        }
      },
      "required": [
        "capabilities"
      ]
    }
  ],
  "examples": [
    {
      "schemaVersion": 1,
      "id": "kitchen-pet-camera",
      "name": "Kitchen treat camera",
      "capabilities": {
        "camera": {
          "id": "main",
          "state": {
            "availability": "online",
            "streamAvailable": true,
            "snapshotAvailable": true
          },
          "actions": {
            "snapshot": {
              "mediaTypes": [
                "image/jpeg"
              ]
            },
            "pan": {
              "left": {
                "minLeaseMs": 100,
                "maxLeaseMs": 3000
              },
              "right": {
                "minLeaseMs": 100,
                "maxLeaseMs": 3000
              }
            },
            "stopMovement": {}
          }
        },
        "treatDispenser": {
          "id": "treats",
          "state": {
            "availability": "online"
          },
          "actions": {
            "dispense": {
              "minimumPortions": 1,
              "maximumPortions": 1,
              "step": 1,
              "confirmation": "confirm"
            }
          }
        }
      }
    }
  ]
}