ソースを参照

Add usage example for WoCurtain (Curtain 3) (#313)

* Add usage example for WoCurtain (Curtain 3)

* chore(pre-commit.ci): auto fixes

* Refactor BLE address as variable and fix formatting

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Filip Jaksic <filip.git@tmp.jkscx.com>
Filip Jaksic 1 週間 前
コミット
837c3f3134
1 ファイル変更34 行追加3 行削除
  1. 34 3
      README.md

+ 34 - 3
README.md

@@ -2,7 +2,7 @@
 
 
 Library to control Switchbot IoT devices https://www.switch-bot.com/bot
 Library to control Switchbot IoT devices https://www.switch-bot.com/bot
 
 
-## Obtaining locks encryption key
+## Obtaining encryption key for Switchbot Locks
 
 
 Using the script `scripts/get_encryption_key.py` you can manually obtain locks encryption key.
 Using the script `scripts/get_encryption_key.py` you can manually obtain locks encryption key.
 
 
@@ -17,9 +17,9 @@ Encryption key: xxxxxxxxxxxxxxxx
 Where `MAC` is MAC address of the lock and `USERNAME` is your SwitchBot account username, after that script will ask for your password.
 Where `MAC` is MAC address of the lock and `USERNAME` is your SwitchBot account username, after that script will ask for your password.
 If authentication succeeds then script should output your key id and encryption key.
 If authentication succeeds then script should output your key id and encryption key.
 
 
-Examples:
+## Examples:
 
 
-- WoLock
+#### WoLock
 
 
 ```python
 ```python
 import asyncio
 import asyncio
@@ -33,5 +33,36 @@ async def main():
 
 
 
 
 asyncio.run(main())
 asyncio.run(main())
+```
+
+#### WoCurtain (Curtain 3)
+
+```python
+import asyncio
+from pprint import pprint
+from switchbot import GetSwitchbotDevices
+from switchbot.devices import curtain
+
+
+async def main():
+    # get the BLE advertisement data of all switchbot devices in the vicinity
+    advertisement_data = await GetSwitchbotDevices().discover()
+
+    for i in advertisement_data.values():
+        pprint(i)
+        print()  # print newline so that devices' data is separated visually
+
+    # find your device's BLE address by inspecting the above printed debug logs, example below
+    ble_address = "9915077C-C6FD-5FF6-27D3-45087898790B"
+    # get the BLE device (via its address) and construct a curtain device
+    ble_device = advertisement_data[ble_address].device
+    curtain_device = curtain.SwitchbotCurtain(ble_device, reverse_mode=False)
+
+    pprint(await curtain_device.get_device_data())
+    pprint(await curtain_device.get_basic_info())
+    await curtain_device.set_position(100)
+
 
 
+if __name__ == "__main__":
+    asyncio.run(main())
 ```
 ```