Electra Smart Python Integration.
Project description
pyElectra
Python library to control Electra Smart Air Condtioiner devices
Usage:
import asyncio
import aiohttp
from electra 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.0.0.tar.gz
(6.5 kB
view hashes)
Built Distribution
Close
Hashes for pyElectra-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f251cd64a7a9794b905e34543ab8560f570ce146e59b6a064e9fcd2c625dc62 |
|
MD5 | 13405954aa146594d279998fd5fd095d |
|
BLAKE2b-256 | 76b4e539fad365d3c54b74d59a6421b954e2c10168742c2257b4a35377f252b4 |