#air-quality #hue #light #color #data #change #purple

app purple-hue

Change a hue light's color based on air quality data from purple air

8 releases

0.2.2 Jul 24, 2022
0.2.1 Jul 24, 2022
0.1.4 Jul 23, 2022
0.1.3 Aug 29, 2021
0.1.2 Sep 6, 2020

#699 in Hardware support

Download history 14/week @ 2024-02-26 7/week @ 2024-03-11 57/week @ 2024-04-01

64 downloads per month

Custom license

64KB
206 lines

purple-hue

Change a hue light's color based on air quality data from purple air.

Rust

Installation

Cargo

cargo install purple-hue

ArchLinux

purple-hue is in the AUR.

Configuration

In order to run purple-hue, you need to configure a sensor, light and register a user.

You can find the sensor id from the purple air map. The light id is available through these instructions. Finally, you can register a user via purple-hue register-user. Save all of these in a purple-hue.toml file either at /etc/purple-hue.toml, ./purple-hue.toml or $XDG_CONFIG/purple-hue.toml. An example configuration follows.

light_id = 1
sensor_id = 1
user_id = "user-id"

Instead of providing a sensor_id, you can also set a sensor_ip if you are able to access the http api of a given sensor.

Systemd

This repository has a systemd unit and timer that can be used to run this as a systemd service every minute.

Release

The following instructions are for deploying updates to this repository to crates.io and to the Arch User Repository.

  1. Identify the new tag version you'll use for the Release
  2. Update the version in Cargo.toml
  3. Regenerate lockfile cargo generate-lockfile
  4. Commit & create a new git tag and push it to the origin repository.
  5. cargo publish
  6. Update the pkgver in the PKGBUILD
  7. Download the tar.gz file that github generated for the tag and record the sha 512 sum in the PKGBUILD
  8. Copy the updated PKGBUILD to the git repository for the AUR package
  9. makepkg --printsrcinfo > .SRCINFO in the AUR package repository
  10. commit the updated PKGBUILD to the AUR repository

Dependencies

~8–14MB
~292K SLoC