Share your thoughts with the community


Get in touch

Lelylan use different channels to answer at your questions. Choose the one that fits you the most and let us know about problems, ideas, collaborations and anything else pops up in your mind.

Beta Limitations

We do our best to provide a highly reliable, scalable, and resilient service. However, Lelylan is still in beta and temporary interruptions of the service could happen. We apologize in advance for any inconvenience.


Frequently Asked Questions


Devices and Physical Devices Differences

The differences between a Device and a Physical Device (aka Physicals) isn't always clear.

  • Device - Is the virtual representation of any object. A device can be simulate all interaction or can be connected to the physical world by setting the physical attribute.
  • Physical device - Is the physical object you interact with in the real world. It's can be connected to a Device to let Lelylan control the real world.

Value, Expected and Pending

A device can be monitored or controlled through the value param. The problem is that using only value you can't have a full control of your device's status. Think at a window. How can I distinguish the actual opening level from the desired one? How can I know when it's finally open? To solve those problems Lelylan let you update a property using three params.

  • value - Represents the actual value of the physical device property.
  • expected - Represents the expected property value for the physical device property.
  • pending - A property is pending when the expected value and value doesn't match.

Real world example

1. You decide to open the window with your mobile app. When doing so you set the expected level to 100 and set the pending status to true. The device will be pending until the physical device does totally open the window.

2. The physical device sends some intermediate messages to Lelylan notifying Lelylan when the window is opening. For example, supposing it's half open, the physical will set value to 50 and pending to false as the window is not totally open.

3. The physical device tells Lelylan that the window is totally open by setting the device value to 100. We do not set the pending status as it's set to false by default. As you can see now the expected and the value matches and the pending status is false.

Accepted values

The field accepted represents a list of objects where the key is the value used to update the device properties and the value is a friendly description.

{ "accepted": [{ "key": "on", "value": "On" }, { "key": "off", "value": "Off" }] }

Populating the accepted list gives two main benefits.

  • Uniformity - A clear definition of the values accepted form the device property.
  • Presentation - Better user interface automatic generation.

When creating a device, the accepted values are inherited by the type properties, but if you want you can change it on every device. This is useful in scenarios where a device needs to have custom accepted values (e.g. a television setting the channel names).

Device Status

Sometimes properties are not enough to describe the device status. Think at a window for example. It has the property status that accepts the values open and close. Now think at what happens when a window is opening. It is neither open or close: it's opening. To have a complete control over the device at every moment of its life use the status resource.

notice A basic implementation is available on the AngularJS Device Directive to give the device status description. Right now this service is not available on server side for performance reasons.