File: register_client.py

package info (click to toggle)
python-boschshcpy 0.2.92-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 268 kB
  • sloc: python: 3,343; makefile: 4; sh: 4
file content (54 lines) | stat: -rwxr-xr-x 1,999 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python

# Use this script to register a new client connection to Bosch Smart Home products
# See https://github.com/BoschSmartHome/bosch-shc-api-docs
# Before executing the script to register a new client, the button on the controller has to be pressed until the LED begins flashing.

import os, sys
import time
import logging

sys.path.append(os.path.join(os.path.dirname(__file__), '..'))

from boschshcpy.register_client import SHCRegisterClient
import boschshcpy

def registering():
    # Create a BoschSHC client with the specified ACCESS_CERT and ACCESS_KEY.
    helper = SHCRegisterClient(args.ip_address, args.password)
    result = helper.register(args.id, args.name, args.access_cert)

    if result != None:
        print('successful registered new device with token {}'.format(result["token"]))
        print(f"Cert: {result['cert']}")
        print(f"Key: {result['key']}")
    else:
        print('No valid token received. Did you press client registration button on smart home controller?')
        sys.exit()

if __name__ == "__main__":
    import argparse, sys
    
    logging.basicConfig(level=logging.DEBUG)

    parser = argparse.ArgumentParser()
    parser.add_argument("-pw", "--password",
                        help="systempassword was set-up initially in the SHC setup process.")
    parser.add_argument("-ac", "--access_cert",
                        help="Path to access certificat.",
                        default=None)
    parser.add_argument("-n", "--name",
                        help="Name of the new client user.",
                        default="SHC Api Test")
    parser.add_argument("-id", "--id",
                        help="ID of the new client user.",
                        default="shc_api_test")
    parser.add_argument("-ip", "--ip_address",
                        help="IP of the smart home controller.")
    args = parser.parse_args()

    if len(sys.argv) == 1:
        parser.print_help()
        sys.exit()

    registering()