Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

home-assistant-js-websocket

Package Overview
Dependencies
Maintainers
1
Versions
102
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

home-assistant-js-websocket

Home Assistant websocket client

  • 0.1.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
12K
increased by63.07%
Maintainers
1
Weekly downloads
 
Created
Source

:aerial_tramway: JavaScript websocket client for Home Assistant

This is a websocket client written in JavaScript that communicates with the Home Assistant websocket API. It can be used to integrate Home Assistant into your apps.

import createConnection from 'home-assistant-js-websocket';

function stateChanged(event) {
  console.log('state changed', event);
}

createConnection('ws://localhost:8123/api/websocket').then(
  (conn) => {
    console.log('Connection established!');
    conn.subscribeEvents(stateChanged, 'state_changed');
  },
  err => console.error('Connection failed with code', err)
)

Usage

Connections to the websocket API are initiated by calling createConnection(url[, options]). createConnection will return a promise that will resolve to either a Connection object or rejects with an error code.

Available options

Currently the following options are available:

OptionDescription
authTokenAuth token to use to validate with Home Assistant.
Possible error codes

Currently the following error codes can be expected:

ErrorDescription
ERR_CANNOT_CONNECTIf the client was unable to connect to the websocket API.
ERR_INVALID_AUTHIf the supplied authentication was invalid.

You can import them into your code as follows:

import { ERR_CANNOT_CONNECT, ERR_INVALID_AUTH } from 'home-assistant-js-websocket';

Automatic reconnecting

The connection object will automatically try to reconnect to the server when the connection gets lost. On reconnect, it will automatically resubscribe the event listeners.

The Connection object implements two events to signal loss of connection and successful reconnect.

EventDescription
readyFired when authentication is successful and the connection is ready to take commands.
disconnectedFired when the connection is lost.

You can attach listeners as follows:

conn.addEventListener('ready', conn => {
  console.log('Connection has been established again');
});

Connection API Reference

conn.getStates()

Get the state of all entities. Returns a promise that will resolve to the result of querying the server for all the states.

conn.getServices()

Get all available services. Returns a promise that will resolve to the result of querying the server for all the services.

conn.getPanels()

Get the Home Assistant panel config. Returns a promise that will resolve to the result of querying the server for all the panels config.

conn.getConfig()

Get the Home Assistant server config. Returns a promise that will resolve to the result of querying the server for all the config.

conn.callService(domain, service[, serviceData])

Call a service within Home Assistant. Returns a promise that will resolve when the service has been called successfully.

conn.subscribeEvents(eventCallback[, eventType])

Subscribe to all or specific events on the Home Assistant bus. Calls eventCallback for each event that gets received.

Returns a promise that will resolve to a function that will cancel the subscription once called.

FAQs

Package last updated on 27 Nov 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc