Metadata-Version: 2.1
Name: pyvesync
Version: 1.0.4
Summary: pyvesync is a library to manage Etekcity Switches
Home-page: https://github.com/markperdue/pyvesync
Author: Mark Perdue
Author-email: markaperdue@gmail.com
License: MIT
Description: pyvesync [![build status](https://img.shields.io/pypi/v/pyvesync.svg)](https://pypi.python.org/pypi/pyvesync)
        ========
        
        
        pyvesync is a library to manage Etekcity Switches.
        
        
        Installation
        ------------
        
        Install the latest version from pip:
        
        ```python
        pip install pyvesync
        ```
        
        
        Supported Devices
        -----------------
        
        1. Etekcity Voltson Smart WiFi Outlet (7A model ESW01-USA)
        2. Etekcity Voltson Smart WiFi Outlet (15A model ESW15-USA)
        3. Etekcity Voltson Smart WiFi Outlet (10A model ESW01-EU)
        4. Etekcity Smart WiFi Light Switch (model ESWL01)
        
        
        Usage
        -----
        
        To start with the module:
        
        ```python
        from pyvesync.vesync import VeSync
        
        manager = VeSync("USERNAME", "PASSWORD")
        manager.login()
        manager.update()
        
        
        # Get electricity metrics of devices
        for s in manager.devices:
            s.update_energy() # Get energy history for each device
            print("switch %s is currently %s" % (s.device_name, s.device_status))
            print("  active time: %s, energy: %s, power: %s, voltage: %s" % (s.active_time(), s.energy_today(), s.power(), s.voltage()))
            print("  weekly energy: %s, monthly energy: %s, yearly energy: %s" % (s.weekly_energy_total(), s.monthly_energy_total(), s.yearly_energy_total()))
        
        # Turn on the first device
        my_switch = manager.devices[0]
        print("Turning on switch '%s'" % (my_switch.device_name))
        my_switch.turn_on()
        print("Turning off switch '%s'" % (my_switch.device_name))
        my_switch.turn_off()
        ```
        
        
        Manager API
        -----------
        
        `VeSync.get_devices()` - Returns a list of devices
        
        `VeSync.login()` - Uses class username and password to login to VeSync
        
        `VeSync.update()` - Fetch updated information about devices
        
        
        Device API
        ----------
        
        `VeSyncSwitch.turn_on()` - Turn on the device
        
        `VeSyncSwitch.turn_off()` - Turn off the device
        
        `VeSyncSwitch.update()` - Fetch updated information about device
        
        `VeSyncSwitch.active_time()` - Return active time of the device in minutes
        
        `VeSyncSwitch.energy_today()` - Return current energy usage
        
        `VeSyncSwitch.power()` - Return current power in watts of the device
        
        `VeSyncSwitch.voltage()` - Return current voltage reading
        
        `VeSyncSwitch.energy_update()` - Get switch energy history
        
        `VesyncSwitch.weekly_energy_total()` - Return total energy reading for the past week, starts 12:01AM Sunday morning
        
        `VesyncSwitch.monthly_energy_total()` - Return total energy reading for the past month
        
        `VesyncSwitch.yearly_energy_total()` - Return total energy reading for the past year
        
        
        Model ESW15-USA 15A/1800W API
        ---------------------------------
        The rectangular smart switch model supports some additional functionality on top of the regular api call
        
        `VeSyncSwitch.turn_on_nightlight()` - Turn on the nightlight
        
        `VeSyncSwitch.turn_off_nightlight()` - Turn off the nightlight
        
        
        Notes
        -----
        
        More detailed data is available within the `VesyncSwitch` by inspecting the `VesyncSwitch.energy` dictionary.
        
        The `VesyncSwitch.energy` object includes 3 nested dictionaries `week`, `month`, and `year` that contain detailed weekly, monthly and yearly data
        
        ```
        VesyncSwitch.energy['week']['energy_consumption_of_today']
        VesyncSwitch.energy['week']['cost_per_kwh']
        VesyncSwitch.energy['week']['max_energy']
        VesyncSwitch.energy['week']['total_energy']
        VesyncSwitch.energy['week']['data'] which itself is a list of values
        ```
        
        The VeSync api is hit or miss with this data so access is currently limited to direct lookup calls
Keywords: iot,vesync
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.0
Description-Content-Type: text/markdown
