Smart Home Giải pháp SDK
Thông minh Pug MK102
Thông minh Cắm MK112
Switch thông minh WS001-3
README.md - IOS

1. Dưới MKSDK Đối với thư mục Device là SDK để cấu hình các plug thông minh

1.1 Nếu bạn muốn cấu hình các thông tin sever MQTT và thông tin wifi để kết nối cho các plug thông minh,bạn cần làm các plug thông minh vào chế độ AP(Vui lòng tham khảo hướng dẫn sử dụng MokoLife):cắm phích cắm thông minh vào ổ cắm điện,bấm nút cho 10 giây cho đến khi chỉ cắm thông minh ánh sáng nhấp nháy màu hổ phách mà chỉ cắm thông minh vào chế độ AP(Ghi chú:Khoảng thời gian chờ cho chế độ AP là 3 từ phút,một khi bạn đã cấu hình các thông tin để cắm thông minh,nó sẽ kết thúc chế độ AP).Nhập trang Wlan và chọn các plug hotspot thông minh để kết nối ,khi kết nối thành công,gọi connectDeviceWithHost:Hải cảng:connectSucBlock:phương pháp connectFailedBlock để plug.Following thông minh kết nối là cấu hình hoàn chỉnh của quá trình cắm thông minh:

bước 1

[[MKSocketManager sharedInstance] connectDeviceWithHost:@”192.168.4.1″
Hải cảng:8266
connectSucBlock:^(NSString * IP, cổng NSInteger) {
//thành công kết nối
connectFailedBlock:^(* Lỗi NSError) {
//Kết nối thất bại
}];

bước 2

[[MKSocketManager sharedInstance] readSmartPlugDeviceInformationWithSucBlock:^(id returnData) {
//thiết bị đọc thành công thông tin
} failedBlock:^(* Lỗi NSError) {
//Thông tin thiết bị đọc thất bại
}];

bước 3

[[MKSocketManager sharedInstance] configMQTTServerHost:@”chủ MQTT Server của bạn”
Hải cảng:Hải cảng
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
cố sống đi:60
cleanSession:ĐÚNG
ClientId:@”thiết bị địa chỉ mac của bạn”
tên tài khoản:@”MQTT server userName của bạn”
mật khẩu:@”mật khẩu MQTT Server của bạn”
sucBlock:^(id returnData) {
//Config Success
}
failedBlock:^(* Lỗi NSError) {
//Config Không
}];

bước 4

[[MKSocketManager sharedInstance] configWifiSSID:ssid wifi của bạn
mật khẩu:mật khẩu mạng wifi
Bảo vệ:wifiSecurity_WPA2_PSK
sucBlock:^(id returnData) {
//Config Success
} failedBlock:^(* Lỗi NSError) {
//Config Không
}];

2. Thư mục MKSDKForMqttServer là SDK mà cấu hình APP và MQTTServer

2.1 MKMQTTServerManagerDelegate
@protocol MKMQTTServerManagerDelegate

(khoảng trống)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)tiểu bang;//phương pháp đại biểu nhà nước kết nối

(khoảng trống)SessionManager:(MKMQTTServerManager *)SessionManager didReceiveMessage:(NSData *)dữ liệu ontopic:(NSString *)đề tài;//Nhận dữ liệu từ máy chủ MQTT

@kết thúc

2.2 APP kết nối đến máy chủ MQTT
Khi mạng có sẵn,gọi [[MKMQTTServerManager sharedInstance] connectMQTTServer:Hải cảng:tls:cố sống đi:dọn dẹp:auth:người sử dụng:vượt qua:ClientId:] để kết nối máy chủ MQTT của bạn.

2.3 Theo dõi chủ đề
Vui lòng tham khảo các tài liệu giao thức MQTT cho chủ đề của plug.Call thông minh – (khoảng trống)đăng ký:(NSArray *)topicList và – (khoảng trống)hủy đăng ký:(NSArray *)topicList để đăng ký và huỷ đăng ký chủ đề separatrly.

2.4 APP công bố dữ liệu đến một chủ đề cụ thể
Vui lòng tham khảo các tài liệu giao thức MQTT cho chủ đề của các plug thông minh. – (khoảng trống)gửi dữ liệu:(NSDictionary *)chủ đề dữ liệu:(NSString *)chủ đề sucBlock:(khoảng trống (^)(khoảng trống))sucBlock failedBlock:(khoảng trống (^)(* Lỗi NSError))failedBlock

README.md - Android

1.Nhập khẩu và sử dụng SDK

1.1 mokosupport dự án module nhập khẩu

1.2 tập tin và gọi mokosupport dự án settings.gradle Configure:

bao gồm ‘:ứng dụng’,’:mokosupport’

