Skip to content

Sesame Bluetooth API 3.0は、オープンソース、使いやすく、強力、かつ永続的に無料です。公式のセサミアプリもこのBluetooth APIsを使用しており、このBluetooth APIsを用いてあなたのアプリにもセサミアプリが持つ全ての機能を組み込むことができます。

License

Notifications You must be signed in to change notification settings

CANDY-HOUSE/API_document

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

| 中文版 | 日本語版 | English Version |

Sesame概述

  • SesameSDK 是一个简单、强大且免费的蓝牙/物联网(物联网)库,适用于 iOS & Android 应用程序。Sesame 官方应用程序也是使用这个 SesameSDK 构建的,芝麻应用程序的所有功能都可以通过这个 SesameSDK 实现。SesameSDK 允许您:

  • 注册 Sesame 设备(Sesame 5、Sesame 5 Pro、Sesame Bike2、Sesame BLE Connector1、Sesame open sensor、Sesame Touch 1 Pro、 Sesame Touch 1 、WIFI Module2)

  • 锁定和解锁

  • 获取历史记录

  • 更新 SesameOS3

  • SesameOS3 设备的各种设置

  • 获取电池电量

  • 项目 SesameOs3 主要解决硬件设备 Sesame 5、Sesame 5 Pro、Sesame Bike2、Sesame BLE Connector1、Sesame open sensor、Sesame Touch 1 ProCHBluetoothCenter 類別說明、 Sesame Touch 1 、WIFI Module2 等产品通过蓝牙连接。帮助用户通过 iOS 应用软件智能操作硬件。

Sesame智能门锁图示

block-beta
	columns 5
	space space bike["Bike"]space  finger(["Finger, Card,\nPw, +Face"])
	space:5
	wifi["Wifi Module2"] space sesame["Sesame 4/5"] space touch["Touch/Touch Pro"]
	space:5
	bot["Bot"] space mobile["Mobile Phone"] space open["Open Sensor"]
	
	bike-->sesame
	finger-->touch
	wifi-->sesame
	sesame-->touch touch-->sesame
	bot-->mobile mobile-->bot
	mobile-->open open-->mobile
	
	wifi-->bot bot-->wifi
	wifi-->mobile mobile-->wifi
	sesame-->mobile mobile-->sesame
	
	sesame-->open open-->sesame
	touch-->mobile mobile-->touch
	
	
	style sesame fill:#90EE90
Loading
flowchart TB
    A(((New Arrival)))
    B[Sesame USA]
    C[A1 + C1 mini]
    D[Wifi Module 2]
    E[Bot2]
    style A fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
    classDef back fill:#969,stroke:#333,stroke-dasharray: 5 5
    class B,C,D,E back
Loading

1. 项目依赖

  • [Sesame 5] :该实例对象应用于 Sesame5 、Sesame5 Pro 产品
  • [Sesame Bike 2] : 该实例对象应用于 Sesame Bike 2 产品
  • [Sesame WiFi Module 2]:该实例对象应用于 Sesame WiFi Module 2 产品
  • [Sesame Touch Pro]:该实例对象应用于 Sesame BLE Connector1、 Sesame Touch 1 Pro 、 Sesame Touch 1 产品
  • [Sesame Open Sensor 1]:该实例对象应用于 Sesame Open Sensor 1 产品
  • [Class 对象]

2、SesameSDK安装要求

  • 支持iOS 12以上的苹果设备
  1. Scheme 切到 SesameSDK, 選擇 Any iOS Device
  2. command + shift + k 清除 product 資料夾
  3. command + b 打包 SDK
  4. 完成後到 Xcode -> SDK project -> Products 資料夾底下 找到 SesameSDK.framework 點擊右鍵 選擇在 Finder 打開, 取得 SesameSDK.framework.
  • SesameWatchKitSDK
  1. Scheme 切到 SesameWatchKitSDK, 選擇 Any watch OS Device
  2. command + shift + k 清除 product 資料夾
  3. command + b 打包 SDK
  4. 完成後到 Xcode -> SDK project -> Products 資料夾底下 找到 SesameWatchKitSDK.framework 點擊右鍵 選擇在 Finder 打開, 取得 SesameWatchKitSDK.framework.

3、SesameSDK集成方式

4、SesameBLE通讯加密层级

进入SesameBLE通讯加密层级

5、Sesame通讯控制指令

进入Sesame通讯控制指令

6、Sesame API 接口文档

进入Sesame API 接口文档

7、APP更多详细解读

CHBluetoothCenter 類別說明 此 APP 的 Core Data 本地儲存管理中心,以shared 建立單例,用來緩存數據以提高性能。將CHDeviceKey 存入 Core Data 前須轉換為 CHDeviceMO(MO = manage object)。 CHDeviceMO 即代表本地數據庫中的 Sesame 設備。

