mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-11-09 22:09:06 -05:00
49 lines
3.0 KiB
Markdown
49 lines
3.0 KiB
Markdown
NIP-91
|
|
======
|
|
|
|
IoT sensors and intents
|
|
-----------------------
|
|
|
|
`draft` `optional` `author:BlackCoffee` `author:arcbtc` `author:fiatjaf`
|
|
|
|
This NIP standardizes communication of public sensor and intent events in order to create an open, pluggable and interoperable standard for "Internet of Things" devices to communicate.
|
|
|
|
The standard event format follows the following template:
|
|
|
|
```js
|
|
{
|
|
"kind": <a number from the table below>,
|
|
"tags": [
|
|
["device", <optional device id>],
|
|
["alt", <optional human-readable translation of the event>],
|
|
],
|
|
"content": "<data according to the format in the table below>"
|
|
...
|
|
}
|
|
```
|
|
|
|
Ideally each device would have its own public key, which allows for easy command-and-control and comes with built-in trus guarantees (i.e. you know you're getting the data from the correct device if you know its key and can check the signature), but the `device` tag exists for when that is too cumbersome and more than one device is using the same key.
|
|
|
|
The `alt` tag follows NIP-31 and can accomodate all human-readable needs, like the device name or the human-readable name of the place it is in.
|
|
|
|
Other generic tags, like `g` for geolocation, may be included.
|
|
|
|
### Event Kinds
|
|
|
|
Kinds between 8000-8999 (inclusive) are reserved for this NIP, to be filled in the table below.
|
|
|
|
| kind | name | type | unit | example | description |
|
|
| ----- | ----- | ------ | ----- | ----- | -------- |
|
|
| 8000 | intent | | | | someone wants to trigger an action on a device? |
|
|
| 8001 | on | empty | | | device was turned on |
|
|
| 8002 | off | empty | | | device will turn off |
|
|
| 8003 | temperature | number | celsius | 20.9 | |
|
|
| 8004 | pressure | number | pascals | 1013 | |
|
|
| 8005 | location | array | decimal degrees | [51.5053, -0.08737] | |
|
|
| 8006 | light | | | | |
|
|
| 8007 | humidity | | | | |
|
|
| 8008 | rain | | | | |
|
|
| 8009 | moisture | | | | |
|
|
| 8010 | unary switch | | empty | | a sensor that detects if a thing happened or not |
|
|
| 8011 | binary switch | boolean | | true / false | a switch that can be turned on or off |
|