1.3 Chỉnh sửa các tập tin build.gradle của dự án chính:

phụ thuộc {
thực hiện fileTree(bạn: ‘Libs’, bao gồm: [‘* .Jar’])
dự án thực hiện(con đường: ‘: mokosupport’)
}

1.4 Nhập SDK trong quá trình khởi dự án:

public class BaseApplication mở rộng ứng dụng {
@Ghi đè
public void onCreate() {
super.onCreate();
// khởi
MokoSupport.getInstance().trong đó(getApplicationContext());
}
}

2.Giới thiệu chức năng

    • Các phương pháp được cung cấp trong SDK bao gồm: giao tiếp ổ cắm với thiết bị WIFI, Dịch vụ kết nối MQTT, phân ly, chủ đề thuê bao, chủ đề ngừng đăng ký, bài chủ đề, bản ghi nhật ký, vv.
    • Ổ cắm giao tiếp được gọi bởi SocketService;
    • MQTT thông tin liên lạc có thể được gọi bởi MokoSupport.getInstance();

2.1 SocketService

Trước khi tạo một kết nối socket, bạn cần phải xác nhận liệu APP được kết nối với WIFI của thiết bị. Kết nối địa chỉ IP mặc định 192.168.4.1, số cổng mặc định là 8266, mà có thể được sửa đổi trong SocketThread.

2.1.1 khởi

bindService(Ý định mới(điều này, SocketService.class), mServiceConnection, BIND_AUTO_CREATE);

Bắt đầu SocketService, và nhận được đối tượng SocketService, gọi mService.startSocket() để tạo ra một sợi Ổ cắm, kết nối các thiết bị, và chờ đợi chủ đề cho thông điệp được gửi đi sau khi kết nối thành công;

2.1.2 Nhận tình trạng kết nối và đáp ứng

1.Lấy tình trạng kết nối bằng cách đăng ký phát sóng:

Broadcast HÀNH ĐỘNG:MokoConstants.ACTION_AP_CONNECTION

Tình trạng kết nối:

    • kết nối thành công:MokoConstants.CONN_STATUS_SUCCESS
    • Đang kết nối:MokoConstants.CONN_STATUS_CONNECTING
    • Kết nối thất bại:MokoConstants.CONN_STATUS_FAILED
    • thời gian chờ kết nối:MokoConstants.CONN_STATUS_TIMEOUT

2、Nhận được phản ứng giao tiếp socket bằng cách đăng ký phát sóng :

Broadcast HÀNH ĐỘNG:MokoConstants.ACTION_AP_SET_DATA_RESPONSE

Nhận phản hồi:

DeviceResponse = phản ứng (DeviceResponse) intent.getSerializableExtra(MokoConstants.EXTRA_AP_SET_DATA_RESPONSE);

2.1.3 Ổ cắm
Gửi dữ liệu chỉ chấp nhận chuỗi ở định dạng JSON

ví dụ:

1、Nhận thông tin thiết bị:

{
“cú đội đầu” : 4001
}

phản ứng:

{
“đang” : 0,
“thông điệp” : “sự thành công”,
“kết quả” : {
“cú đội đầu” : 4001,
“device_function” : “iot_plug”,
“Tên thiết bị” : “plug_one”,
“device_specifications” : “chúng ta”,
“device_mac” : “11:22:33:44:55:66”,
“loại thiết bị” : “1”
}
}

2、 Gửi thông tin máy chủ MQTT

{
“cú đội đầu” : 4002,
“tổ chức” : “45.32.33.42”,
“Hải cảng” : 1883,
“connect_mode” : 0,
“tên tài khoản” : “DVES_USER”,
“mật khẩu” : “DVES_PASS”,
“cố sống đi” : 120,
“qos” : 2,
“clean_session” :1
}
phản ứng:

{
“đang” : 0,
“thông điệp” : “sự thành công”,
“kết quả” : {
“cú đội đầu” : 4002
}
}

3、Gửi một mạng WIFI với một cụ SSID

{
“cú đội đầu” : 4003,
“wifi_ssid” : “Fitpolo”,
“wifi_pwd” : “fitpolo1234.”,
“WIFI_SECURITY” : 3
}

phản ứng:

{
“đang” : 0,
“thông điệp” : “sự thành công”,
“kết quả” : {
“cú đội đầu” : 4003
}
}

2.2 MokoSupport

2.2.1 Kết nối đến máy chủ MQTT
1、tạo MqttAndroidClient

public void creatClient(chuỗi máy chủ, cổng chuỗi, chuỗi ClientId, boolean tlsConnection)

2、Kết nối đến máy chủ

