Automate your home using rxjs and home-assistant
MIT License
rxjs wrapper for home-assistant-js-websocket
npm install @ciesielskico/home-assistant-rxjs
Create long-lived access token under http://homeassistant:8123/profile
Create a .env
file
HOST=http://homeassistant.local:8123
ACCESS_TOKEN=<long-lived-access-token>
LOGLEVEL=INFO
HomeAssistantRXJS
and define your automationsconst home = new HomeAssistantRXJS();
home.initialize();
const motion$ = home.entities.pipe(
select('binary_sensor.hall_motion_sensor', 'state'),
);
// When motion detected turn the light on
// and after 2 seconds turn it off
motion$
.pipe(
filter(state => state === 'on'),
switchMapTo(home.lights.turnOn('light.hall_light')),
delay(2000),
switchMapTo(home.lights.turnOff('light.hall_light')),
)
.subscribe();
Install the Samba share add-on
Open the share under \\192.168.x.<ha-ip>
Create folder ha-rxjs
inside addons
Copy src
, package.json
, config.json
, Dockerfile
and run.sh
In Home Assistant under Supervisor choose Add-On Store
Refresh (upper-right corner)
Install
Start add-on
Start Typescript dev server
npm run dev
docker build --build-arg BUILD_FROM="homeassistant/amd64-base:latest" -t ha-rxjs .
docker run --rm --env-file=.env ha-rxjs