Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stfnhmplr/homee-api
a library to interact with homee
https://github.com/stfnhmplr/homee-api
api-client homee smarthome
Last synced: 11 days ago
JSON representation
a library to interact with homee
- Host: GitHub
- URL: https://github.com/stfnhmplr/homee-api
- Owner: stfnhmplr
- Created: 2018-06-08T14:49:56.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-01-28T18:33:54.000Z (10 months ago)
- Last Synced: 2024-10-03T12:33:07.618Z (about 1 month ago)
- Topics: api-client, homee, smarthome
- Language: JavaScript
- Size: 495 KB
- Stars: 40
- Watchers: 8
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# homee API wrapper
a library to interact with [homee](https://hom.ee)
## Installation
```
npm install homee-api --save
```## Usage
### Connect
```js
const Homee = require('homee-api');const homee = new Homee(host, user, password, options);
homee.connect().then(() => {
//
}).catch((error) => {
console.log(error);
});
```#### Options
```js
{
device: 'homeeApi',
reconnect: true,
reconnectInterval: 5000,
maxRetries: Infinity
}
```homee accepts only one connection per device. Therefore, you must specify a unique device name when using the API multiple times.
### Events
```js// handle at least the "error" event to prevent crashing
homee.on('error', (err) => {});homee.on('message', (message) => {});
homee.on('connected', () => {});
homee.on('reconnect', (retries) => {})
homee.on('disconnected', (reason) => {});
homee.on('maxRetries', (maxRetries) => {});// special events
homee.on('user', (user) => {})
homee.on('attribtue', (attribute) => {})
homee.on('nodes', (nodes) => {})
homee.on('history', (type, data) => {})
// ...tbc
```
### Methods
```js
// send any message
homee.send('your-message, i.E. GET:nodes');// homeegram interactions
homee.play(id)
homee.activateHomeegram(id);
homee.deactivateHomeegram(id);// update an attributes target_value
homee.setValue(device_id, attribute_id, value);// group interactions
homee.createGroup(name, image);
homee.deleteGroup(id);
homee.getNodesByGroup(id); // id or group name// get diary entries (you should use at least one parameter to shrink the result set)
homee.getDiary(from, till, limit);// get History for node or attribute (type), from and till are unix timestamps
homee.getHistory(type, id, from, till, limit);// close connection
homee.disconnect();
```### Stored Nodes
The homee api keeps a copy of all your nodes, attributes and groups. Each time the value of an attribute changes, the stored data is also updated. The following attributes give you access to the data at any time.```js
const nodes = homee.nodes
const attributes = homee.attributes
const groups = homee.groups
```