屬性

  • backgroundContext 一個 Core Data 的 NSManagedObjectContext,允許在背景執行緒中執行數據操作。
  • persistentContainer
  • cacheDevicesCHDeviceMO 用的陣列

初始化

  • iOS 在背景列獲取設備

方法

//---初始化---
func initDevices()
// 從 Core Data 中提取所有的 CHDeviceMO 並將它們儲存到 cacheDevices

private init()
//設置 Core Data 的存儲、獲取數據模型、轉換名稱、設置存儲的位置等。
//---

func appendDevice(_ CHDeviceKey: CHDeviceKey)
//把`CHDeviceKey`轉成`CHDeviceMO`,並添加到 Core Data 和快取中。

func getDevice(deviceID: UUID?) -> CHDeviceMO?
//根據設備 UUID 在緩存中搜尋特定 CHDeviceMO 對象

func deleteDevice(_ device: CHDeviceMO)
// 刪除指定`DeviceMO`

func saveifNeed()
//如果有任何未保存的變更,則保存到 Core Data

func lastCachedevices() -> [CHDeviceMO]
//從 Core Data 中抓到所有`DeviceMO`

func logout()
//刪除所有` CHDeviceMO` 對象並清空緩存

8 CHDevice 協議

所有 Sesame 裝置都需要實現這些屬性和方法

屬性

  • delegate: 這是 CHDeviceStatusDelegate 的代理,用於監聽裝置狀態的變化
  • rssi : 接收藍芽信號強度指示符 (RSSI) = Sesame 與手機的距離
  • deviceId: Sesame 唯一識別碼(UUID)
  • isRegistered:該 Sesame 是否已被註冊
  • txPowerLevel: Sesame 的藍芽功率等級
  • productModel: Sesame 產品型號
  • deviceStatus: CHDeviceStatus 的值,表示裝置的當前狀態
  • deviceShadowStatus : AWS Iot 影子狀態(Optional)
  • mechStatus : Sesame 機械狀態(Optional)

方法

- getKey() -> CHDeviceKey? //如果裝置已註冊,則會返回鑰匙;否則,會返回 nil

- connect(result: @escaping (CHResult<CHEmpty>))// 建立藍芽連線到裝置

- dropKey(result: @escaping (CHResult<CHEmpty>)): // 刪除鑰匙

- disconnect(result: @escaping (CHResult<CHEmpty>))// 斷開與Sesame藍芽連線

- getVersionTag(result: @escaping (CHResult<String>)) // 取得固件版本號

- updateFirmware(result: @escaping CHResult<CBPeripheral?>) // 更新Sesame固件

- getTimeSignature() -> String //???

- reset(result: @escaping CHResult<CHEmpty>) //(循序圖)
- register(result: @escaping CHResult<CHEmpty>) //(循序圖)

- createGuestKey(result: @escaping CHResult<String>) // (循序圖)

- getGuestKeys(result: @escaping CHResult<[CHGuestKey]>) // (循序圖)

- removeGuestKey(_ guestKeyId: String, result: @escaping CHResult<CHEmpty>) // 移除(revoke?)訪客鑰匙

- updateGuestKey(_ guestKeyId: String, name: String, result: @escaping CHResult<CHEmpty>)

方法

getFirZip() -> URL: 取得Sesame的固件壓縮檔的 URL
errorFromResultCode(_ resultCode: SesameResultCode) -> Error: 將 SesameResultCode 轉換為 Error

開關型產品

Sesame3/4/5/5 Pro, Bot1, Bike1/2

public protocol CHSesameLock: CHDevice {
    var mechStatus: CHSesameProtocolMechStatus? { get set }
    func getHistoryTag() -> Data?
    func setHistoryTag(\_ tag: Data, result: @escaping (CHResult<CHEmpty>))
}

連接型產品

Wifi2, Sesame Touch/Touch Pro, Open Sensor ,Ble Connector

public protocol CHSesameConnector {
    var sesame2Keys: [String: String] { get }
    func insertSesame(_ device: CHDevice, result: @escaping CHResult<CHEmpty>)
    func removeSesame(tag: String, result: @escaping CHResult<CHEmpty>)
}

重点数据结构

https://github.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/tree/master/doc/重點數據結構

9、APP框架/模组选用

  • 藍芽: CoreBluetooth

https://developer.apple.com/documentation/corebluetooth

  • 本地存儲: CoreData

https://developer.apple.com/documentation/coredata

官方文檔 https://developer.apple.com/documentation/appintents 參考文章 https://medium.com/simform-engineering/how-to-integrate-siri-shortcuts-and-design-custom-intents-tutorial-e53285b550cf

  • 手機通知

https://developer.apple.com/documentation/usernotifications

About

Sesame Bluetooth API 3.0は、オープンソース、使いやすく、強力、かつ永続的に無料です。公式のセサミアプリもこのBluetooth APIsを使用しており、このBluetooth APIsを用いてあなたのアプリにもセサミアプリが持つ全ての機能を組み込むことができます。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published