pyvesync is a library to manage Etekcity Switches.
Install the latest version from pip:
pip install pyvesync
- Etekcity Voltson Smart WiFi Outlet (7A model ESW01-USA)
- Etekcity Voltson Smart WiFi Outlet (15A model ESW15-USA)
- Etekcity Voltson Smart WiFi Outlet (10A model ESW01-EU)
- Etekcity Smart WiFi Light Switch (model ESWL01)
To start with the module:
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()
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
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
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
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