npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hue-deploy

v0.3.0

Published

Simple command line deployment for Hue automations and resources.

Downloads

8

Readme

hue-deploy

Simple command line deployment for Hue automations and resources.

Define resources as a collection of YAML files. Reference other resources by name. Deploy.

Hue deploy will take care of:

  • Resolving resource ids
  • Applying sensible defaults
  • Removes the need to prefix schedule.command.address with /api/<GATEWAY_API_KEY>, so schedule command addresses are consistent with rule action addresses
  • Creating missing resources
  • Updating outdated resources
  • Deleting removed resources (where created by hue-deploy)
  • Deploying things in the right order

Resource schema is defined in described in the deCONZ API docs.

Limitations

  • This tool should be considered a work in progress and could have breaking changes between versions.
  • Currently only tested with a Deconz gateway
  • Only one collection of resources can be deployed to a given gateway (due to the way resources are tracked to allow update/delete)
  • Dependencies across files are not recommended, as ordering is undefined

Usage

Installation

  • Install node 18 or above
  • Install the tool with npm install -g hue-deploy

Quick start

hue gateway set <YOUR_GATEWAY_IP> <YOUR_GATEWAY_API_KEY>
hue deploy # from current directory
hue deploy --from ~/my-hue-resources # from specific directory

Example some-resources.yml within directory ~/my-hue-resources:

resources:
  - kind: sensor
    name: my-virtual-switch
    type: CLIPGenericFlag

  - kind: rule
    name: my-switch-on
    actions:
      - address: '/sensors/my-virtual-switch/state'
        body:
          flag: true
        method: PUT
    conditions:
      - address: /sensors/my-switch/state/lastupdated
        operator: dx
      - address: /sensors/my-switch/state/buttonevent
        operator: eq
        value: '1002'
      - address: /sensors/my-virtual-switch/state/flag
        operator: eq
        value: 'false'

  - kind: schedule
    name: bedroom-phone-charger
    command:
      address: lights/bedside-socket/state
      body:
        on: true
      method: PUT
    localtime: W127/T00:30:00

The from directory can be located anywhere. You can have as many resource files as you like within there. Filenames are not significant and can be renamed without any impact.

Where a sensor exposes multiple sensor types for the same sensor name, individual sensors can be referenced by suffixing the name with e.g. :temperature, :humidity or :relative-rotary. For convenience, the "main" sensor type is allowed to also be referenced without additional qualification. E.g. For a motion sensor also reporting temperature, the unqualified sensor name resolves to the presence type sensor.

Preview changes to be made first, with:

hue preview

Other commands

When using hue deploy to manage automations, the following support commands can be useful too:

hue backup

Creates a backup of the gateway configuration and saves to to the current directory, as a file called gateway-backup-{ISO-date-time}.zip.

Contributing

Please raise issues for any bugs/feature requests.

Testing has been through actual use with a good number of resources on a home setup. There are no automated tests yet. Can hopefully add some soonish.

## Release process

Update the version number in package.json and:

yarn build
npm publish