openapi: 3.0.0
servers:
  - url: https://api.netatmo.net/api
info:
  contact:
    email: contact-api@netatmo.com
    name: Netatmo
  description: |
    <h3>Welcome to the Netatmo swagger on-line documentation !</h3>
    This site is a complement to the official <a href="https://dev.netatmo.com/">Netatmo developper documentation</a> using swagger to bring interactivity and easy testing of requests with the "try it" button (authenticate with the authorization code OAuth2 flow by clicking the authenticate button in the methods). You can find the source code for this site can be found in the project <a href="https://github.com/cbornet/netatmo-swagger-ui">netatmo-swagger-ui</a>. You can also use the online <a href="./swagger.json">swagger declaration</a> file to generate code or static documentation (see <a href="https://github.com/cbornet/netatmo-swagger-api">netatmo-swagger-api</a>).
  license:
    name: "Netatmo : Terms of Service"
    url: https://dev.netatmo.com/dev/resources/legal/introduction
  termsOfService: https://dev.netatmo.com/dev/resources/legal/introduction
  title: Netatmo
  version: 1.1.5
  x-apiClientRegistration:
    url: https://dev.netatmo.com/dev/createanapp
  x-apisguru-categories:
    - iot
  x-logo:
    url: https://twitter.com/netatmo/profile_image?size=original
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/cbornet/netatmo-swagger-decl/master/spec/swagger.yaml
      version: "3.0"
  x-providerName: netatmo.net
  x-unofficialSpec: true
externalDocs:
  description: Netatmo reference API documentation
  url: https://dev.netatmo.com/dev/resources/technical/reference
tags:
  - description: Weather station specific methods
    name: station
  - description: Healthy Home Coach specific methods
    name: healthyhomecoach
  - description: Thermostat specific methods
    name: thermostat
  - description: Welcome specific methods
    name: welcome
  - description: Public stations specific methods
    name: public
  - description: Partner API specific methods
    name: partner
  - description: These methods are no longer maintained nor supported
    name: deprecated
