From 31805402343660fa2ee077f2721d9f4b40601c0d Mon Sep 17 00:00:00 2001 From: Ed Boal Date: Sun, 11 Sep 2022 09:39:09 -0400 Subject: [PATCH 1/5] Update ttlock_rest.py Added lock function and lock route. --- ttlock_rest.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ttlock_rest.py b/ttlock_rest.py index 165bb09..6931222 100644 --- a/ttlock_rest.py +++ b/ttlock_rest.py @@ -53,6 +53,18 @@ def handle_unlock(lock): if response.status_code == 200: return(response.json()) +def handle_lock(lock): + get_token() + data = {"clientId": clientId, + "accessToken": accessToken, + "lockId": lock, + "date": current_milli_time() + } + + response = requests.post("https://euapi.ttlock.com/v3/lock/lock", data) + + if response.status_code == 200: + return(response.json()) def request_lock(lock): get_token() @@ -88,4 +100,4 @@ def get_lock(lock): @app.route("//getstatus",methods = ['GET']) def get_lockStatus(lock): - return request_lockStatus(lock) \ No newline at end of file + return request_lockStatus(lock) From 463d87f1389308fd841be99904ec3c2396d55484 Mon Sep 17 00:00:00 2001 From: Ed Boal Date: Sun, 11 Sep 2022 09:39:42 -0400 Subject: [PATCH 2/5] Update ttlock_rest.py Added Lock Route --- ttlock_rest.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ttlock_rest.py b/ttlock_rest.py index 6931222..bcd6f2a 100644 --- a/ttlock_rest.py +++ b/ttlock_rest.py @@ -90,6 +90,10 @@ def hello(): def unlock(lock): return handle_unlock(lock) +@app.route("//lock",methods = ['POST', 'GET']) +def unlock(lock): + return handle_lock(lock) + @app.route("//users",methods = ['GET']) def users(lock): return handle_users(lock) From a2fc9ef4051714aaecc6871e24ea9399511d6fba Mon Sep 17 00:00:00 2001 From: Ed Boal Date: Sun, 11 Sep 2022 09:42:47 -0400 Subject: [PATCH 3/5] Update ttlock_rest.py Added unique name to function --- ttlock_rest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttlock_rest.py b/ttlock_rest.py index bcd6f2a..0051066 100644 --- a/ttlock_rest.py +++ b/ttlock_rest.py @@ -91,7 +91,7 @@ def unlock(lock): return handle_unlock(lock) @app.route("//lock",methods = ['POST', 'GET']) -def unlock(lock): +def lock(lock): return handle_lock(lock) @app.route("//users",methods = ['GET']) From fef725f8d060824f57b26fea425414f576a172b7 Mon Sep 17 00:00:00 2001 From: Ed Boal Date: Mon, 14 Nov 2022 00:06:06 -0500 Subject: [PATCH 4/5] Added Lock Entity Instructions --- README.md | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1d65d94..23a37c6 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Requires gateway and uses TT lock API curl --location -g --request POST 'https://euapi.ttlock.com/v3/user/register' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'clientId=your id' \ ---data-urlencode 'clientSecret=your secret' \ +--data-urlencode 'client=your secret' \ --data-urlencode 'username=lockuser' \ --data-urlencode 'password=your application users password md5 hashed' \ --data-urlencode 'date=1650909361599' @@ -41,9 +41,9 @@ docker run \ ``` rest: - scan_interval: 60 - resource: http://192.168.1.162:8125/123 + resource: http://192.168.1.100:5000/123 sensor: - - name: "Front Door" + - name: "Front Door Lock" value_template: "OK" json_attributes: - "autoLockTime" @@ -56,8 +56,33 @@ rest: - "passageModeAutoUnlock" - "soundVolume" - "tamperAlert" + + - scan_interval: 60 + resource: http://192.168.1.100:5000/123/getstatus + sensor: + - name: "Front Door ttlock Status" + value_template: "{{ value_json.state }}" + unique_id: frontdoor_ttlock_status + json_attributes: + - "sensorState" + - "state" + + rest_command: - unlock_door: - url: "http://192.168.1.162:8125/123/unlock" + unlock_front_door: + url: "http://192.168.1.100:5000/123/unlock" + method: get + lock_front_door: + url: "http://192.168.1.100:5000/123/lock" method: get -``` \ No newline at end of file + +lock: + - platform: template + name: Front Door + value_template: "{{ state_attr('sensor.frontdoor_ttlock_status', 'state') | int(0) != 1 }}" + optimistic: true + lock: + - service: rest_command.lock_front_door + unlock: + - service: rest_command.unlock_front_door +``` From 15135159dacc1b2643d9690fa7a0e56b42f99f32 Mon Sep 17 00:00:00 2001 From: Ed Boal Date: Mon, 14 Nov 2022 20:50:02 -0500 Subject: [PATCH 5/5] Undo accidental change --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 23a37c6..c8c5105 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Requires gateway and uses TT lock API curl --location -g --request POST 'https://euapi.ttlock.com/v3/user/register' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'clientId=your id' \ ---data-urlencode 'client=your secret' \ +--data-urlencode 'clientSecret=your secret' \ --data-urlencode 'username=lockuser' \ --data-urlencode 'password=your application users password md5 hashed' \ --data-urlencode 'date=1650909361599'