Giter VIP home page Giter VIP logo

sunset's Introduction

pytest

Sunset

Get yourself accustomed to the evening for better sleep.

Synopsis

During sunset the sunlight turns more and more reddish. The reddish light will make our body produce hormones that promote sleep. That's why in offices there are usually very hot, i.e. white lights. At home in the evening a more reddish light would be more appropriate. This extension for Homeassistant takes care of that.

Features

You can configure three times in your configuration.yaml.

  • evening_time: the time when the redshift will start

  • night_time: the time when the redshift has reached the final color temperature.

  • morning_time: the time when the color temperature will get back to the day time level.

  • day_color_temp: the color temperature at daytime in Kelvin

  • night_color_temp: the color temperature at nighttime in Kelvin

Besides the color temperature Sunset can also manipulate the brightness of the lights. In contrast to the color temperature it does not shift the brightness continuously but drops the brightness of all lights at a given time. This is meant to be a soft reminder that it is time for you to go to bed.

  • bed_time: The time when the brightness should be dropped or 'null' to disable brightness manipulation.
  • night_brightness: The brightness after bed time (default 127)

Color temperature translation behavior

The component takes over the color temperature of all the lights available in the system. Between morning_time and evening_time the color temperature will be set to the level of day_color_temp. Once evening_time is reached the color temperature will slowly transition to night_color_temp. The night_color_temp value will be reached exactly at night_time and maintained during the night. Once morning_time is reached the color temperature will instantaneously go back to day_color_temp.

Manually overriding the color temperature and the brightness

You can manually override the color temperature and the brightness for a certain light or group of lights just by adjusting it in a usual way, e.g. the web interface. The color temperature of this light will then not be changed as long as the light remains switched on. Once the light goes off and on again, its color temperature and the brightness will be again governed by Sunset.

Forbidding Sunset to touch a specific light

There are the services sunset.dont_touch and sunset.handle_again. They both take a device_id an area_id or an entity_id as parameter. As you would guess from the names sunset.dont_touch makes Sunset not manipulate a certain light, whereas sunset.handle_again makes Sunset control the light again.

Lights have to be specified as lists of entities, an area or a device.

Be aware that the lights not to be touched are not persistent. They are forgotten as soon as the component is restarted. So it is just meant as a temporary measure.

Activating and deactivating

You can use the services sunset.activate_redshift and sunset.deactivate_redshift to activate and deactivate the redshift altogether. The sunset.deactivate_redshift service takes an optional color_temp parameter to apply a certain color temperature to all lights. If it is not given the color temperature is not changed on deactivation.

Similarly you can use the services sunset.activate_brightness and sunset.deactivate_brightness to deactivate the dimming.

Planned features

  • Shift the color temperature back in the morning over a defined time. As of now the back shift to day temperature happens instantaneously.

  • Configure lights that are generally ignored by Sunset.

No ETAs given.

Status

Hacked it like a couple of months ago and deployed it on my system. So far it seems to work fine.

Installation

For now you need to clone the repo and copy or symlink the directory custom_components/sunset to your .homeassistant/custom_components. When restarting Sunset should automatically step in.

Support

As always, bug reports and pull requests welcome.

sunset's People

Contributors

johannes-mueller avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.