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
- Initialize
HomeAssistantRXJS
and define your automations
const 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
insideaddons
-
Copy
src
,package.json
,config.json
,Dockerfile
andrun.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
- app doesn't exit properly (probably to do with connection)
- require/imports esm throwing warnings