コード例 #1
0
ファイル: nest_control.py プロジェクト: skymeson/my-will
 def set_the_temp(self, message, temp):
     temp = int(temp)
     nest = Nest(
         username=settings.NEST_USERNAME,
         password=settings.NEST_PASSWORD,
         serial=settings.NEST_SERIAL,
         units="F",
     )
     nest.login()
     nest.set_temperature(temp)
     self.reply(message, "Done. I set the temp to %sF." % temp)
コード例 #2
0
ファイル: nest_control.py プロジェクト: skoczen/my-will
 def set_the_temp(self, message, temp):
     temp = int(temp)
     nest = Nest(
         username=settings.NEST_USERNAME,
         password=settings.NEST_PASSWORD,
         serial=settings.NEST_SERIAL,
         units="F",
     )
     nest.login()
     nest.set_temperature(temp)
     self.reply(message, "Done. I set the temp to %sF." % temp)
コード例 #3
0
ファイル: nesttool.py プロジェクト: frasermac/pynest
def main():
    parser = create_parser()
    (opts, args) = parser.parse_args()

    if (len(args) == 0) or (args[0] == "help"):
        help()
        sys.exit(-1)

    if (not opts.user) or (not opts.password):
        print "how about specifying a --user and --password option next time?"
        sys.exit(-1)

    if opts.celsius:
        units = "C"
    else:
        units = "F"

    n = Nest(opts.user, opts.password, opts.serial, opts.index, units=units)
    n.login()
    n.get_status()

    cmd = args[0]

    if (cmd == "temp"):
        if len(args) < 2:
            print "please specify a temperature"
            sys.exit(-1)
        n.set_temperature(int(args[1]))
    elif (cmd == "fan"):
        if len(args) < 2:
            print "please specify a fan state of 'on' or 'auto'"
            sys.exit(-1)
        n.set_fan(args[1])
    elif (cmd == "show"):
        n.show_status()
    elif (cmd == "curtemp"):
        n.show_curtemp()
    elif (cmd == "curhumid"):
        print n.status["device"][n.serial]["current_humidity"]
    else:
        print "misunderstood command:", cmd
        print "do 'nest.py help' for help"
コード例 #4
0
ファイル: nesttool.py プロジェクト: frasermac/pynest
def main():
    parser = create_parser()
    (opts, args) = parser.parse_args()

    if (len(args)==0) or (args[0]=="help"):
        help()
        sys.exit(-1)

    if (not opts.user) or (not opts.password):
        print "how about specifying a --user and --password option next time?"
        sys.exit(-1)

    if opts.celsius:
        units = "C"
    else:
        units = "F"

    n = Nest(opts.user, opts.password, opts.serial, opts.index, units=units)
    n.login()
    n.get_status()

    cmd = args[0]

    if (cmd == "temp"):
        if len(args)<2:
            print "please specify a temperature"
            sys.exit(-1)
        n.set_temperature(int(args[1]))
    elif (cmd == "fan"):
        if len(args)<2:
            print "please specify a fan state of 'on' or 'auto'"
            sys.exit(-1)
        n.set_fan(args[1])
    elif (cmd == "show"):
        n.show_status()
    elif (cmd == "curtemp"):
        n.show_curtemp()
    elif (cmd == "curhumid"):
        print n.status["device"][n.serial]["current_humidity"]
    else:
        print "misunderstood command:", cmd
        print "do 'nest.py help' for help"
コード例 #5
0
ファイル: control.py プロジェクト: srodge1/homecontrol
class Control:
    nest = None
    bridge = None

    def __init__(self):
        global logger
        logger = logging.getLogger(__name__)
        # connect to nest
        try:
            from nest import Nest
            self.nest = Nest(username=settings.NEST_LOGIN,
                             password=settings.NEST_PASS)
            self.nest.login()
            self.nest.get_status()
        except:
            logger.error("Unable to connect to NEST.")
        # connect to phillips hue
        self.bridge = Bridge(settings.HUE_BRIDGE)
        try:
            self.bridge.connect()
            self.bridge.get_api()
        except:
            logger.error("Unable to connect to Hue.")

    def execute_command(self, command):
        if command.action == 'power':
            light_state = (command.value == 'on')
            for light_index in settings.LIGHT_GROUPS[command.room]:
                logger.debug('Setting light %s: %s' %
                             (str(light_index), str(light_state)))
                self.bridge.set_light(light_index, 'on', light_state)
                if light_state:
                    # reset color
                    self.bridge.set_light(light_index, 'hue', 15331)
                    self.bridge.set_light(light_index, 'sat', 121)
            return True
        elif command.action == 'dim':
            for light_index in settings.LIGHT_GROUPS[command.room]:
                brightness = int(255 * (command.value * 0.1))
                logger.debug('Setting bright %s: %s' %
                             (str(light_index), str(brightness)))
                self.bridge.set_light(light_index, 'bri', brightness)
            return True
        elif command.action == 'hue':
            curr_group = settings.LIGHT_GROUPS[command.room]
            for index, light_index in enumerate(curr_group):
                # iterates over each color for fades, gradients,etc
                value = command.value[index % len(command.value)]
                logger.debug('Setting hue %s: %s' % (str(light_index), value))
                self.bridge.set_light(light_index, 'on', True)
                self.bridge.set_light(light_index, 'hue', value)
                self.bridge.set_light(light_index, 'sat', 255)
            return True
        elif command.action == 'temperature':
            if not self.nest:
                logger.error('Nest thermostat not initialized.')
                return False
            if command.value:
                self.nest.set_temperature(command.value)
                return True
            else:
                logger.error('Could not determine a temperature.')
        return False
コード例 #6
0
ファイル: control.py プロジェクト: AnanthaRajuC/homecontrol
class Control:
    nest = None
    bridge = None

    def __init__(self):
        global logger
        logger = logging.getLogger(__name__)
        # connect to nest
        try:
            from nest import Nest
            self.nest = Nest(
                username=settings.NEST_LOGIN,
                password=settings.NEST_PASS
            )
            self.nest.login()
            self.nest.get_status()
        except:
            logger.error("Unable to connect to NEST.")
        # connect to phillips hue
        self.bridge = Bridge(
            settings.HUE_BRIDGE
        )
        try:
            self.bridge.connect()
            self.bridge.get_api()
        except:
            logger.error("Unable to connect to Hue.")

    def execute_command(self, command):
        if command.action == 'power':
            light_state = (command.value == 'on')
            for light_index in settings.LIGHT_GROUPS[command.room]:
                logger.debug('Setting light %s: %s' % (
                    str(light_index),
                    str(light_state)
                ))
                self.bridge.set_light(light_index, 'on', light_state)
                if light_state:
                    # reset color
                    self.bridge.set_light(light_index, 'hue', 15331)
                    self.bridge.set_light(light_index, 'sat', 121)
            return True
        elif command.action == 'dim':
            for light_index in settings.LIGHT_GROUPS[command.room]:
                brightness = int(255 * (command.value*0.1))
                logger.debug('Setting bright %s: %s' % (
                    str(light_index),
                    str(brightness)
                ))
                self.bridge.set_light(light_index, 'bri', brightness)
            return True
        elif command.action == 'hue':
            curr_group = settings.LIGHT_GROUPS[command.room]
            for index, light_index in enumerate(curr_group):
                # iterates over each color for fades, gradients,etc
                value = command.value[index % len(command.value)]
                logger.debug('Setting hue %s: %s' % (
                    str(light_index), value
                ))
                self.bridge.set_light(light_index, 'on', True)
                self.bridge.set_light(light_index, 'hue', value)
                self.bridge.set_light(light_index, 'sat', 255)
            return True
        elif command.action == 'temperature':
            if not self.nest:
                logger.error('Nest thermostat not initialized.')
                return False
            if command.value:
                self.nest.set_temperature(command.value)
                return True
            else:
                logger.error('Could not determine a temperature.')
        return False