Electra Smart Python Integration.
Project description
pyElectra
Python library to control Electra Smart Air Condtioiner devices
Usage:
import asyncio
import aiohttp
from electrasmart import *
async def main():
session = aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False), timeout=aiohttp.ClientTimeout(total=10))
api = ElectraAPI(session)
# User phone number
phone_number = "0521234567"
# Generate token
imei = generate_imei()
try:
resp = await api.generate_new_token(phone_number=phone_number, imei=imei)
except ElectraApiError as e:
# handle error
pass
otp = input("Enter the OTP you recieved via SMS")
# more error handling
if resp[electra.ATTR_STATUS] == electra.STATUS_SUCCESS:
if resp[electra.ATTR_DATA][electra.ATTR_RES] != electra.STATUS_SUCCESS:
# Wrong phone number or unregistered user
sys.exit(1)
resp = await api.validate_one_time_password(otp=otp, imei=imei, phone_number=phone_number)
if resp[electra.ATTR_DATA][electra.ATTR_RES] == electra.STATUS_SUCCESS:
token = resp[electra.ATTR_DATA][electra.ATTR_TOKEN]
else:
# wrong OTP
sys.exit(1)
ac_devices = api.get_devices()
for ac in ac_devices:
assert(ac, ElectraAirConditioner)
if ac.name == "Saloon AC":
ac.turn_on()
ac.set_mode(OPER_MODE_COOL)
ac.set_temperature(17)
ac.set_fan_speed(OPER_FAN_SPEED_HIGH)
ac.set_vertical_swing(OPER_ON)
api.set_state(ac) # This will send the conf to the AC
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyElectra-1.2.0.tar.gz
(6.9 kB
view hashes)
Built Distribution
Close
Hashes for pyElectra-1.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9021d5c5e48fbdc4de1d591a24b86feedfac1f59b4c7702a3c7fa69455cb2702 |
|
MD5 | 324d385ae696d7d54ad194254661bbb9 |
|
BLAKE2b-256 | 7bc551d9fd637de45ea3c9fa8b4eb8d5ef6463ceb1779863870096009b76809b |