Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/home-assistant/hubot-home-assistant
:speech_balloon: Hubot module for interacting with Home Assistant via chat
https://github.com/home-assistant/hubot-home-assistant
home-assistant home-automation hubot
Last synced: about 1 month ago
JSON representation
:speech_balloon: Hubot module for interacting with Home Assistant via chat
- Host: GitHub
- URL: https://github.com/home-assistant/hubot-home-assistant
- Owner: home-assistant
- License: other
- Archived: true
- Created: 2016-04-26T23:43:48.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-03-15T10:50:43.000Z (over 4 years ago)
- Last Synced: 2024-09-26T07:05:06.455Z (about 1 month ago)
- Topics: home-assistant, home-automation, hubot
- Language: CoffeeScript
- Homepage:
- Size: 225 KB
- Stars: 28
- Watchers: 12
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Hubot Home Assistant
[![npm version](https://badge.fury.io/js/hubot-home-assistant.svg)](http://badge.fury.io/js/hubot-home-assistant) [![Build Status](https://travis-ci.com/home-assistant/hubot-home-assistant.svg?branch=master)](https://travis-ci.com/home-assistant/hubot-home-assistant)
:speech_balloon: :house_with_garden: A Hubot module for interacting with Home Assistant via chat.
## :rotating_light: DEPRECATED
This repository is deprecated, unmaintained and archived.
## Installation
In hubot project repo, run:
`npm install hubot-home-assistant --save`
Then add **hubot-home-assistant** to your `external-scripts.json`:
```json
[
"hubot-home-assistant"
]
```## Configuration:
| Variable | Required? | Description |
| ------------------------------------------- | :-------: | ------------------ |
| `HUBOT_HOME_ASSISTANT_HOST` | **Yes** | The URL for your Home Assistant instance, e.g. `https://demo.home-assistant.io` or `http://hassio.local:8123`. |
| `HUBOT_HOME_ASSISTANT_API_TOKEN` | **Yes** | The long-lived access token for a Home Assistant user. |
| `HUBOT_HOME_ASSISTANT_MONITOR_EVENTS` | No | If set to any value, whether to monitor for events |
| `HUBOT_HOME_ASSISTANT_MONITOR_ALL_ENTITIES` | No | If set to any value, whether to monitor all entities for status changes |
| `HUBOT_HOME_ASSISTANT_EVENTS_DESTINATION` | No | Which room/channel/chat to send events, e.g. `#homeassistant` or `@alice`; default: `#home-assistant` |### Upgrading from v1.x?
The `HUBOT_HOME_ASSISTANT_API_PASSWORD` environment variable has been replaced by the `HUBOT_HOME_ASSISTANT_API_TOKEN`. You can obtain your long-lived access token in your `v0.77`+ instance of Home Assistant by clicking on your user icon in the navigation, scrolling to the section titled "Long-Lived Access Tokens," and clicking the "Create" button.
[Read more](https://developers.home-assistant.io/docs/en/auth_api.html#long-lived-access-token) about long-lived access tokens.
## Commands:
### List all entities
Returns the current state of the entity. Note that it uses the `hidden` attribute flag to reduce this list. It will also exclude Views and Zones.
```
hubot hass list
sun.sun: Sun; camera.office: Office; camera.den: Den; group.commute: Commute; group.climate: Climate; ...
```### Get the state of an entity
Returns the current state of the entity.
```
hubot hass state of Living Room Downlights
@alice Living Room Downlights is off (since 2 hours ago)
```### Toggle an entity on or off
Turn the entity on/off.
```
hubot hass turn Living Room Downlights on
@alice Living Room Downlights turned on
```### Set an entity to a desired state
Set the entity state to the given value.
```
hubot hass set Bob's iPhone to home
@alice Setting Bob's iPhone to home
@alice Bob's iPhone set to home
```## Streaming Capabilities
In addition to directly interacting with Home Assistant, this package will allow you to stream entity status changes (e.g. turn a light on, home temperature rises, etc.) into a room/channel/user of your choice.
1. Set `HUBOT_HOME_ASSISTANT_MONITOR_EVENTS` to any value to enable streaming.
2. Set `HUBOT_HOME_ASSISTANT_EVENTS_DESTINATION` to where you want the messages to be seen. By default, they will go to a channel/room called `#home-assistant`.
3. Restart your Hubot### Option 1 - Monitor Everything
Note that Home Assistant will send a lot of change events throughout the day if you have several components configured. For example, if you have a thermostat configured, it will send an event for every detected temperature change.
1. Set `HUBOT_HOME_ASSISTANT_MONITOR_ALL_ENTITIES` to any value.
2. Restart your Hubot### Option 2 - Monitor Specific Devices
1. Ensure that `HUBOT_HOME_ASSISTANT_MONITOR_ALL_ENTITIES` is not set in the configuration.
2. Update your Home Assistant configuration under the `customize`, `customize_domain` or `customize_blob` key to include the `hubot_monitor: true` attribute. [See documentation](https://www.home-assistant.io/docs/configuration/customizing-devices/) for more details.
3. Restart your Hubot**Examples:**
```yaml
homeassistant:#...
# Set a specific device to monitor
customize:
climate.my_ecobee3:
hubot_monitor: true# Monitor all devices in a particular domain
customize_domain:
alarm_control_panel:
hubot_monitor: true
light:
hubot_monitor: true# Monitor devices matching a pattern
customize_blob:
"device_tracker.*_iphone":
hubot_monitor: true
```