interactua-con-el-api-de-smartlife-desde-net-con-smartlifenet

Interactua con el API de SmartLife desde .NET con SmartLifeNET

SmartLifeNET es un API escrito en .NET Standard que nos permite interactuar directamente con al API de SmartLife usando las credenciales de usuario usadas por la aplicación oficial.

Con SmartLifeNET es compatible con Windows, Linux y MAC, Android e iOS, y permite realizar acciones en los dispositivos o obtener mediciones (temperatura, humedad, consumo eléctrico… ) de aquellos dispositivos que dispongan de tal funcionalidad.

Algunas de las características claves de SmartLifeNET son:

  • Encender y apagar dispositivos
  • Leer medidas (humedad, temperatura…)
  • Multiplataforma

Para dispositivos controlados por eWelink visita la librería eWelinkNET

Basic usage

Aquí tenemos un ejemplo básico de cómo emplear SmartLifeNET.

var smart = new SmartLife(email, password);
await smart.Connect();
await smart.InitDevices();

var device = smart.Devices.FirstOrDefault(x => x is SmartLifeNet.Classes.SwitchDevice) as SmartLifeNet.Classes.SwitchDevice;
await device?.SetState(1);

Obtener credenciales

Podemos obtener las credenciales necesarias para realizar las acciones necesarias mediante nuestro Email y Password.

var smart = new SmartLife(email, password);
var credentials = await smart.GetCredentials();

alternativamente, puedes guardar las credenciales obtenidas para evitar tener que hacer login posteriormente.

smart.StoreCredenditalsToFile();

Posteriormente, podemos recuperar las credenciales haciendo.

smart.RestoreCredenditalsFromFile();

Get Devices

Podemos obtener los dispositivos registrados en tu cuenta SmartLife .

var smart = new SmartLife(email, password);
await smart.Connect();
await smart.InitDevices();

Los dispositivos se convierten en las siguientes clases.

  • SwitchDevice
  • MultiSwitchDevice

Todos ellas derivan de la clase base ‘Device’.

Interactuar con los dispositivos

Cada clase dispone de sus propios métodos para realizar las acciones permitidas por el tipo de dispositivo.

Así, por ejemplo, ‘SingleSwitchDevice’ proporciona,

  • TurnOn()
  • TurnOff()

Mientras que ‘MultiSwitchDevice’ proporciona,

  • TurnOn()
  • TurnOn(int channel)
  • TurnOff()
  • TurnOff(int channel)

Descarga el código

SmartLife es un desarrollo OpenSource. El código de esta entrada está disponible para su descarga en GitHub. github-full