{"files":{"SKILL.md":"---\nname: netatmo\ndescription: \"Netatmo API skill. Use when working with Netatmo for getpublicdata, getuser, devicelist. Covers 22 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Netatmo\nAPI version: 1.1.5\n\n## Auth\nOAuth2 | OAuth2\n\n## Base URL\nhttps://api.netatmo.net/api\n\n## Setup\n1. Configure auth: OAuth2 | OAuth2\n2. GET /getpublicdata -- retrieves publicly shared weather data from outdoor modules within a predefined area.\n3. POST /syncschedule -- create first syncschedule\n\n## Endpoints\n22 endpoints across 22 groups. See references/api-spec.lap for full details.\n\n### Getpublicdata\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /getpublicdata | Retrieves publicly shared weather data from Outdoor Modules within a predefined area. |\n\n### Getuser\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /getuser | The method getuser returns information about a user such as prefered language, prefered units, and list of devices. |\n\n### Devicelist\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /devicelist | The method devicelist returns the list of devices owned by the user, and their modules. |\n\n### Getmeasure\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /getmeasure | The method getmeasure returns the measurements of a device or a module. |\n\n### Getthermostatsdata\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /getthermostatsdata | The method getthermostatsdata returns information about user's thermostats such as their last measurements. |\n\n### Getstationsdata\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /getstationsdata | The method getstationsdata Returns data from a user's Weather Stations (measures and device specific data). |\n\n### Gethomecoachsdata\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /gethomecoachsdata | The method gethomecoachsdata Returns data from a user Healthy Home Coach Station (measures and device specific data). |\n\n### Getthermstate\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /getthermstate | The method getthermstate returns the last Thermostat measurements, its current weekly schedule, and, if present, its current manual temperature setpoint. |\n\n### Syncschedule\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /syncschedule | The method syncschedule changes the Thermostat weekly schedule. |\n\n### Setthermpoint\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /setthermpoint | The method setthermpoint changes the Thermostat manual temperature setpoint. |\n\n### Switchschedule\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /switchschedule | The method switchschedule switches the Thermostat's schedule to another existing schedule. |\n\n### Createnewschedule\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /createnewschedule | The method createnewschedule creates a new schedule stored in the backup list. |\n\n### Partnerdevices\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /partnerdevices | The method partnerdevices returns the list of device_id to which your partner application has access to. |\n\n### Gethomedata\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /gethomedata | Returns information about users homes and cameras. |\n\n### Getcamerapicture\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /getcamerapicture | Returns the snapshot associated to an event. |\n\n### Geteventsuntil\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /geteventsuntil | Returns the snapshot associated to an event. |\n\n### Getlasteventof\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /getlasteventof | Returns most recent events. |\n\n### Getnextevents\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /getnextevents | Returns previous events. |\n\n### Setpersonsaway\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /setpersonsaway | Sets a person as 'Away' or the Home as 'Empty'. The event will be added to the user’s timeline. |\n\n### Setpersonshome\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /setpersonshome | Sets a person as 'At home'. |\n\n### Addwebhook\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /addwebhook | Links a callback url to a user. |\n\n### Dropwebhook\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /dropwebhook | Dissociates a webhook from a user. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all getpublicdata?\" -> GET /getpublicdata\n- \"List all getuser?\" -> GET /getuser\n- \"List all devicelist?\" -> GET /devicelist\n- \"List all getmeasure?\" -> GET /getmeasure\n- \"List all getthermostatsdata?\" -> GET /getthermostatsdata\n- \"List all getstationsdata?\" -> GET /getstationsdata\n- \"List all gethomecoachsdata?\" -> GET /gethomecoachsdata\n- \"List all getthermstate?\" -> GET /getthermstate\n- \"Create a syncschedule?\" -> POST /syncschedule\n- \"Create a setthermpoint?\" -> POST /setthermpoint\n- \"Create a switchschedule?\" -> POST /switchschedule\n- \"Create a createnewschedule?\" -> POST /createnewschedule\n- \"List all partnerdevices?\" -> GET /partnerdevices\n- \"List all gethomedata?\" -> GET /gethomedata\n- \"List all getcamerapicture?\" -> GET /getcamerapicture\n- \"List all geteventsuntil?\" -> GET /geteventsuntil\n- \"List all getlasteventof?\" -> GET /getlasteventof\n- \"List all getnextevents?\" -> GET /getnextevents\n- \"Create a setpersonsaway?\" -> POST /setpersonsaway\n- \"Create a setpersonshome?\" -> POST /setpersonshome\n- \"List all addwebhook?\" -> GET /addwebhook\n- \"List all dropwebhook?\" -> GET /dropwebhook\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Netatmo\n@base https://api.netatmo.net/api\n@version 1.1.5\n@auth OAuth2 | OAuth2\n@endpoints 22\n@hint download_for_search\n@toc getpublicdata(1), getuser(1), devicelist(1), getmeasure(1), getthermostatsdata(1), getstationsdata(1), gethomecoachsdata(1), getthermstate(1), syncschedule(1), setthermpoint(1), switchschedule(1), createnewschedule(1), partnerdevices(1), gethomedata(1), getcamerapicture(1), geteventsuntil(1), getlasteventof(1), getnextevents(1), setpersonsaway(1), setpersonshome(1), addwebhook(1), dropwebhook(1)\n\n@group getpublicdata\n@endpoint GET /getpublicdata\n@desc Retrieves publicly shared weather data from Outdoor Modules within a predefined area.\n@required {lat_ne: any # Latitude of the north east corner of the requested area. -85 lat_sw, lon_ne: any # Longitude of the north east corner of the requested area. -180 lon_sw, lat_sw: any # Latitude of the south west corner of the requested area. -85 <= lat_sw <= 85, lon_sw: any # Longitude of the south west corner of the requested area. -180 <= lon_sw <= 180}\n@optional {required_data: any # 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., filter: any # True to exclude stations with abnormal temperature measures. Default is false.}\n@returns(200) Successful response\n\n@endgroup\n\n@group getuser\n@endpoint GET /getuser\n@desc The method getuser returns information about a user such as prefered language, prefered units, and list of devices.\n@returns(200) Successful response\n\n@endgroup\n\n@group devicelist\n@endpoint GET /devicelist\n@desc The method devicelist returns the list of devices owned by the user, and their modules.\n@optional {app_type: any # Defines which device type will be returned by devicelist. It could be app_thermostat or app_station (by default if not provided), device_id: any # Specify a device_id if you want to retrieve only this device informations., get_favorites: any # When set to \"true\", the favorite devices of the user are returned. This flag is available only if the devices requested are Weather Stations.}\n@returns(200) Successful response\n\n@endgroup\n\n@group getmeasure\n@endpoint GET /getmeasure\n@desc The method getmeasure returns the measurements of a device or a module.\n@required {device_id: any # Id of the device whose module's measurements you want to retrieve. This _id can be found in the user's devices field., scale: any # 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, type: any # 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}\n@optional {module_id: any # 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., date_begin: any # Starting timestamp (utc) of the requested measurements. Please note measurement retrieving is limited to 1024 measurements., date_end: any # 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`., limit: any # Limits the number of measurements returned (default & max is 1024), optimize: any # 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`., real_time: any # 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`.}\n@returns(200) Successful response\n\n@endgroup\n\n@group getthermostatsdata\n@endpoint GET /getthermostatsdata\n@desc The method getthermostatsdata returns information about user's thermostats such as their last measurements.\n@optional {device_id: any # Id of the device you want to retrieve information of}\n@returns(200) Successful response\n\n@endgroup\n\n@group getstationsdata\n@endpoint GET /getstationsdata\n@desc The method getstationsdata Returns data from a user's Weather Stations (measures and device specific data).\n@optional {device_id: any # Id of the device you want to retrieve information of, get_favorites: any # Whether to include the user's favorite Weather Stations in addition to the user's own Weather Stations}\n@returns(200) Successful response\n\n@endgroup\n\n@group gethomecoachsdata\n@endpoint GET /gethomecoachsdata\n@desc The method gethomecoachsdata Returns data from a user Healthy Home Coach Station (measures and device specific data).\n@optional {device_id: any # Id of the device you want to retrieve information of}\n@returns(200) Successful response\n\n@endgroup\n\n@group getthermstate\n@endpoint GET /getthermstate\n@desc The method getthermstate returns the last Thermostat measurements, its current weekly schedule, and, if present, its current manual temperature setpoint.\n@required {device_id: any # The relay id, module_id: any # The thermostat id}\n@returns(200) Successful response\n\n@endgroup\n\n@group syncschedule\n@endpoint POST /syncschedule\n@desc The method syncschedule changes the Thermostat weekly schedule.\n@required {device_id: any # The relay id, module_id: any # The thermostat id, therm_program: any # The thermostat program (zones, timetable and name)}\n@returns(200) Successful response\n\n@endgroup\n\n@group setthermpoint\n@endpoint POST /setthermpoint\n@desc The method setthermpoint changes the Thermostat manual temperature setpoint.\n@required {device_id: any # The relay id, module_id: any # The thermostat id, setpoint_mode: any # Chosen setpoint_mode}\n@optional {setpoint_endtime: any # When using the manual or max setpoint_mode, this parameter defines when the setpoint expires., setpoint_temp: any # When using the manual setpoint_mode, this parameter defines the temperature setpoint (in Celcius) to use.}\n@returns(200) Successful response\n\n@endgroup\n\n@group switchschedule\n@endpoint POST /switchschedule\n@desc The method switchschedule switches the Thermostat's schedule to another existing schedule.\n@required {device_id: any # The relay id, module_id: any # The thermostat id, schedule_id: any # The schedule id. It can be found in the getthermstate response, under the keys `therm_program_backup` and `therm_program`.}\n@returns(200) Successful response\n\n@endgroup\n\n@group createnewschedule\n@endpoint POST /createnewschedule\n@desc The method createnewschedule creates a new schedule stored in the backup list.\n@required {device_id: any # The relay id, module_id: any # The thermostat id, therm_program: any # The thermostat program (zones and timetable)}\n@returns(200) Successful response\n\n@endgroup\n\n@group partnerdevices\n@endpoint GET /partnerdevices\n@desc The method partnerdevices returns the list of device_id to which your partner application has access to.\n@returns(200) Successful response\n\n@endgroup\n\n@group gethomedata\n@endpoint GET /gethomedata\n@desc Returns information about users homes and cameras.\n@optional {home_id: any # Specify if you're looking for the events of a specific Home., size: any # Number of events to retrieve. Default is `30`.}\n@returns(200) Successful response\n\n@endgroup\n\n@group getcamerapicture\n@endpoint GET /getcamerapicture\n@desc Returns the snapshot associated to an event.\n@required {image_id: any # id of the image (can be retrieved as 'id' in 'face' in Gethomedata, or as 'id' in 'snapshot' in Getnextevents, Getlasteventof and Geteventsuntil), key: any # Security key to access snapshots.}\n@returns(200) Successful response\n\n@endgroup\n\n@group geteventsuntil\n@endpoint GET /geteventsuntil\n@desc Returns the snapshot associated to an event.\n@required {home_id: any # ID of the Home you're interested in, event_id: any # Your request will retrieve all the events until this one}\n@returns(200) Successful response\n\n@endgroup\n\n@group getlasteventof\n@endpoint GET /getlasteventof\n@desc Returns most recent events.\n@required {home_id: any # ID of the Home you're interested in, person_id: any # Your request will retrieve all events of the given home until the most recent event of the given person}\n@optional {offset: any # Number of events to retrieve. Default is 30.}\n@returns(200) Successful response\n\n@endgroup\n\n@group getnextevents\n@endpoint GET /getnextevents\n@desc Returns previous events.\n@required {home_id: any # ID of the Home you're interested in, event_id: any # Your request will retrieve events occured before this one}\n@optional {size: any # Number of events to retrieve. Default is 30.}\n@returns(200) Successful response\n\n@endgroup\n\n@group setpersonsaway\n@endpoint POST /setpersonsaway\n@desc Sets a person as 'Away' or the Home as 'Empty'. The event will be added to the user’s timeline.\n@required {home_id: any # ID of the Home you're interested in}\n@optional {person_id: any # 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'.}\n@returns(200) Successful response\n\n@endgroup\n\n@group setpersonshome\n@endpoint POST /setpersonshome\n@desc Sets a person as 'At home'.\n@required {home_id: any # ID of the Home you're interested in, person_ids: any # List of persons IDs}\n@returns(200) Successful response\n\n@endgroup\n\n@group addwebhook\n@endpoint GET /addwebhook\n@desc Links a callback url to a user.\n@required {url: any # Your webhook callback url, app_type: any # Webhooks are only available for Welcome, enter app_camera.}\n@returns(200) Successful response\n\n@endgroup\n\n@group dropwebhook\n@endpoint GET /dropwebhook\n@desc Dissociates a webhook from a user.\n@required {app_type: any # For Welcome, use app_camera}\n@returns(200) Successful response\n\n@endgroup\n\n@end\n"}}