Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ristomatti/lifxsh

Node.js based command line interface for controlling LIFX lamps that communicates using the LIFX LAN protocol.
https://github.com/ristomatti/lifxsh

Last synced: 8 days ago
JSON representation

Node.js based command line interface for controlling LIFX lamps that communicates using the LIFX LAN protocol.

Awesome Lists containing this project

README

        

# lifxsh

Node.js based command line interface for controlling LIFX lamps. Uses the LIFX
LAN protocol for communication.

![lifxsh example
screenshot](https://raw.githubusercontent.com/ristomatti/lifxsh/master/example-screenshot.png)

## Release notes

### Version 1.0.0

- replace spaces with dashes for light aliases used to avoid using quotes when
addressing lights so for example "Kitchen Table" becomes "kitchen-table"
- include light alias in the output of `list`
- parse duration in natural language, e.g. `on kitchen-table -d 5m`
- update lifx-lan-client to v1.1.0 to support newer products
- fix stale cached light status issue
- fix unhandled promise warning

### Version 0.10.0

- fix npm audit issues

### Version 0.9.1

- remove babel transpilation
- update dependencies

### Version 0.8.1

- add support for listing known light addresses in $HOME/.lifxsh/settings.yml
- fix bug on tab complete

### Version 0.8.0

- preliminary support for MultiZone lights with "zone" command

### Version 0.7.0

- preliminary infrared LED support added (brightness can be changed but the
light list information still needs to be updated)

### Version 0.6.x

- works with all current LIFX products (no support for LIFX+ or LIFX Z special
features yet)
- uses LAN protocol (fast/responsive) - thanks
[MariusRumpf/node-lifx](https://github.com/MariusRumpf/node-lifx)!
- interactive color CLI - thanks
[dthree/vorpal](https://github.com/dthree/vorpal)!
- in-app help
- tab completion of light names (lowercase form based on given labels)
- command history
- logs individual bulb/strip online/offline statuses
- list all lights with power state, color information and IP address
- multiple light names can be listed to set all at once
- alias `all` can be used to target all lights, alternatively name can be
omitted
- caches the previous color properties fetched from lights to allow changing
only single attribute (LAN protocol defines hue/saturation/brightness need
to always be sent together)
- supports most LIFX functionalities
- on/off toggle with optional transition delay
- change color using hue/saturation/brightness and luminosity (kelvin) (with
optional transition delay)

### Planned features

- show light type in listing
- configuration file
- alias names for lights
- aliases for light groups
- presets
- in-app saving of aliases/presets

### Known issues

- after tab completion, sometimes first press of backspace does not register

## Install using NPM

### Global (might require sudo)

```sh
npm install --global lifxsh
```

### Local

```sh
npm install lifxsh
```

## Usage

1. Run `lifxsh` (global install) or `node_modules/.bin/lifxsh` (local install)
2. Type `help`