Skip to content

sotoedu/aqara_api_sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Aqara Developer Platform is an open cooperation platform of Lumi United Technology Co.,Ltd for IoT software and hardware products.

Getting Started

https://developer.aqara.com/

Sure, to sign up on the developer platform and obtain keys: APPID, APPKEY, KEYID

Step 0: prepare venv

# create venv
mkdir project
cd project
python -m venv venv
source venv/bin/activate
mkdir myapp
cd myapp

Step 1: install package

# pip install
pip install git+https://github.com/sotoedu/aqara_api_sdk.git

Step 2: create app.py

# create a sample app
nano app.py

def auth()

# app.py
from aqara import AqaraClient
import traceback
import json

APPID  = 'data1'
APPKEY = 'data2'
KEYID  = 'data3'

def auth(email):
    try: 
        client = AqaraClient(api_key='iloveiot!')
        print('auth payload : ' , request)

        # email  = 'data4'

        payload = {
            'appid': APPID,
            'appkey': APPKEY , 
            'keyid': KEYID ,
            'email': email
        }

        response_data = client.get_auth(payload)

        response = {
            'message': 'success',
            'result': response_data
        }
        
        return jsonify(response)
    
    except Exception as error:
        print('[error] : ' , error)
        print("[auth] traceback : ", traceback.format_exc())

def token()

# app.py
from aqara import AqaraClient
import traceback
import json

APPID  = 'data1'
APPKEY = 'data2'
KEYID  = 'data3'

def token(authCode, email):
    try: 

        client = AqaraClient(api_key='iloveiot!')
        
        # authCode = 'data4'
        # email  = 'data5'

        # POST 요청
        payload = {
            'authCode': authCode,                
            'appid': APPID,
            'appkey': APPKEY , 
            'keyid': KEYID ,
            'email': email
        }

        response_data , response_msg = client.get_token(payload)

        response = {
            'message': 'success',
            'token': response_data,
            'response' : response_msg
        }
        
        return jsonify(response)
    
    except Exception as error:
        print('error : ' , error)

def position()

# app.py
from aqara import AqaraClient
import traceback
import json

APPID  = 'data1'
APPKEY = 'data2'
KEYID  = 'data3'

def position(token):
    try: 

        client = AqaraClient(api_key='iloveiot!')

        # token  = 'data4'

        # POST 요청
        payload = {
            'token': token,                
            'appid': APPID,
            'appkey': APPKEY , 
            'keyid': KEYID 
        }

        all_position_value, positionResponse, all_device_list = client.get_position(payload)
        print('[position] all_device_list : ' , all_device_list)

        response = {
            'message': 'success',
            'postion': all_position_value,
            'roomList': positionResponse,
            'deviceList': all_device_list
        }
        
        return jsonify(response)
    
    except Exception as error:
        print('[position] error : ' , error)

def status()

# app.py
from aqara import AqaraClient
import traceback
import json

APPID  = 'data1'
APPKEY = 'data2'
KEYID  = 'data3'

def status(model, token):
    try: 

        client = AqaraClient(api_key='iloveiot!')

        # model  = 'data4'
        # token  = 'data5'

        # POST 요청
        payload = {
            'model': model,                
            'token': token,
            'appid': APPID,
            'appkey': APPKEY , 
            'keyid': KEYID 
        }

        response_data , response_msg = client.get_resource(payload)

        response = {
            'message': 'success',
            'result': response_data,
            'response' : response_msg
        }
        
        return jsonify(response)
    
    except Exception as error:
        print('error : ' , error)

def write()

# app.py
from aqara import AqaraClient
import traceback
import json

APPID  = 'data1'
APPKEY = 'data2'
KEYID  = 'data3'

def write(did, resid, control, token):
    try: 

        client = AqaraClient(api_key='iloveiot!')
        
        # did     = 'data4'
        # resid   = 'data5'
        # control = 'data6'   # 'on' or 'off'
        # token   = 'data7'

        # POST 요청
        payload = {                          
            'appid': APPID,
            'appkey': APPKEY , 
            'keyid': KEYID ,
            'did': did,  
            'resid': resid,  
            'control': control,  
            'token': token
        }

        response_msg = client.write_resource(payload)

        response = {
            'message': 'success',
            'response' : response_msg
        }
        
        return jsonify(response)
    
    except Exception as error:
        print('error : ' , error)

def read()

# app.py
from aqara import AqaraClient
import traceback
import json

APPID  = 'data1'
APPKEY = 'data2'
KEYID  = 'data3'

def read(did, resid, token):
    try: 

        client = AqaraClient(api_key='iloveiot!')
        
        # did    = 'data4'
        # resid  = 'data5'
        # token  = 'data6'

        # POST 요청
        payload = {                          
            'appid': APPID,
            'appkey': APPKEY , 
            'keyid': KEYID ,
            'did': did,  
            'resid': resid,  
            'token': token
        }

        response_msg = client.read_resource(payload)

        response = {
            'message': 'success',
            # 'result': response_data,
            'response' : response_msg
        }
        
        return jsonify(response)
    
    except Exception as error:
        print('error : ' , error)

def history()

# app.py
from aqara import AqaraClient
import traceback
import json

APPID  = 'data1'
APPKEY = 'data2'
KEYID  = 'data3'

def history(did, resid, token):
    try: 

        client = AqaraClient(api_key='iloveiot!')

        # did    = 'data4'
        # resid  = 'data5'
        # token  = 'data6'

        # POST 요청
        payload = {                         
            'appid': APPID,
            'appkey': APPKEY , 
            'keyid': KEYID ,
            'did': did,   
            'resid': resid,   
            'token': token
        }

        response_msg = client.get_history(payload)

        response = {
            'message': 'success',
            # 'result': response_data,
            'response' : response_msg
        }
        
        return jsonify(response)
    
    except Exception as error:
        print('error : ' , error)

def main()

# app.py
if __name__ == '__main__':
    auth = auth('[email protected]')
    token = token('auth_code','[email protected]')
    position = position('token')
    status = status('your_device_model','token')
    write = write('device_id','resource_value','on','token')
    read = read('device_id','resource_value','token')
    history = history('device_id','resource_value','token')

Congratulations! 🎉

You've successfully run and modified your Project. 🥳

Now what?

Troubleshooting

If you can't get this to work, see the Troubleshooting page.

Learn More

To learn more about Developer Platform, take a look at the following resources:

Releases

No releases published

Packages

No packages published

Languages