0.0.17 • Published 9 years ago

iotdb-timers v0.0.17

Weekly downloads
4
License
Apache-2.0
Repository
github
Last release
9 years ago

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.

0.0.17

9 years ago

0.0.16

9 years ago

0.0.15

9 years ago

0.0.14

9 years ago

0.0.13

9 years ago

0.0.12

9 years ago

0.0.11

10 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

11 years ago

0.0.5

11 years ago

0.0.4

11 years ago