Skip to content

Commit

Permalink
🎨 Clarify background
Browse files Browse the repository at this point in the history
  • Loading branch information
marvinroger committed Aug 4, 2017
1 parent cae1fa5 commit c8a270a
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,19 @@ You can find an implementation of the Homie convention:
## Background

An instance of a physical piece of hardware (an Arduino, an ESP8266...) is called a **device**.
A device has **attributes**, like the current local IP, the Wi-Fi signal, etc.
A device can expose multiple **nodes**. For example, a weather station with two wireless sensors might expose a `temperature` node and an `humidity` node.
A node can have multiple **properties**. The `temperature` node might for example expose a `degrees` property containing the actual temperature, and an `battery` property containing the battery level of the temperature sensor.
Node properties can be **ranges**.
For example, if you have a LED strip, you can have a node property `led` ranging from `1` to `10`, to control LEDs independently.
Node properties can be **settable**.

A device can expose multiple **nodes**. For example, a weather station with two sensors might expose a `temperature` node and an `humidity` node.

A node can have multiple **properties**. The `temperature` node might for example expose a `degrees` property containing the actual temperature, and a `battery` property containing the battery level of the temperature sensor.
Properties can be **arrays**.
For example, if you have a LED strip, you can have a property `led` ranging from `1` to `10`, to control LEDs independently.
Properties can be **settable**.
For example, you don't want your `degrees` property to be settable in case of a temperature sensor: this depends on the environment and it would not make sense to change it.
However, you will want the `degrees` property to be settable in case of a thermostat.

Devices, nodes and properties have specific **attributes**.
For instance, a device will have an `IP` attribute, a node will have a `name` attribute, and a property will have a `unit` attribute.

## QoS and retained messages

Homie devices communicate through MQTT.
Expand Down

2 comments on commit c8a270a

@ThomDietrich
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are temperature and humidity adequate examples for nodes?

See #27 (comment)

@marvinroger
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right: d10e380 😉

I will also update the examples

Please sign in to comment.