paths:
  /addwebhook:
    get:
      description: |
        Links a callback url to a user.
      operationId: addwebhook
      parameters:
        - description: Your webhook callback url
          in: query
          name: url
          required: true
          schema:
            type: string
        - description: Webhooks are only available for Welcome, enter app_camera.
          in: query
          name: app_type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAWelcomeWebhookResponse"
          description: Successful response
      security:
        - code_oauth: []
        - password_oauth: []
      tags:
        - welcome
  /createnewschedule:
    post:
      description: The method createnewschedule creates a new schedule stored in the backup list.
      operationId: createnewschedule
      parameters:
        - description: The relay id
          in: query
          name: device_id
          required: true
          schema:
            type: string
        - description: The thermostat id
          in: query
          name: module_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          text/plain:
            schema:
              $ref: "#/components/schemas/NAThermProgram"
        description: The thermostat program (zones and timetable)
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NANewScheduleResponse"
          description: Successful response
      security:
        - code_oauth:
            - write_thermostat
        - password_oauth:
            - write_thermostat
      tags:
        - thermostat
  /devicelist:
    get:
      deprecated: true
      description: |
        The method devicelist returns the list of devices owned by the user, and their modules.
        A device is identified by its _id (which is its mac address) and each device may have one, several or no modules, also identified by an _id.
      operationId: devicelist
      parameters:
        - description: Defines which device type will be returned by devicelist. It could be app_thermostat or app_station (by default if not provided)
          in: query
          name: app_type
          schema:
            enum:
              - app_thermostat
              - app_station
            type: string
        - description: Specify a device_id if you want to retrieve only this device informations.
          in: query
          name: device_id
          schema:
            type: string
        - description: When set to "true", the favorite devices of the user are returned. This flag is available only if the devices requested are Weather Stations.
          in: query
          name: get_favorites
          required: false
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NADeviceListResponse"
          description: Successful response
      security:
        - code_oauth:
            - read_thermostat
            - read_station
        - password_oauth:
            - read_thermostat
            - read_station
      tags:
        - deprecated
  /dropwebhook:
    get:
      description: |
        Dissociates a webhook from a user.
      operationId: dropwebhook
      parameters:
        - description: For Welcome, use app_camera
          in: query
          name: app_type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAWelcomeWebhookResponse"
          description: Successful response
      security:
        - code_oauth: []
        - password_oauth: []
      tags:
        - welcome
  /getcamerapicture:
    get:
      description: |
        Returns the snapshot associated to an event.
      operationId: getcamerapicture
      parameters:
        - description: id of the image (can be retrieved as 'id' in 'face' in Gethomedata, or as 'id' in 'snapshot' in Getnextevents, Getlasteventof and Geteventsuntil)
          in: query
          name: image_id
          required: true
          schema:
            type: string
        - description: Security key to access snapshots.
          in: query
          name: key
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                format: byte
                type: string
          description: Successful response
      security:
        - code_oauth: []
        - password_oauth: []
      tags:
        - welcome
  /geteventsuntil:
    get:
      description: |
        Returns the snapshot associated to an event.
      operationId: geteventsuntil
      parameters:
        - description: ID of the Home you're interested in
          in: query
          name: home_id
          required: true
          schema:
            type: string
        - description: Your request will retrieve all the events until this one
          in: query
          name: event_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAWelcomeEventResponse"
          description: Successful response
      security:
        - code_oauth:
            - access_camera
            - read_camera
        - password_oauth:
            - access_camera
            - read_camera
      tags:
        - welcome
  /gethomecoachsdata:
    get:
      description: The method gethomecoachsdata Returns data from a user Healthy Home Coach Station (measures and device specific data).
      operationId: gethomecoachsdata
      parameters:
        - description: Id of the device you want to retrieve information of
          in: query
          name: device_id
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAHealthyHomeCoachDataResponse"
          description: Successful response
      security:
        - code_oauth:
            - read_homecoach
        - password_oauth:
            - read_homecoach
      tags:
        - healthyhomecoach
  /gethomedata:
    get:
      description: |
        Returns information about users homes and cameras.
      operationId: gethomedata
      parameters:
        - description: Specify if you're looking for the events of a specific Home.
          in: query
          name: home_id
          schema:
            type: string
        - description: Number of events to retrieve. Default is `30`.
          in: query
          name: size
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAWelcomeHomeDataResponse"
          description: Successful response
      security:
        - code_oauth:
            - access_camera
            - read_camera
        - password_oauth:
            - access_camera
            - read_camera
      tags:
        - welcome
  /getlasteventof:
    get:
      description: |
        Returns most recent events.
      operationId: getlasteventof
      parameters:
        - description: ID of the Home you're interested in
          in: query
          name: home_id
          required: true
          schema:
            type: string
        - description: Your request will retrieve all events of the given home until the most recent event of the given person
          in: query
          name: person_id
          required: true
          schema:
            type: string
        - description: Number of events to retrieve. Default is 30.
          in: query
          name: offset
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAWelcomeEventResponse"
          description: Successful response
      security:
        - code_oauth:
            - access_camera
            - read_camera
        - password_oauth:
            - access_camera
            - read_camera
      tags:
        - welcome
  /getmeasure:
    get:
      description: |
        The method getmeasure returns the measurements of a device or a module.
      operationId: getmeasure
      parameters:
        - description: Id of the device whose module's measurements you want to retrieve. This _id can be found in the user's devices field.
          in: query
          name: device_id
          required: true
          schema:
            type: string
        - description: If you don't specify any module_id you will retrieve the device's measurements. If you specify a module_id you will retrieve the module's measurements.
          in: query
          name: module_id
          schema:
            type: string
        - description: |
            Defines the time interval between two measurements.
            Possible values :
            max -> every value stored will be returned
            30min -> 1 value every 30 minutes
            1hour -> 1 value every hour
            3hours -> 1 value every 3 hours
            1day -> 1 value per day
            1week -> 1 value per week
            1month -> 1 value per month
          in: query
          name: scale
          required: true
          schema:
            enum:
              - max
              - 30min
              - 1hour
              - 3hours
              - 1day
              - 1week
              - 1month
            type: string
        - description: |
            Measures you are interested in. Data you can request depends on the scale.
            **For Weather Station:**
              * max -> Temperature (°C), CO2 (ppm), Humidity (%), Pressure (mbar), Noise (db), Rain (mm), WindStrength (km/h), WindAngle (angles), Guststrength (km/h), GustAngle (angles)
              * 30min, 1hour, 3hours -> Same as above + min_temp, max_temp, min_hum, max_hum, min_pressure, max_pressure, min_noise, max_noise, sum_rain, date_max_gust
              * 1day, 1week, 1month -> Same as above + date_min_temp, date_max_temp, date_min_hum, date_max_hum, date_min_pressure, date_max_pressure, date_min_noise, date_max_noise, date_min_co2, date_max_co2

            **For Thermostat:**
              * max -> temperature (°C), sp_temperature (°C), boileron (sec), boileroff (sec)
              * 30min, 1hour, 3hours -> temperature, sp_temperature, min_temp,
            max_temp, sum_boiler_on, sum_boiler_off
              * 1day, 1week, 1month -> temperature, min_temp, date_min_temp,
            max_temp, sum_boiler_on, sum_boiler_off
          explode: false
          in: query
          name: type
          required: true
          schema:
            items:
              enum:
                - Temperature
                - CO2
                - Humidity
                - Pressure
                - Noise
                - Rain
                - WindStrength
                - WindAngle
                - Guststrength
                - GustAngle
                - Sp_Temperature
                - BoilerOn
                - BoilerOff
                - min_temp
                - date_min_temp
                - max_temp
                - date_max_temp
                - min_hum
                - date_min_hum
                - max_hum
                - date_max_hum
                - min_pressure
                - date_min_pressure
                - max_pressure
                - date_max_pressure
                - min_noise
                - date_min_noise
                - max_noise
                - date_max_noise
                - date_min_co2
                - date_max_co2
                - date_max_gust
                - sum_rain
                - sum_boiler_on
                - sum_boiler_off
              type: string
            type: array
          style: form
        - description: |
            Starting timestamp (utc) of the requested measurements.
            Please note measurement retrieving is limited to 1024 measurements.
          in: query
          name: date_begin
          schema:
            format: int32
            type: integer
        - description: |
            Ending timestamp (utc) of the request measurements.
            If you want only the last measurement, do not provide date_begin, and set date_end to `last`.
          in: query
          name: date_end
          schema:
            type: string
        - description: Limits the number of measurements returned (default & max is 1024)
          in: query
          name: limit
          schema:
            format: int32
            maximum: 1024
            type: integer
        - description: |
            Allows you to choose the format of the answer.
            If you build a mobile app and bandwith usage is an issue, use `optimize = true`.
            Use `optimize = false`, for an easier parse. In this case, values are indexed by sorted timestamp.
            Example of un-optimized response :
            ```json
            {"status": "ok", 
              "body": {
                "1347575400": [18.3,39],
                "1347586200": [20.6,48]
              },
            "time_exec": 0.012136936187744}
            ```
            If optimize is set true, measurements are returned as an array of series of regularly spaced measurements. Each series is defined by a beginning time beg_time and a step between measurements, step_time:
            ```json
            {"status": "ok",
              "body": [
                {"beg_time": 1347575400,
                 "step_time": 10800,
                 "value": 
                    [[18.3,39],
                    [ 20.6,48]]
                }],
            "time_exec": 0.014238119125366}
            ```
            Default value is `true`.
          in: query
          name: optimize
          schema:
            type: boolean
        - description: |
            In scales higher than max, since the data is aggregated, the timestamps returned are by default offset by +(scale/2).
            For instance, if you ask for measurements at a daily scale, you will receive data timestamped at 12:00 if real_time is set to `false` (default case), and timestamped at 00:00 if real_time is set to `true`.
            NB : The servers always store data with real_time set to `true` and data are offset by this parameter AFTER having being time-filtered, thus you could have data after date_end if real_time is set to `false`.
          in: query
          name: real_time
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAMeasureResponse"
          description: Successful response
      security:
        - code_oauth:
            - read_thermostat
            - read_station
        - password_oauth:
            - read_thermostat
            - read_station
      tags:
        - station
        - thermostat
        - partner
        - public
  /getnextevents:
    get:
      description: |
        Returns previous events.
      operationId: getnextevents
      parameters:
        - description: ID of the Home you're interested in
          in: query
          name: home_id
          required: true
          schema:
            type: string
        - description: Your request will retrieve events occured before this one
          in: query
          name: event_id
          required: true
          schema:
            type: string
        - description: Number of events to retrieve. Default is 30.
          in: query
          name: size
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAWelcomeEventResponse"
          description: Successful response
      security:
        - code_oauth:
            - access_camera
            - read_camera
        - password_oauth:
            - access_camera
            - read_camera
      tags:
        - welcome
  /getpublicdata:
    get:
      description: Retrieves publicly shared weather data from Outdoor Modules within a predefined area.
      operationId: getpublicdata
      parameters:
        - description: Latitude of the north east corner of the requested area. -85 <= lat_ne <= 85 and lat_ne>lat_sw
          in: query
          name: lat_ne
          required: true
          schema:
            format: int32
            type: integer
        - description: Longitude of the north east corner of the requested area. -180 <= lon_ne <= 180 and lon_ne>lon_sw
          in: query
          name: lon_ne
          required: true
          schema:
            format: int32
            type: integer
        - description: Latitude of the south west corner of the requested area. -85 <= lat_sw <= 85
          in: query
          name: lat_sw
          required: true
          schema:
            format: int32
            type: integer
        - description: Longitude of the south west corner of the requested area. -180 <= lon_sw <= 180
          in: query
          name: lon_sw
          required: true
          schema:
            format: int32
            type: integer
        - description: To filter stations based on relevant measurements you want (e.g. rain will only return stations with rain gauges). Default is no filter. You can find all measurements available on the Thermostat page.
          explode: false
          in: query
          name: required_data
          schema:
            items:
              enum:
                - temperature
                - humidity
                - pressure
                - wind
                - rain
              type: string
            type: array
          style: form
        - description: True to exclude stations with abnormal temperature measures. Default is false.
          in: query
          name: filter
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAPublicDataResponse"
          description: Successful response
      security:
        - code_oauth: []
        - password_oauth: []
      tags:
        - public
  /getstationsdata:
    get:
      description: The method getstationsdata Returns data from a user's Weather Stations (measures and device specific data).
      operationId: getstationsdata
      parameters:
        - description: Id of the device you want to retrieve information of
          in: query
          name: device_id
          schema:
            type: string
        - description: Whether to include the user's favorite Weather Stations in addition to the user's own Weather Stations
          in: query
          name: get_favorites
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAStationDataResponse"
          description: Successful response
      security:
        - code_oauth:
            - read_station
        - password_oauth:
            - read_station
      tags:
        - station
  /getthermostatsdata:
    get:
      description: The method getthermostatsdata returns information about user's thermostats such as their last measurements.
      operationId: getthermostatsdata
      parameters:
        - description: Id of the device you want to retrieve information of
          in: query
          name: device_id
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAThermostatDataResponse"
          description: Successful response
      security:
        - code_oauth:
            - read_thermostat
        - password_oauth:
            - read_thermostat
      tags:
        - thermostat
  /getthermstate:
    get:
      deprecated: true
      description: The method getthermstate returns the last Thermostat measurements, its current weekly schedule, and, if present, its current manual temperature setpoint.
      operationId: getthermstate
      parameters:
        - description: The relay id
          in: query
          name: device_id
          required: true
          schema:
            type: string
        - description: The thermostat id
          in: query
          name: module_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAThermStateResponse"
          description: Successful response
      security:
        - code_oauth:
            - read_thermostat
        - password_oauth:
            - read_thermostat
      tags:
        - deprecated
  /getuser:
    get:
      deprecated: true
      description: |
        The method getuser returns information about a user such as prefered language, prefered units, and list of devices.
      operationId: getuser
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAUserResponse"
          description: Successful response
      security:
        - code_oauth: []
        - password_oauth: []
      tags:
        - deprecated
  /partnerdevices:
    get:
      description: The method partnerdevices returns the list of device_id to which your partner application has access to.
      operationId: partnerdevices
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAPartnerDevicesResponse"
          description: Successful response
      security:
        - code_oauth: []
        - password_oauth: []
      tags:
        - partner
  /setpersonsaway:
    post:
      description: |
        Sets a person as 'Away' or the Home as 'Empty'. The event will be added to the user’s timeline.
      operationId: setpersonsaway
      parameters:
        - description: ID of the Home you're interested in
          in: query
          name: home_id
          required: true
          schema:
            type: string
        - description: If a person_id is specified, that person will be set as 'Away'. If no person_id is specified, the Home will be set as 'Empty'.
          in: query
          name: person_id
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAWelcomePersonsAwayResponse"
          description: Successful response
      security:
        - code_oauth:
            - write_camera
        - password_oauth:
            - write_camera
      tags:
        - welcome
  /setpersonshome:
    post:
      description: |
        Sets a person as 'At home'.
      operationId: setpersonshome
      parameters:
        - description: ID of the Home you're interested in
          in: query
          name: home_id
          required: true
          schema:
            type: string
        - description: List of persons IDs
          in: query
          name: person_ids
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAWelcomePersonsHomeResponse"
          description: Successful response
      security:
        - code_oauth:
            - write_camera
        - password_oauth:
            - write_camera
      tags:
        - welcome
  /setthermpoint:
    post:
      description: The method setthermpoint changes the Thermostat manual temperature setpoint.
      operationId: setthermpoint
      parameters:
        - description: The relay id
          in: query
          name: device_id
          required: true
          schema:
            type: string
        - description: The thermostat id
          in: query
          name: module_id
          required: true
          schema:
            type: string
        - description: Chosen setpoint_mode
          in: query
          name: setpoint_mode
          required: true
          schema:
            enum:
              - program
              - away
              - hg
              - manual
              - off
              - max
            type: string
        - description: When using the manual or max setpoint_mode, this parameter defines when the setpoint expires.
          in: query
          name: setpoint_endtime
          schema:
            format: int32
            type: integer
        - description: When using the manual setpoint_mode, this parameter defines the temperature setpoint (in Celcius) to use.
          in: query
          name: setpoint_temp
          schema:
            format: float
            type: number
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAOkResponse"
          description: Successful response
      security:
        - code_oauth:
            - write_thermostat
        - password_oauth:
            - write_thermostat
      tags:
        - thermostat
  /switchschedule:
    post:
      description: The method switchschedule switches the Thermostat's schedule to another existing schedule.
      operationId: switchschedule
      parameters:
        - description: The relay id
          in: query
          name: device_id
          required: true
          schema:
            type: string
        - description: The thermostat id
          in: query
          name: module_id
          required: true
          schema:
            type: string
        - description: |
            The schedule id. It can be found in the getthermstate response, under the keys `therm_program_backup` and `therm_program`.
          in: query
          name: schedule_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAOkResponse"
          description: Successful response
      security:
        - code_oauth:
            - write_thermostat
        - password_oauth:
            - write_thermostat
      tags:
        - thermostat
  /syncschedule:
    post:
      description: The method syncschedule changes the Thermostat weekly schedule.
      operationId: syncschedule
      parameters:
        - description: The relay id
          in: query
          name: device_id
          required: true
          schema:
            type: string
        - description: The thermostat id
          in: query
          name: module_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          text/plain:
            schema:
              $ref: "#/components/schemas/NAThermProgram"
        description: The thermostat program (zones, timetable and name)
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NAOkResponse"
          description: Successful response
      security:
        - code_oauth:
            - write_thermostat
        - password_oauth:
            - write_thermostat
      tags:
        - thermostat
