Skip to content

Instantly share code, notes, and snippets.

@adamdriscoll
Created January 24, 2016 22:18
Show Gist options
  • Save adamdriscoll/a741ce347e7f9ccda2bc to your computer and use it in GitHub Desktop.
Save adamdriscoll/a741ce347e7f9ccda2bc to your computer and use it in GitHub Desktop.
Scheduled job the turns on lights at sunset. OpenHAB + Wunderground
Unregister-ScheduledJob "Check Sunrise and Sunset" -Force
$MidnightTrigger = New-JobTrigger -Daily -At ([DateTime]::Today)
Register-ScheduledJob -ScriptBlock {
$astronomy = Invoke-RestMethod "http://api.wunderground.com/api/$key/astronomy/q/WI/Madison.json"
$sunRiseHour = $astronomy.sun_phase.sunrise.hour
$sunRiseMinute = $astronomy.sun_phase.sunrise.minute
$sunriseTrigger = New-JobTrigger -Once -At ([DateTime]::Today).AddHours($sunRiseHour).AddMinutes($sunRiseMinute)
$sunSetHour = $astronomy.sun_phase.sunset.hour
$sunSetMinute = $astronomy.sun_phase.sunset.minute
$sunsetTrigger = New-JobTrigger -Once -At ([DateTime]::Today).AddHours($sunsetHour).AddMinutes($sunsetMinute)
Unregister-ScheduledJob "Sunrise" -Force -ErrorAction SilentlyContinue
Unregister-ScheduledJob "Sunset" -Force -ErrorAction SilentlyContinue
Register-ScheduledJob -Name "Sunrise" -trigger $sunriseTrigger {
}
Register-ScheduledJob -Name "Sunset" -trigger $sunsetTrigger {
Invoke-WebRequest 'http://localhost:8080/rest/items/Light_Dining_Room' -Method Post -Body 'ON' -ContentType 'text/plain'
Unregister-ScheduledJob "Turn Off At 11" -Force
$trigger = New-JobTrigger -Once -At ([DateTime]::Today).AddHours(23)
Register-ScheduledJob -Name "Turn Off At 11" -Trigger $trigger -ScriptBlock {
Invoke-WebRequest 'http://localhost:8080/rest/items/Light_Dining_Room' -Method Post -Body 'OFF' -ContentType 'text/plain'
Unregister-ScheduledJob "Turn Off At 11" -Force -ErrorAction SilentlyContinue
}
}
} -Name "Check Sunrise and Sunset" -Trigger $MidnightTrigger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment