Aurora

Aurora · GPT 작업

Aurora

A conversational bridge to your Philips Hue Lights. Shape your ambiance with a simple chat.

  • GET /lightsRetrieve Philips Hue lights information
  • PUT /lights/bulkUpdate Philips Hue lights status in bulk
  • PUT /lights/singleUpdate Philips Hue light status
원본 API 스키마
{
  "openapi": "3.1.0",
  "info": {
    "title": "Aurora",
    "description": "A conversational bridge to your Philips Hue Lights. Shape your ambiance with a simple chat.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.installaurora.com/v1"
    }
  ],
  "paths": {
    "/lights": {
      "get": {
        "operationId": "getLights",
        "summary": "Retrieve Philips Hue lights information",
        "parameters": [
          {
            "name": "lights",
            "in": "query",
            "description": "Custom parameter for backend logic",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "example": "Hue color lamp 2"
                          },
                          "service": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "object",
                              "properties": {
                                "rid": {
                                  "type": "string",
                                  "example": "c3a04951-d45a-4850-8fa8-c942026792d7"
                                },
                                "rtype": {
                                  "type": "string",
                                  "example": "light"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/lights/bulk": {
      "put": {
        "operationId": "updateLights",
        "summary": "Update Philips Hue lights status in bulk",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lights": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "rid": {
                          "type": "string",
                          "description": "The RID of the Philips Hue light to be updated."
                        },
                        "on": {
                          "type": "object",
                          "properties": {
                            "on": {
                              "type": "boolean",
                              "example": true
                            }
                          }
                        },
                        "dimming": {
                          "type": "object",
                          "properties": {
                            "brightness": {
                              "type": "number",
                              "maximum": 100,
                              "example": 75
                            }
                          }
                        },
                        "dimming_delta": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "up",
                                "down",
                                "stop"
                              ]
                            },
                            "brightness_delta": {
                              "type": "number",
                              "maximum": 100
                            }
                          }
                        },
                        "color_temperature": {
                          "type": "object",
                          "properties": {
                            "mirek": {
                              "type": "integer",
                              "minimum": 153,
                              "maximum": 500
                            }
                          }
                        },
                        "color_temperature_delta": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "up",
                                "down",
                                "stop"
                              ]
                            },
                            "mirek_delta": {
                              "type": "integer",
                              "maximum": 347
                            }
                          }
                        },
                        "color": {
                          "type": "object",
                          "properties": {
                            "xy": {
                              "type": "object",
                              "properties": {
                                "x": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "y": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              }
                            }
                          }
                        },
                        "dynamics": {
                          "type": "object",
                          "properties": {
                            "duration": {
                              "type": "integer"
                            },
                            "speed": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1
                            }
                          }
                        },
                        "alert": {
                          "type": "object",
                          "properties": {
                            "action": {
                              "type": "string",
                              "enum": [
                                "breathe"
                              ]
                            }
                          }
                        },
                        "signaling": {
                          "type": "object",
                          "properties": {
                            "signal": {
                              "type": "string",
                              "enum": [
                                "no_signal",
                                "on_off",
                                "on_off_color",
                                "alternating"
                              ]
                            },
                            "duration": {
                              "type": "integer"
                            },
                            "colors": {
                              "type": "array",
                              "minItems": 1,
                              "maxItems": 2,
                              "items": {
                                "type": "object",
                                "properties": {
                                  "xy": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "gradient": {
                          "type": "object",
                          "properties": {
                            "points": {
                              "type": "array",
                              "maxItems": 5,
                              "items": {
                                "type": "object",
                                "properties": {
                                  "color": {
                                    "type": "object",
                                    "properties": {
                                      "xy": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "mode": {
                              "type": "string",
                              "enum": [
                                "interpolated_palette",
                                "interpolated_palette_mirrored",
                                "random_pixelated"
                              ]
                            }
                          }
                        },
                        "effects": {
                          "type": "object",
                          "properties": {
                            "effect": {
                              "type": "string",
                              "enum": [
                                "prism",
                                "opal",
                                "glisten",
                                "sparkle",
                                "fire",
                                "candle",
                                "no_effect"
                              ]
                            }
                          }
                        },
                        "timed_effects": {
                          "type": "object",
                          "properties": {
                            "effect": {
                              "type": "string",
                              "enum": [
                                "sunrise",
                                "no_effect"
                              ]
                            },
                            "duration": {
                              "type": "integer"
                            }
                          }
                        },
                        "powerup": {
                          "type": "object",
                          "properties": {
                            "preset": {
                              "type": "string",
                              "enum": [
                                "safety",
                                "powerfail",
                                "last_on_state",
                                "custom"
                              ]
                            },
                            "on": {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "on",
                                    "toggle",
                                    "previous"
                                  ]
                                },
                                "on": {
                                  "type": "object",
                                  "properties": {
                                    "on": {
                                      "type": "boolean"
                                    }
                                  }
                                }
                              }
                            },
                            "dimming": {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "dimming",
                                    "previous"
                                  ]
                                },
                                "dimming": {
                                  "type": "object",
                                  "properties": {
                                    "brightness": {
                                      "type": "number",
                                      "maximum": 100
                                    }
                                  }
                                }
                              }
                            },
                            "color": {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "color_temperature",
                                    "color",
                                    "previous"
                                  ]
                                },
                                "color_temperature": {
                                  "type": "object",
                                  "properties": {
                                    "mirek": {
                                      "type": "integer",
                                      "minimum": 153,
                                      "maximum": 500
                                    }
                                  }
                                },
                                "color": {
                                  "type": "object",
                                  "properties": {
                                    "xy": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "anyOf": [
                        {
                          "required": [
                            "on"
                          ]
                        },
                        {
                          "required": [
                            "dimming"
                          ]
                        },
                        {
                          "required": [
                            "dimming_delta"
                          ]
                        },
                        {
                          "required": [
                            "color_temperature"
                          ]
                        },
                        {
                          "required": [
                            "color_temperature_delta"
                          ]
                        },
                        {
                          "required": [
                            "color"
                          ]
                        },
                        {
                          "required": [
                            "dynamics"
                          ]
                        },
                        {
                          "required": [
                            "alert"
                          ]
                        },
                        {
                          "required": [
                            "signaling"
                          ]
                        },
                        {
                          "required": [
                            "gradient"
                          ]
                        },
                        {
                          "required": [
                            "effects"
                          ]
                        },
                        {
                          "required": [
                            "timed_effects"
                          ]
                        },
                        {
                          "required": [
                            "powerup"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Philips Hue lights status updated successfully."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Invalid request format."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Some or all Philips Hue lights with specified RIDs not found."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/lights/single": {
      "put": {
        "operationId": "updateLight",
        "summary": "Update Philips Hue light status",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "rid": {
                    "type": "string",
                    "description": "The RID of the Philips Hue light to be updated."
                  },
                  "on": {
                    "type": "object",
                    "properties": {
                      "on": {
                        "type": "boolean",
                        "example": true
                      }
                    }
                  },
                  "dimming": {
                    "type": "object",
                    "properties": {
                      "brightness": {
                        "type": "number",
                        "maximum": 100,
                        "example": 75
                      }
                    }
                  },
                  "dimming_delta": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "up",
                          "down",
                          "stop"
                        ]
                      },
                      "brightness_delta": {
                        "type": "number",
                        "maximum": 100
                      }
                    }
                  },
                  "color_temperature": {
                    "type": "object",
                    "properties": {
                      "mirek": {
                        "type": "integer",
                        "minimum": 153,
                        "maximum": 500
                      }
                    }
                  },
                  "color_temperature_delta": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "up",
                          "down",
                          "stop"
                        ]
                      },
                      "mirek_delta": {
                        "type": "integer",
                        "maximum": 347
                      }
                    }
                  },
                  "color": {
                    "type": "object",
                    "properties": {
                      "xy": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "y": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          }
                        }
                      }
                    }
                  },
                  "dynamics": {
                    "type": "object",
                    "properties": {
                      "duration": {
                        "type": "integer"
                      },
                      "speed": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1
                      }
                    }
                  },
                  "alert": {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "enum": [
                          "breathe"
                        ]
                      }
                    }
                  },
                  "signaling": {
                    "type": "object",
                    "properties": {
                      "signal": {
                        "type": "string",
                        "enum": [
                          "no_signal",
                          "on_off",
                          "on_off_color",
                          "alternating"
                        ]
                      },
                      "duration": {
                        "type": "integer"
                      },
                      "colors": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 2,
                        "items": {
                          "type": "object",
                          "properties": {
                            "xy": {
                              "type": "object",
                              "properties": {
                                "x": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "y": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "gradient": {
                    "type": "object",
                    "properties": {
                      "points": {
                        "type": "array",
                        "maxItems": 5,
                        "items": {
                          "type": "object",
                          "properties": {
                            "color": {
                              "type": "object",
                              "properties": {
                                "xy": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "mode": {
                        "type": "string",
                        "enum": [
                          "interpolated_palette",
                          "interpolated_palette_mirrored",
                          "random_pixelated"
                        ]
                      }
                    }
                  },
                  "effects": {
                    "type": "object",
                    "properties": {
                      "effect": {
                        "type": "string",
                        "enum": [
                          "prism",
                          "opal",
                          "glisten",
                          "sparkle",
                          "fire",
                          "candle",
                          "no_effect"
                        ]
                      }
                    }
                  },
                  "timed_effects": {
                    "type": "object",
                    "properties": {
                      "effect": {
                        "type": "string",
                        "enum": [
                          "sunrise",
                          "no_effect"
                        ]
                      },
                      "duration": {
                        "type": "integer"
                      }
                    }
                  },
                  "powerup": {
                    "type": "object",
                    "properties": {
                      "preset": {
                        "type": "string",
                        "enum": [
                          "safety",
                          "powerfail",
                          "last_on_state",
                          "custom"
                        ]
                      },
                      "on": {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "on",
                              "toggle",
                              "previous"
                            ]
                          },
                          "on": {
                            "type": "object",
                            "properties": {
                              "on": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      },
                      "dimming": {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "dimming",
                              "previous"
                            ]
                          },
                          "dimming": {
                            "type": "object",
                            "properties": {
                              "brightness": {
                                "type": "number",
                                "maximum": 100
                              }
                            }
                          }
                        }
                      },
                      "color": {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "color_temperature",
                              "color",
                              "previous"
                            ]
                          },
                          "color_temperature": {
                            "type": "object",
                            "properties": {
                              "mirek": {
                                "type": "integer",
                                "minimum": 153,
                                "maximum": 500
                              }
                            }
                          },
                          "color": {
                            "type": "object",
                            "properties": {
                              "xy": {
                                "type": "object",
                                "properties": {
                                  "x": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "y": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "anyOf": [
                  {
                    "required": [
                      "on"
                    ]
                  },
                  {
                    "required": [
                      "dimming"
                    ]
                  },
                  {
                    "required": [
                      "dimming_delta"
                    ]
                  },
                  {
                    "required": [
                      "color_temperature"
                    ]
                  },
                  {
                    "required": [
                      "color_temperature_delta"
                    ]
                  },
                  {
                    "required": [
                      "color"
                    ]
                  },
                  {
                    "required": [
                      "dynamics"
                    ]
                  },
                  {
                    "required": [
                      "alert"
                    ]
                  },
                  {
                    "required": [
                      "signaling"
                    ]
                  },
                  {
                    "required": [
                      "gradient"
                    ]
                  },
                  {
                    "required": [
                      "effects"
                    ]
                  },
                  {
                    "required": [
                      "timed_effects"
                    ]
                  },
                  {
                    "required": [
                      "powerup"
                    ]
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Philips Hue light status updated successfully."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Invalid request format."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Philips Hue light with specified RID not found."
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}