public void connectMqtt(tùy chọn MqttConnectOptions)
Lấy Trạng thái tạo theo MqttCallbackHandler và nhận máy chủ dạng dữ liệu trở lại

@Ghi đè
public void connectComplete(kết nối lại boolean, chuỗi serverURI) {

}
@Ghi đè
public void connectionLost(nguyên nhân Throwable) {

}
@Ghi đè
public void messageArrived(chuỗi chủ đề, nhắn MqttMessage) throws Exception {

}

3、Lấy tình trạng kết nối bằng cách đăng ký phát sóng:

Broadcast HÀNH ĐỘNG:MokoConstants.ACTION_MQTT_CONNECTION

Tình trạng kết nối:

    • thành công kết nối:MokoConstants.MQTT_CONN_STATUS_SUCCESS
    • ngắt kết nối:MokoConstants.MQTT_CONN_STATUS_LOST

4、Nhận được dữ liệu trở về từ máy chủ bằng cách đăng ký phát sóng

Broadcast HÀNH ĐỘNG:MokoConstants.ACTION_MQTT_RECEIVE

dữ liệu trở lại:

    • Trở Topic dữ liệu:

MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC

    • Trở dữ liệu tin nhắn:

MokoConstants.EXTRA_MQTT_RECEIVE_MESSAGE

Các dữ liệu trở lại là ở định dạng JSON,ví dụ:

{
“Tên công ty” : “bột”,
“ngay san xuat” : “201801”,
“dòng sản phẩm” : “plug_one”,
“phiên bản phần mềm” : “000001”
“device_mac” : “11:22:33:44:55:66”
}

2.2.2 màn hành động
MQTT truyền chứa bốn loại Actions. Để thực hiện mỗi hành động, bạn cần phải thiết lập ActionListener để giám sát trạng thái của hành động:

Hành động enum công cộng {
/**
* Connect hành động
**/
KẾT NỐI,
/**
* Theo dõi hành động
**/
Theo dõi,
/**
* Xuất bản Action
**/
CÔNG BỐ,
/**
* Hủy đăng ký hành động
**/
UNSUBSCRIBE
}

Lấy tình trạng hành động bằng cách đăng ký phát sóng:

1、KẾT NỐI

Broadcast HÀNH ĐỘNG:MokoConstants.ACTION_MQTT_CONNECTION

Kết nối thất bại:MokoConstants.MQTT_CONN_STATUS_FAILED
2、Theo dõi

Broadcast HÀNH ĐỘNG:MokoConstants.ACTION_MQTT_SUBSCRIBE

Theo dõi Chủ đề:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
Theo dõi tình trạng:MokoConstants.EXTRA_MQTT_STATE

3、CÔNG BỐ

Broadcast HÀNH ĐỘNG:MokoConstants.ACTION_MQTT_PUBLISH

trạng thái xuất bản:MokoConstants.EXTRA_MQTT_STATE

4、UNSUBSCRIBE

Broadcast HÀNH ĐỘNG:MokoConstants.ACTION_MQTT_UNSUBSCRIBE

tình trạng Hủy đăng ký:MokoConstants.EXTRA_MQTT_STATE

2.2.3 Theo dõi chủ đề

MokoSupport.getInstance().đăng ký(chuỗi chủ đề, qos int)

2.2.4 công bố thông tin

MokoSupport.getInstance().công bố(chuỗi chủ đề, nhắn MqttMessage)

2.2.5 Hủy đăng ký chủ đề

MokoSupport.getInstance().Hủy đăng ký(chuỗi chủ đề)

2.2.6 Xác định xem MQTT được kết nối

MokoSupport.getInstance().đã kết nối()

2.2.7 phân ly

MokoSupport.getInstance().disconnectMqtt()

3.Lưu Đăng nhập vào thẻ SD
SDK tích hợp Log lưu vào chức năng thẻ SD, được gọi là https://github.com/elvishew/xLog

Phương pháp khởi tạo trong MokoSupport.getInstance().trong đó(getApplicationContext())

Tên thư mục tập tin và tên được lưu trong thẻ SD có thể được sửa đổi.

public class LogModule {
tĩnh private String thức TAG = “mokoLife”;// tên file
tĩnh private String thức LOG_FOLDER = “mokoLife”;// tên thư mục

}

chiến lược lưu trữ: chỉ lưu trữ dữ liệu trong ngày và các dữ liệu của ngày hôm trước , tập tin được hậu tố with.bak

gọi phương thức:

LogModule.v(“Thông tin đăng nhập”);
LogModule.d(“Thông tin đăng nhập”);
LogModule.i(“Thông tin đăng nhập”);
LogModule.w(“Thông tin đăng nhập”);
LogModule.e(“Thông tin đăng nhập”);