components:
  schemas:
    NADashboardData:
      properties:
        AbsolutePressure:
          description: Real measured pressure @ time_utc (in mb)
          format: float
          type: number
        BoilerOff:
          format: int32
          type: integer
        BoilerOn:
          format: int32
          type: integer
        CO2:
          description: Last Co2 measured @ time_utc (in ppm)
          format: float
          type: number
        GustAngle:
          description: Direction of the last 5 min highest gust wind
          format: int32
          type: integer
        GustStrength:
          description: Speed of the last 5 min highest gust wind
          format: int32
          type: integer
        Humidity:
          description: Last humidity measured @ time_utc (in %)
          format: float
          type: number
        Noise:
          description: Last noise measured @ time_utc (in db)
          format: float
          type: number
        Pressure:
          description: Last Sea level pressure measured @ time_utc (in mb)
          format: float
          type: number
        Rain:
          description: Last rain measured (in mm)
          format: float
          type: number
        Temperature:
          description: Last temperature measure @ time_utc (in °C)
          format: float
          type: number
        WindAngle:
          description: Current 5 min average wind direction measured @ time_utc (in °)
          format: int32
          type: integer
        WindStrength:
          description: Current 5 min average wind speed measured @ time_utc (in km/h)
          format: int32
          type: integer
        date_max_temp:
          description: Timestamp when max temperature was measured
          format: int32
          type: integer
        date_max_wind_str:
          description: Timestamp when max wind strength was measured
          format: int32
          type: integer
        date_min_temp:
          description: Timestamp when min temperature was measured
          format: int32
          type: integer
        device_id:
          format: float
          type: number
        health_idx:
          description: "Current health index: 0 = Healthy, 1 = Fine, 2 = Fair, 3 = Poor, 4 = Unhealthy"
          format: int32
          type: integer
        max_temp:
          description: Min temperature of the day (measured @ date_min_temp)
          format: float
          type: number
        max_wind_str:
          format: int32
          type: integer
        min_temp:
          description: Max temperature of the day (measured @ date_max_temp)
          format: float
          type: number
        pressure_trend:
          description: Pressure evolution trend
          type: string
        sum_rain_1:
          description: Amount of rain in last hour
          format: float
          type: number
        sum_rain_24:
          description: Amount of rain today
          format: float
          type: number
        temp_trend:
          description: Temperature evolution trend
          type: string
        time_utc:
          format: int32
          type: integer
    NADate:
      properties:
        sec:
          format: int32
          type: integer
        usec:
          format: int32
          type: integer
    NADevice:
      properties:
        _id:
          type: string
        behavior:
          format: int32
          type: integer
        cipher_id:
          type: string
        dashboard_data:
          $ref: "#/components/schemas/NADashboardData"
        data_type:
          items:
            type: string
          type: array
        date_setup:
          $ref: "#/components/schemas/NADate"
        firmware:
          format: int32
          type: integer
        first_pid_avail:
          type: boolean
        heating_system:
          $ref: "#/components/schemas/NAHeatingSystem"
        house_model:
          $ref: "#/components/schemas/NAHouseModel"
        hw_version:
          format: int32
          type: integer
        ip:
          type: string
        last_fw_update:
          format: int32
          type: integer
        last_radio_store:
          format: int32
          type: integer
        last_status_store:
          format: int32
          type: integer
        last_upgrade:
          format: int32
          type: integer
        module_name:
          type: string
        modules:
          description: It lists which modules are linked with this device
          items:
            type: string
          type: array
        new_feature_avail:
          type: boolean
        place:
          $ref: "#/components/schemas/NAPlace"
        public_ext_data:
          type: boolean
        setpoint:
          type: object
        setpoint_default_duration:
          format: int32
          type: integer
        setpoint_order:
          additionalProperties:
            items:
              $ref: "#/components/schemas/NAObject"
            type: array
          type: object
        station_name:
          type: string
        therm_program:
          additionalProperties:
            $ref: "#/components/schemas/NAThermProgram"
          type: object
        therm_program_backup:
          additionalProperties:
            items:
              $ref: "#/components/schemas/NAThermProgram"
            type: array
          type: object
        therm_program_order:
          additionalProperties:
            items:
              $ref: "#/components/schemas/NAObject"
            type: array
          type: object
        type:
          description: |
            Included in every device or module. It defines the type of the device/module. Its values are among :
            NAMain : for the base station
            NAModule1 : for the outdoor module
            NAModule4 : for the additionnal indoor module
            NAModule3 : for the rain gauge module
            NAPlug : for the thermostat relay/plug
            NATherm1 : for the thermostat module
          type: string
        udp_conn:
          type: boolean
        user_owner:
          items:
            type: string
          type: array
        wifi_status:
          description: |
            It contains the current wifi status. The different thresholds to take into account are
            RSSI_THRESHOLD_0 = 86 bad signal
            RSSI_THRESHOLD_1 = 71 middle quality signal
            RSSI_THRESHOLD_2 = 56 good signal
          format: int32
          type: integer
    NADeviceListBody:
      properties:
        devices:
          items:
            $ref: "#/components/schemas/NADevice"
          type: array
        modules:
          items:
            $ref: "#/components/schemas/NAModule"
          type: array
    NADeviceListResponse:
      properties:
        body:
          $ref: "#/components/schemas/NADeviceListBody"
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAHealthyHomeCoach:
      properties:
        _id:
          type: string
        cipher_id:
          type: string
        co2_calibrating:
          type: boolean
        dashboard_data:
          $ref: "#/components/schemas/NADashboardData"
        data_type:
          items:
            type: string
          type: array
        date_setup:
          format: int32
          type: integer
        firmware:
          format: int32
          type: integer
        last_setup:
          format: int32
          type: integer
        last_status_store:
          format: int32
          type: integer
        last_upgrade:
          format: int32
          type: integer
        name:
          type: string
        place:
          $ref: "#/components/schemas/NAPlace"
        type:
          description: |
            Included in every device or module. It defines the type of the device/module. Its values are among :
            NHC: Healthy Home Coach
          type: string
        wifi_status:
          description: |
            It contains the current wifi status. The different thresholds to take into account are
            RSSI_THRESHOLD_0 = 86 bad signal
            RSSI_THRESHOLD_1 = 71 middle quality signal
            RSSI_THRESHOLD_2 = 56 good signal
          format: int32
          type: integer
    NAHealthyHomeCoachDataBody:
      properties:
        devices:
          items:
            $ref: "#/components/schemas/NAHealthyHomeCoach"
          type: array
        user:
          $ref: "#/components/schemas/NAUser"
    NAHealthyHomeCoachDataResponse:
      properties:
        body:
          $ref: "#/components/schemas/NAHealthyHomeCoachDataBody"
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAHeatingSystem:
      properties:
        heating_energy:
          type: string
        heating_system_window_seen:
          type: boolean
    NAHouseModel:
      properties:
        algo_type:
          type: string
        ca:
          $ref: "#/components/schemas/NAHouseModelCa"
        ext_temps:
          additionalProperties:
            format: int32
            type: integer
          type: object
        first_anticipate_avail:
          type: boolean
        first_pid_avail:
          type: boolean
        gefs:
          $ref: "#/components/schemas/NAStation"
        in_use:
          type: string
        last_compute_try:
          $ref: "#/components/schemas/NADate"
        link_station:
          $ref: "#/components/schemas/NALinkStation"
        pid_algo:
          $ref: "#/components/schemas/NAPidAlgo"
        prefered_algo_type:
          type: string
        simple_algo:
          $ref: "#/components/schemas/NASimpleAlgo"
        station:
          $ref: "#/components/schemas/NAStation"
        station_firsttime_anticipate:
          type: boolean
        time:
          $ref: "#/components/schemas/NADate"
        time_algo_changed:
          format: int32
          type: integer
        time_pid_computed:
          format: int32
          type: integer
    NAHouseModelCa:
      properties:
        so:
          type: string
        te:
          format: double
          type: number
        ti:
          format: int32
          type: integer
    NALinkStation:
      properties:
        Temperature:
          format: float
          type: number
        ext:
          type: string
        mac:
          type: string
    NAMain:
      properties:
        _id:
          type: string
        cipher_id:
          type: string
        co2_calibrating:
          type: boolean
        dashboard_data:
          $ref: "#/components/schemas/NADashboardData"
        data_type:
          items:
            type: string
          type: array
        date_setup:
          format: int32
          type: integer
        favorite:
          description: true when the device is a user favorite and not owned by them
          type: boolean
        firmware:
          format: int32
          type: integer
        last_setup:
          format: int32
          type: integer
        last_status_store:
          format: int32
          type: integer
        last_upgrade:
          format: int32
          type: integer
        module_name:
          type: string
        modules:
          items:
            $ref: "#/components/schemas/NAStationModule"
          type: array
        place:
          $ref: "#/components/schemas/NAPlace"
        reachable:
          description: true when the station was seen by the Netatmo cloud within the last 4 hours
          type: boolean
        read_only:
          description: true when the user was invited to (or has favorited) a station, false when the user owns it
          type: boolean
        station_name:
          type: string
        type:
          description: |
            Included in every device or module. It defines the type of the device/module. Its values are among :
            NAMain : for the base station
            NAModule1 : for the outdoor module
            NAModule4 : for the additionnal indoor module
            NAModule3 : for the rain gauge module
            NAPlug : for the thermostat relay/plug
            NATherm1 : for the thermostat module
          type: string
        wifi_status:
          description: |
            It contains the current wifi status. The different thresholds to take into account are
            RSSI_THRESHOLD_0 = 86 bad signal
            RSSI_THRESHOLD_1 = 71 middle quality signal
            RSSI_THRESHOLD_2 = 56 good signal
          format: int32
          type: integer
    NAMeasure:
      properties:
        gust_angle:
          type: number
        gust_strength:
          type: number
        rain_24h:
          type: number
        rain_60min:
          type: number
        rain_live:
          type: number
        rain_utc:
          format: int64
          type: integer
        res:
          additionalProperties:
            items:
              format: double
              type: number
            type: array
        type:
          items:
            type: string
          type: array
        wind_angle:
          type: number
        wind_strength:
          type: number
        wind_timeutc":
          format: int64
          type: integer
    NAMeasureBodyElem:
      properties:
        beg_time:
          format: int32
          type: integer
        step_time:
          format: int32
          type: integer
        value:
          items:
            items:
              format: float
              type: number
            type: array
          type: array
    NAMeasureResponse:
      properties:
        body:
          items:
            $ref: "#/components/schemas/NAMeasureBodyElem"
          type: array
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAModule:
      properties:
        _id:
          type: string
        battery_percent:
          description: It contains the current battery level in percentage.
          format: int32
          type: integer
        battery_vp:
          description: |
            It contains the current battery status. The threshold depends on the kind of module, below is the list of the different threshold to take into account according the module type.
            "Indoor module Battery range: 6000 ... 4200" |
            INDOOR_BATTERY_LEVEL_FULL = 5640
            INDOOR_BATTERY_LEVEL_HIGH = 5280
            INDOOR_BATTERY_LEVEL_MEDIUM = 4920
            INDOOR_BATTERY_LEVEL_LOW = 4560
            "Below 4560: very low" |
                
            "Raingauge and outdoor module Battery range: 6000 ... 3600" |
            BATTERY_LEVEL_FULL = 5500
            BATTERY_LEVEL_HIGH = 5000
            BATTERY_LEVEL_MEDIUM = 4500
            BATTERY_LEVEL_LOW = 4000
            "Below 4000: very low" |
                
            "Thermostat Battery range: 4500 ... 3000" |
            THERMOSTAT_BATTERY_LEVEL_FULL = 4100
            THERMOSTAT_BATTERY_LEVEL_HIGH = 3600
            THERMOSTAT_BATTERY_LEVEL_MEDIUM = 3300
            THERMOSTAT_BATTERY_LEVEL_LOW = 3000
            "Below 3000: very low"
          format: int32
          type: integer
        dashboard_data:
          $ref: "#/components/schemas/NADashboardData"
        data_type:
          items:
            type: string
          type: array
        date_setup:
          $ref: "#/components/schemas/NADate"
        firmware:
          format: int32
          type: integer
        last_message:
          format: int32
          type: integer
        last_seen:
          format: int32
          type: integer
        main_device:
          type: string
        module_name:
          type: string
        public_ext_data:
          type: boolean
        rf_status:
          description: |
            "It contains the current radio status. The different thresholds to take into account are :" |
            RADIO_THRESHOLD_SIGNAL_LOW = 90 
            RADIO_THRESHOLD_SIGNAL_MEDIUM = 80
            RADIO_THRESHOLD_SIGNAL_HIGH = 70
            RADIO_THRESHOLD_SIGNAL_FULL = 60
          format: int32
          type: integer
        therm_orientation:
          format: int32
          type: integer
        therm_relay_cmd:
          format: int32
          type: integer
        type:
          description: |
            Included in every device or module. It defines the type of the device/module. Its values are among :
            NAMain : for the base station
            NAModule1 : for the outdoor module
            NAModule4 : for the additionnal indoor module
            NAModule3 : for the rain gauge module
            NAPlug : for the thermostat relay/plug
            NATherm1 : for the thermostat module
          type: string
    NANewScheduleBody:
      properties:
        schedule_id:
          description: |
            Id of the schedule. It can be use with the method "switchschedule" 
          type: string
    NANewScheduleResponse:
      properties:
        body:
          $ref: "#/components/schemas/NANewScheduleBody"
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAObject:
      properties:
        $id:
          type: string
    NAOkResponse:
      properties:
        body:
          type: string
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAPartnerDevicesResponse:
      properties:
        body:
          items:
            type: string
          type: array
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAPidAlgo:
      properties:
        gain:
          format: int32
          type: integer
        period:
          format: int32
          type: integer
        td:
          format: int32
          type: integer
        ti:
          format: int32
          type: integer
    NAPlace:
      properties:
        altitude:
          format: float
          type: number
        city:
          type: string
        country:
          type: string
        from_ip:
          type: boolean
        improveLocProposed:
          type: boolean
        location:
          items:
            format: double
            type: number
          type: array
        timezone:
          type: string
        trust_location:
          type: boolean
    NAPlug:
      properties:
        _id:
          example: 70:ee:50:09:f0:xx
          type: string
        firmware:
          format: int32
          type: integer
        last_bilan:
          $ref: "#/components/schemas/NAYearMonth"
        last_plug_seen:
          format: int32
          type: integer
        last_status_store:
          format: int32
          type: integer
        modules:
          items:
            $ref: "#/components/schemas/NAThermostat"
          type: array
        place:
          $ref: "#/components/schemas/NAPlace"
        plug_connected_boiler:
          format: int32
          type: integer
        station_name:
          type: string
        syncing:
          type: boolean
        type:
          description: |
            Included in every device or module. It defines the type of the device/module. Its values are among :
            NAMain : for the base station
            NAModule1 : for the outdoor module
            NAModule4 : for the additionnal indoor module
            NAModule3 : for the rain gauge module
            NAPlug : for the thermostat relay/plug
            NATherm1 : for the thermostat module
          type: string
        udp_conn:
          type: boolean
        wifi_status:
          description: |
            It contains the current wifi status. The different thresholds to take into account are
            RSSI_THRESHOLD_0 = 86 bad signal
            RSSI_THRESHOLD_1 = 71 middle quality signal
            RSSI_THRESHOLD_2 = 56 good signal
          format: int32
          type: integer
    NAPublicData:
      properties:
        _id:
          description: id of the station
          example: 70:ee:50:09:f0:xx
          type: string
        mark:
          type: integer
        measures:
          additionalProperties:
            $ref: "#/components/schemas/NAMeasure"
          type: object
        module_types:
          additionalProperties:
            type: string
          description: Latest measurements of the station, organized by module
          type: object
        modules:
          items:
            type: string
          type: array
        place:
          $ref: "#/components/schemas/NAPlace"
    NAPublicDataResponse:
      properties:
        body:
          items:
            $ref: "#/components/schemas/NAPublicData"
          type: array
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NASetpoint:
      properties:
        setpoint_endtime:
          format: int32
          type: integer
        setpoint_mode:
          type: string
        setpoint_temp:
          format: float
          type: number
    NASetpointLog:
      properties:
        setpoint:
          $ref: "#/components/schemas/NASetpoint"
        timestamp:
          format: int64
          type: integer
    NASimpleAlgo:
      properties:
        high_deadband:
          format: int32
          type: integer
    NAStation:
      properties:
        lag_down:
          format: int32
          type: integer
        lag_up:
          format: int32
          type: integer
        off_overshoot:
          format: float
          type: number
        on_overshoot:
          format: float
          type: number
        pk:
          format: int32
          type: integer
        tau:
          format: int32
          type: integer
    NAStationDataBody:
      properties:
        devices:
          items:
            $ref: "#/components/schemas/NAMain"
          type: array
        user:
          $ref: "#/components/schemas/NAUser"
    NAStationDataResponse:
      properties:
        body:
          $ref: "#/components/schemas/NAStationDataBody"
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAStationModule:
      properties:
        _id:
          type: string
        battery_percent:
          description: It contains the current battery level in percentage.
          format: int32
          type: integer
        battery_vp:
          description: |
            It contains the current battery status. The threshold depends on the kind of module, below is the list of the different threshold to take into account according the module type.
            "Indoor module Battery range: 6000 ... 4200" |
            INDOOR_BATTERY_LEVEL_FULL = 5640
            INDOOR_BATTERY_LEVEL_HIGH = 5280
            INDOOR_BATTERY_LEVEL_MEDIUM = 4920
            INDOOR_BATTERY_LEVEL_LOW = 4560
            "Below 4560: very low" |
                
            "Raingauge and outdoor module Battery range: 6000 ... 3600" |
            BATTERY_LEVEL_FULL = 5500
            BATTERY_LEVEL_HIGH = 5000
            BATTERY_LEVEL_MEDIUM = 4500
            BATTERY_LEVEL_LOW = 4000
            "Below 4000: very low" |
                
            "Thermostat Battery range: 4500 ... 3000" |
            THERMOSTAT_BATTERY_LEVEL_FULL = 4100
            THERMOSTAT_BATTERY_LEVEL_HIGH = 3600
            THERMOSTAT_BATTERY_LEVEL_MEDIUM = 3300
            THERMOSTAT_BATTERY_LEVEL_LOW = 3000
            "Below 3000: very low"
          format: int32
          type: integer
        dashboard_data:
          $ref: "#/components/schemas/NADashboardData"
        data_type:
          items:
            type: string
          type: array
        firmware:
          format: int32
          type: integer
        last_message:
          format: int32
          type: integer
        last_seen:
          format: int32
          type: integer
        last_setup:
          format: int32
          type: integer
        module_name:
          type: string
        reachable:
          description: true when the station was seen by the Netatmo cloud within the last 4 hours
          type: boolean
        rf_status:
          description: |
            "It contains the current radio status. The different thresholds to take into account are :" |
            RADIO_THRESHOLD_SIGNAL_LOW = 90 
            RADIO_THRESHOLD_SIGNAL_MEDIUM = 80
            RADIO_THRESHOLD_SIGNAL_HIGH = 70
            RADIO_THRESHOLD_SIGNAL_FULL = 60
          format: int32
          type: integer
        type:
          description: |
            Included in every device or module. It defines the type of the device/module. Its values are among :
            NAMain : for the base station
            NAModule1 : for the outdoor module
            NAModule4 : for the additionnal indoor module
            NAModule3 : for the rain gauge module
            NAPlug : for the thermostat relay/plug
            NATherm1 : for the thermostat module
          type: string
    NAThermMeasure:
      properties:
        setpoint_temp:
          format: float
          type: number
        temperature:
          format: float
          type: number
        time:
          format: int32
          type: integer
    NAThermProgram:
      properties:
        name:
          type: string
        program_id:
          type: string
        selected:
          type: boolean
        timetable:
          items:
            $ref: "#/components/schemas/NATimeTableItem"
          type: array
        zones:
          items:
            $ref: "#/components/schemas/NAZone"
          type: array
    NAThermStateBody:
      properties:
        battery_percent:
          description: It contains the current battery level in percentage.
          format: int32
          type: integer
        battery_vp:
          format: int32
          type: integer
        last_plug_seen:
          format: int32
          type: integer
        last_therm_seen:
          format: int32
          type: integer
        measured:
          $ref: "#/components/schemas/NAThermMeasure"
        plug_connected_boiler:
          format: int32
          type: integer
        rf_status:
          format: int32
          type: integer
        setpoint:
          $ref: "#/components/schemas/NASetpoint"
        setpoint_order:
          $ref: "#/components/schemas/NASetpoint"
        therm_orientation:
          format: int32
          type: integer
        therm_program:
          $ref: "#/components/schemas/NAThermProgram"
        therm_program_backup:
          items:
            $ref: "#/components/schemas/NAThermProgram"
          type: array
        therm_program_order:
          $ref: "#/components/schemas/NAThermProgram"
        therm_relay_cmd:
          format: int32
          type: integer
        udp_conn:
          type: boolean
        wifi_status:
          format: int32
          type: integer
    NAThermStateResponse:
      properties:
        body:
          $ref: "#/components/schemas/NAThermStateBody"
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAThermostat:
      properties:
        _id:
          type: string
        battery_percent:
          description: It contains the current battery level in percentage.
          format: int32
          type: integer
        battery_vp:
          description: |
            It contains the current battery status. The threshold depends on the kind of module, below is the list of the different threshold to take into account according the module type.
            "Indoor module Battery range: 6000 ... 4200" |
            INDOOR_BATTERY_LEVEL_FULL = 5640
            INDOOR_BATTERY_LEVEL_HIGH = 5280
            INDOOR_BATTERY_LEVEL_MEDIUM = 4920
            INDOOR_BATTERY_LEVEL_LOW = 4560
            "Below 4560: very low" |
                
            "Raingauge and outdoor module Battery range: 6000 ... 3600" |
            BATTERY_LEVEL_FULL = 5500
            BATTERY_LEVEL_HIGH = 5000
            BATTERY_LEVEL_MEDIUM = 4500
            BATTERY_LEVEL_LOW = 4000
            "Below 4000: very low" |
                
            "Thermostat Battery range: 4500 ... 3000" |
            THERMOSTAT_BATTERY_LEVEL_FULL = 4100
            THERMOSTAT_BATTERY_LEVEL_HIGH = 3600
            THERMOSTAT_BATTERY_LEVEL_MEDIUM = 3300
            THERMOSTAT_BATTERY_LEVEL_LOW = 3000
            "Below 3000: very low"
          format: int32
          type: integer
        firmware:
          format: int32
          type: integer
        last_message:
          format: int32
          type: integer
        last_therm_seen:
          format: int32
          type: integer
        measured:
          $ref: "#/components/schemas/NAThermMeasure"
        module_name:
          type: string
        rf_status:
          description: |
            "It contains the current radio status. The different thresholds to take into account are :" |
            RADIO_THRESHOLD_SIGNAL_LOW = 90 
            RADIO_THRESHOLD_SIGNAL_MEDIUM = 80
            RADIO_THRESHOLD_SIGNAL_HIGH = 70
            RADIO_THRESHOLD_SIGNAL_FULL = 60
          format: int32
          type: integer
        setpoint:
          $ref: "#/components/schemas/NASetpoint"
        setpoint_history:
          description: The last 20 setpoints (mode, endtime, and timestamp) the thermostats has entered.
          items:
            $ref: "#/components/schemas/NASetpointLog"
          type: array
        setpoint_order:
          $ref: "#/components/schemas/NASetpoint"
        therm_orientation:
          format: int32
          type: integer
        therm_program_list:
          description: List of the weekly heating planning used by the thermostat
          items:
            $ref: "#/components/schemas/NAThermProgram"
          type: array
        therm_relay_cmd:
          format: int32
          type: integer
        type:
          description: |
            Included in every device or module. It defines the type of the device/module. Its values are among :
            NAMain : for the base station
            NAModule1 : for the outdoor module
            NAModule4 : for the additionnal indoor module
            NAModule3 : for the rain gauge module
            NAPlug : for the thermostat relay/plug
            NATherm1 : for the thermostat module
          type: string
    NAThermostatDataBody:
      properties:
        devices:
          items:
            $ref: "#/components/schemas/NAPlug"
          type: array
        user:
          $ref: "#/components/schemas/NAUser"
    NAThermostatDataResponse:
      properties:
        body:
          $ref: "#/components/schemas/NAThermostatDataBody"
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NATimeTableItem:
      properties:
        id:
          format: int32
          type: integer
        m_offset:
          format: int32
          type: integer
    NAUser:
      properties:
        _id:
          type: string
        administrative:
          $ref: "#/components/schemas/NAUserAdministrative"
        date_creation:
          $ref: "#/components/schemas/NADate"
        devices:
          description: An array of string containing the ids of the devices owned by the user
          items:
            type: string
          type: array
        friend_devices:
          description: |
            An array of string containing the ids of the devices on which the user has a "guest" access
          items:
            type: string
          type: array
        mail:
          type: string
        timeline_not_read:
          format: int32
          type: integer
        timeline_size:
          format: int32
          type: integer
    NAUserAdministrative:
      properties:
        country:
          description: user country
          type: string
        feel_like_algo:
          description: algorithm used to compute feel like temperature, 0 -> humidex, 1 -> heat-index
          type: string
        lang:
          description: user locale
          type: string
        pressureunit:
          description: 0 -> mbar, 1 -> inHg, 2 -> mmHg
          type: string
        reg_locale:
          description: user regional preferences (used for displaying date)
          type: string
        unit:
          description: 0 -> metric system, 1 -> imperial system
          type: string
        windunit:
          description: 0 -> kph, 1 -> mph, 2 -> ms, 3 -> beaufort, 4 -> knot
          type: string
    NAUserResponse:
      properties:
        body:
          $ref: "#/components/schemas/NAUser"
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAWelcomeCamera:
      properties:
        alim_status:
          description: If power supply is ok (on/off)
          type: string
        id:
          description: Id of the camera
          type: string
        is_local:
          description: Only for scope access_camera. If Camera and application requesting the information are on the same IP (true/false)
          type: boolean
        light_mode_status:
          description: State of (flood-)light
          enum:
            - on
            - off
            - auto
          type: string
        name:
          description: Name of the camera
          type: string
        sd_status:
          description: If SD card status is ok (on/off)
          type: string
        status:
          description: If camera is monitoring (on/off)
          type: string
        type:
          description: Type of the camera
          type: string
        vpn_url:
          description: Only for scope access_camera. Address of the camera
          type: string
    NAWelcomeEvent:
      properties:
        camera_id:
          description: Camera that detected the event
          type: string
        category:
          description: Type of the detected object.
          enum:
            - human
            - animal
            - vehicle
          type: string
        event_list:
          items:
            $ref: "#/components/schemas/NAWelcomeSubEvent"
          type: array
        id:
          description: Identifier of the event
          type: string
        is_arrival:
          description: If person was considered away before being seen during this event
          type: boolean
        message:
          description: User facing event description
          type: string
        person_id:
          description: Id of the person the event is about (if any)
          type: string
        snapshot:
          $ref: "#/components/schemas/NAWelcomeSnapshot"
        sub_type:
          description: Subtypes of SD and Alim events. Go to Welcome page for further details.
          format: int32
          type: integer
        time:
          description: Time of occurence of event
          format: int32
          type: integer
        type:
          description: Type of events. Go to the Welcome page for further details.
          type: string
        video_id:
          description: Identifier of the video
          type: string
        video_status:
          description: Status of the video (recording, deleted or available)
          type: string
    NAWelcomeEventData:
      properties:
        events_list:
          items:
            $ref: "#/components/schemas/NAWelcomeEvent"
          type: array
    NAWelcomeEventResponse:
      properties:
        body:
          $ref: "#/components/schemas/NAWelcomeEventData"
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAWelcomeFace:
      properties:
        id:
          description: Id of the face.
          type: string
        key:
          description: Key for this face to use in getcamerapicture.
          type: string
        version:
          description: Version of the face if user changed their photo.
          format: int32
          type: integer
    NAWelcomeGlobalInfo:
      properties:
        show_tags:
          description: show tags
          type: boolean
    NAWelcomeHome:
      properties:
        cameras:
          items:
            $ref: "#/components/schemas/NAWelcomeCamera"
          type: array
        events:
          items:
            $ref: "#/components/schemas/NAWelcomeEvent"
          type: array
        id:
          description: Id of the home.
          type: string
        modules:
          items:
            $ref: "#/components/schemas/NAWelcomeModule"
          type: array
        name:
          description: Name of the home
          type: string
        persons:
          items:
            $ref: "#/components/schemas/NAWelcomePerson"
          type: array
        place:
          $ref: "#/components/schemas/NAWelcomePlace"
    NAWelcomeHomeData:
      properties:
        global_info:
          $ref: "#/components/schemas/NAWelcomeGlobalInfo"
        homes:
          items:
            $ref: "#/components/schemas/NAWelcomeHome"
          type: array
        user:
          $ref: "#/components/schemas/NAWelcomeUser"
    NAWelcomeHomeDataResponse:
      properties:
        body:
          $ref: "#/components/schemas/NAWelcomeHomeData"
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAWelcomeModule:
      properties:
        battery_percent:
          description: remaining battery percentage
          format: int32
          type: integer
        id:
          description: mac address of the module
          type: string
        last_activity:
          description: Timestamp of last move detected by the module
          format: int32
          type: integer
        name:
          description: name of the module (given by the user)
          type: string
        rf:
          description: Radio status
          type: string
        status:
          description: status of the module
          type: string
        type:
          description: NACamDoorTag for tags
          type: string
    NAWelcomePerson:
      properties:
        face:
          $ref: "#/components/schemas/NAWelcomeFace"
        id:
          description: Id of the person.
          type: string
        last_seen:
          description: Time at which the person was last seen.
          format: int32
          type: integer
        out_of_sight:
          description: True if the Person is out of sight.
          type: boolean
        pseudo:
          description: Name of the person, if pseudo is missing, person is unknown.
          type: string
    NAWelcomePersonsAwayResponse:
      properties:
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAWelcomePersonsHomeResponse:
      properties:
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
        time_server:
          format: int32
          type: integer
    NAWelcomePlace:
      properties:
        city:
          description: City of the home.
          type: string
        country:
          description: Country of the home.
          type: string
        timezone:
          description: Timezone of the home.
          type: string
    NAWelcomeSnapshot:
      properties:
        id:
          description: Id of the snapshot.
          type: string
        key:
          description: Key for this snapshot.
          type: string
        version:
          description: Version of the snapshot.
          format: int32
          type: integer
    NAWelcomeSubEvent:
      properties:
        id:
          description: Identifier of the sub event
          type: string
        message:
          description: User facing sub event description
          type: string
        offset:
          format: int32
          type: integer
        snapshot:
          $ref: "#/components/schemas/NAWelcomeSnapshot"
        time:
          description: Time of occurence of the sub event
          format: int32
          type: integer
        type:
          description: Type of the detected object.
          enum:
            - human
            - animal
            - vehicle
          type: string
    NAWelcomeUser:
      properties:
        lang:
          description: user locale
          type: string
        reg_locale:
          description: user regional preferences (used for displaying date)
          type: string
    NAWelcomeWebhookResponse:
      properties:
        status:
          example: ok
          type: string
        time_exec:
          format: double
          type: number
    NAYearMonth:
      properties:
        m:
          format: int32
          type: integer
        y:
          format: int32
          type: integer
    NAZone:
      properties:
        id:
          format: int32
          type: integer
        name:
          type: string
        temp:
          format: float
          type: number
        type:
          format: int32
          type: integer
  securitySchemes:
    code_oauth:
      flows:
        authorizationCode:
          authorizationUrl: https://api.netatmo.net/oauth2/authorize
          scopes:
            access_camera: Access welcome camera
            read_camera: Read welcome camera's data
            read_homecoach: Read data coming from Healthy Home Coach
            read_station: Read weather station's data
            read_thermostat: Read thermostat's data
            write_camera: Write welcome camera's data
            write_thermostat: Configure the thermostat
          tokenUrl: https://api.netatmo.net/oauth2/token
      type: oauth2
    password_oauth:
      flows:
        password:
          scopes:
            access_camera: Access welcome camera
            read_camera: Read welcome camera's data
            read_homecoach: Read data coming from Healthy Home Coach
            read_station: Read weather station's data
            read_thermostat: Read thermostat's data
            write_camera: Write welcome camera's data
            write_thermostat: Configure the thermostat
          tokenUrl: https://api.netatmo.net/oauth2/token
      type: oauth2
