EDITO COMO TUTORIAL PARA CONSEGUIR MÁS DATOS DEL NESTInicié este hilo para pedir ayuda en el último paso y lo he arreglado por un error absurdo.
Siguiendo los pasos es posible conseguir la humedad, si Nest ha realizado petición a la caldera, temperatura máxima y mínima, etc...
La idea es crear un sensor HTML por cada valor que interese obtener por medio de la API de Nest.
Pasos:
- Primero hay que crearse una cuenta de desarrollador en la web "developer.nest.com" y crear un "producto" (siguiendo los pasos de la web de desarrollador de Nest es lo primero que se pide), simplemente para poder pedir la API por http.
- Hay que asegurarse de no poner nada en el espacio de "Redirect URI"
- Una vez que tenemos el producto creado tendremos en el lateral varios datos importantes: Product ID, Product Secret, Authorization URL, Authorization Token.
- Utilizando la
Authorization URL y aceptando los permisos llegaremos a una página en la que nos dan un PIN DE AUTORIZACIÓN.
-Desde un Terminal escribimos:
curl -X Ptoken" -d "code=PIN DE AUTORIZACIÓN" -d "client_id=ID DE CLIENTE" -d "client_secret=CODIGO SECRETO" -d "grant_type=authorization_code" "
https://api.home.nest.com/oauth2/access_token"
(EL ID de Cliente aparece en la URL donde recibimos el PIN)
- Nos devolverá un código TOKEN con el formato: "c.K89ufe......" (empieza por "c.")
- Con el Token utilizando esta URL "
https://developer-api.nest.com/devices?auth=TOKEN" recibiremos todos los datos en formato JSON.
Ejemplo:
{"thermostats":{"xxxxxxxxxxxxxxxxx":{"humidity":40,"locale":"es-US","temperature_scale":"C","is_using_emergency_heat":false,"has_fan":false,"software_version":"5.1.6rc4","has_leaf":false,"where_id":"xxxxxxxxxxxxxxxxxx","device_id":"xxxxxxxxxxxxxxxxxxxxx","name":"Living Room","can_heat":true,"can_cool":false,"hvac_mode":"heat","target_temperature_c":23.0,"target_temperature_f":73,"target_temperature_high_c":24.0,"target_temperature_high_f":75,"target_temperature_low_c":20.0,"target_temperature_low_f":68,"ambient_temperature_c":19.0,"ambient_temperature_f":66,"away_temperature_high_c":24.0,"away_temperature_high_f":76,"away_temperature_low_c":6.0,"away_temperature_low_f":43,"structure_id":"xxxxxxxxxxxxxxxxxxxxx","fan_timer_active":false,"name_long":"Living Room Thermostat","is_online":true,"last_connection":"2016-01-24T09:40:11.981Z","hvac_state":"heating"}}}
- Creamos un dispositivo nuevo en eedomus eligiendo Sensor HTML.
- En la URL de petición copiamos la URL anterior y en la Ruta XPATH ponemos el valor que queremos obtener (ejemplo: //humidity nos daría la humedad).
- Hay que marcar la casilla de conversión de JSON a XML y ya estaría todo.