Asyncio module for Orvibo devices control
Project description
asyncio-orvibo
Control Orvibo devices with Python 3 using asyncio (single threaded with event loop). Currently supports the S20 WiFi Smart Switch and AllOne IR.
Usage
from asyncio_orvibo import s20
import asyncio
import traceback
async def test_switch_all_off_on():
dict_devices = await s20.S20.discovery()
for _,s in dict_devices.items():
if await s.state_change(0):
print("State off OK %s",s)
else:
print("State off FAIL %s",s)
await asyncio.sleep(5)
for _,s in dict_devices.items():
if await s.state_change(1):
print("State on OK %s",s)
else:
print("State on FAIL %s",s)
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(test_switch_all_off_on())
except:
traceback.print_exc()
################################################
from asyncio_orvibo import allone
import asyncio
import traceback
import binascii
async def test_emit(k):
dict_devices = await allone.AllOne.discovery()
payload = binascii.unhexlify(k)
for _,a in dict_devices.items():
rv = await a.emit_ir(payload)
if rv:
print("Emit OK %s %s",a,binascii.hexlify(rv).decode('utf-8'))
else:
print("Emit failed")
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(test_emit('00000000a801000000000000000098018e11951127029b0625029906270299062702380227023a0225023802270238022d023202270299062702990627029806270238022702380227023802270238022802370227023802270238022702980627023802240245021c02380227023802270238022702980627029c0623023802270298062702990627029b062502990627029906270220b7a1119d11270299062702990628029b06250238022702380227023802270238022702380227029906270299062702990627023802270238022a0234022702380227023802260238022702380226029a06260238022602380226023802260241021e02380227029b0624029906270238022702980627029b0625029906270299062702990629021db79f11a2112502990627029b0625029906270238022702380227023802270238022a02350227029906270299062702990628023702260238022702380227023802270238022702380226023b02240299062702380226023802270238022602380227023c0223029906270299062702380226029b062402990627029906270299062802980627020000'))
except:
traceback.print_exc()
Contributions
Pull requests are welcome. Possible areas for improvement:
- Additional Orvibo devices (CT10 for example, I have reverse engineered this device I only need time to write the code).
- Expand S20 functions: Timers, configuration, etc
Disclaimer
Not affiliated with Shenzhen Orvibo Electronics Co., Ltd.
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
asyncio-orvibo-1.2.tar.gz
(7.5 kB
view hashes)
Built Distribution
Close
Hashes for asyncio_orvibo-1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a9bbaeefa0fe323a5595cd5277893aed74838617726cc1a8100d63a20dc9e73 |
|
MD5 | 427075615bd4e81c138c683adf1054af |
|
BLAKE2b-256 | d1295fa028c1c0f310a13cc1545baef131dba918e5090ae7670c5c1bfbc5a50c |