view service/reasoning/rules.n3 @ 59:7ec777c93d51

rm accident Ignore-this: 38e80acabecd09443833e1f9408fea8b
author drewp@bigasterisk.com
date Sun, 10 Feb 2013 02:27:03 -0800
parents 42411726a7ca
children b0f9eef8bb5d
line wrap: on
line source

@prefix : <http://projects.bigasterisk.com/room/>.
@prefix bigast: <http://bigasterisk.com/>.
@prefix dev: <http://projects.bigasterisk.com/device/>.
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix env: <http://projects.bigasterisk.com/device/environment>.
@prefix math: <http://www.w3.org/2000/10/swap/math#> .

{ <http://bigasterisk.com/wifiDevice/x> :connected bigast:wifiAccessPoints . } => { :auth :near :home } .
{ <http://bigasterisk.com/wifiDevice/x> :connected bigast:wifiAccessPoints . } => { :auth :near :home } .
{ <http://bigasterisk.com/wifiDevice/x> :connected bigast:wifiAccessPoints . } => { :playstation :powerState :on } .

{ env: :localHour 8 } => { env: :localHour :awakeTime } .
{ env: :localHour 9 } => { env: :localHour :awakeTime } .
{ env: :localHour 10 } => { env: :localHour :awakeTime } .
{ env: :localHour 11 } => { env: :localHour :awakeTime } .
{ env: :localHour 12 } => { env: :localHour :awakeTime } .
{ env: :localHour 13 } => { env: :localHour :awakeTime } .
{ env: :localHour 14 } => { env: :localHour :awakeTime } .
{ env: :localHour 15 } => { env: :localHour :awakeTime } .
{ env: :localHour 16 } => { env: :localHour :awakeTime } .
{ env: :localHour 17 } => { env: :localHour :awakeTime } .
{ env: :localHour 18 } => { env: :localHour :awakeTime } .
{ env: :localHour 19 } => { env: :localHour :awakeTime } .
{ env: :localHour 20 } => { env: :localHour :awakeTime } .
{ env: :localHour 21 } => { env: :localHour :awakeTime } .
{ env: :localHour 22 } => { env: :localHour :awakeTime } .
{ env: :localHour 23 } => { env: :localHour :awakeTime } .

{
  :auth :near :home .
  dev:theaterDoorOutsideMotion :state :motion.
  dev:theaterDoorOpen :state :closed .
  env: :localHour :awakeTime .
} => { dev:theaterDoorLock :state :unlocked } .

{ dev:frontDoorOpen :state :closed } => { dev:frontDoorOpenIndicator :text "_" } .
{ dev:frontDoorOpen :state :open } => { dev:frontDoorOpenIndicator :text "D" } .

{ dev:frontDoorMotion :state :noMotion } => { 
  dev:frontDoorMotionIndicator :text "_" .
  dev:frontDoorLcd :brightness 0 .
} .
{ dev:frontDoorMotion :state :motion } => { 
  dev:frontDoorMotionIndicator :text "D" .
  dev:frontDoorLcd :brightness 255 .
} .

{ :darkKey :state :press } => {
  <http://bigasterisk.com/host/dash/monitor> :powerState :off .
} .

#{ :playstation :powerState ?s } => { <http://bigasterisk.com/host/bang/monitor> :powerState ?s } .

{
  # this won't update right, currently, since I don't let the exact
  # idle time into the rules recalculator. This threshold should be
  # applied upstream.
 
  <http://bigasterisk.com/host/dash/xidle> :idleTimeMinutes ?idle .
  ?idle math:lessThan 30 .
} => {
  :drew :at :desk .
  # the plan here is that as soon as we can show that I'm not at my
  # desk (cell phone wifi, asleep, etc), power the screen off
} .