iotdb-timers

0.0.17 • Public • Published

iotdb-timers

Clever time based events, such as alarm clocks, on-offs, sunrise / sunset, etc.

Notes

  • mostly second oriented, not millisecond like Javascript
  • if bunyan is installed logging will look a lot better
  • time offset related stuff doesn't work yet, sorry
  • all the clever bits for Sun related code come from suncalc.

Examples

once per minute (on the minute)

var timers = require('iotdb-timers')

timers.minute_timer(function(event) {
    console.log(event);
})

The event dictionary is full of goodies:

{
  "year": 2014,
  "month": 12,
  "day": 4,
  "hour": 11,
  "minute": 22,
  "second": 0,
  "tz": -300,
  "epoch": 1417710120,
  "isoweekday": 4,
  "isodatetime": "2014-12-04T16:22:00.000Z",
  "id": "timer",
  "name": "once per minute"
}

every 5 minutes (on the minute)

timers.minute_timer(5, function(event) {
})

every 5 minutes at #:30 seconds

timers.minute_timer({
    minute_repeat: 5,
    second: 30
}, function(eventd) {
})

once per hour (on the hour)

timers.hour_timer(function(event) {
})

once per day (at midnight)

timers.day_timer(function(event) {
})

at sunset

timers.setLocation(43.7, -79.4);

timers.sunset(function(event) {
})

or if you need to specify the different lat/lons

timers.sunset({
    latitude: 43.7,
    longitude: -79.4
}, function(event) {
})

at sunrise

timers.sunrise(function(event) {
})

5 minutes before sunrise

timers.sunset(-5 * 60, function(event) {
})

or

timers.sunset({
	delta: -5 * 60
}, function(event) {
})

is it after sunrise?

var sunrise = new timers.Sunrise();
console.log("is-after", sunrise.isAfter());
console.log("sunrise @", sunrise.getDate());
console.log("sunrise (d)", sunrise.getWhen());

other solar events

See SunCalc for more definutions.

  • dawn
  • dusk
  • golden_hour_end
  • nadir
  • nautical_dawn
  • nautical_dusk
  • night
  • night_end
  • solar_noon
  • sunrise
  • sunrise_end
  • sunset
  • sunset_start

lunar events

Tell me if you need these and I'll add them.

run once in 30 seconds

timers.once(30, function(when) {
});

or

timers.once({
    second_delta: 30
}, function(when) {
});

Also try minute_delta and hour_delta.

Dependencies (2)

Dev Dependencies (9)

Package Sidebar

Install

npm i iotdb-timers

Weekly Downloads

18

Version

0.0.17

License

Apache-2.0

Last publish

Collaborators

  • dpjanes