스마트 홈 솔루션 SDK
스마트 퍼그 MK102
스마트 플러그 MK112
스마트 스위치 WS001-3
README.md - IOS

1. 장치 폴더의 MKSDK 아래의 스마트 플러그를 구성 할 수있는 SDK입니다

1.1 당신이 구성을 원하는 경우 MQTT 끊다 정보와 와이파이 정보는 스마트 플러그 연결,당신은 AP 모드로 스마트 플러그를 만들 필요가(MokoLife 사용자 설명서를 참조하십시오):전원 소켓에 스마트 플러그를 연결,의 버튼을 누르면 10 AP 모드로 스마트 플러그를 나타냅니다 스마트 플러그 표시등이 점멸 황색 표시등까지 초(노트:AP 모드의 제한 시간은 3 의사록,당신은 스마트 플러그에 정보를 구성한 후,그것은 AP 모드를 종료합니다).무선 랜 페이지를 입력하고 연결하는 스마트 플러그 핫스팟을 선택 ,때 성공적으로 연결,전화 connectDeviceWithHost:포트:connectSucBlock:연결 스마트 plug.Following에 connectFailedBlock 방법은 스마트 플러그 과정의 전체 구성입니다:

1 단계

[[MKSocketManager sharedInstance] connectDeviceWithHost:@”192.168.4.1″
포트:8266
connectSucBlock:^(있는 NSString * IP, NSInteger 포트) {
//연결 성공
connectFailedBlock:^(* 오류 NSError) {
//연결 실패
}];

2 단계

[[MKSocketManager sharedInstance] readSmartPlugDeviceInformationWithSucBlock:^(ID returnData) {
//읽기 장치 정보 성공
} failedBlock:^(* 오류 NSError) {
//읽기 디바이스 정보 실패
}];

STEP3

[[MKSocketManager sharedInstance] configMQTTServerHost:@”당신의 MQTT 서버 호스트”
포트:포트
connectMode:mqttServerConnectTCPMode
QoS를:mqttQosLevelExactlyOnce
살아 유지:60
cleanSession:예
된 ClientID:@”장치의 MAC 주소”
사용자 이름:@”당신의 MQTT 서버는 userName”
암호:@”당신의 MQTT 서버 비밀번호”
sucBlock:^(ID returnData) {
//구성 성공
}
failedBlock:^(* 오류 NSError) {
//구성 실패
}];

STEP4

[[MKSocketManager sharedInstance] configWifiSSID:무선 랜의 SSID
암호:무선 랜 암호
보안:wifiSecurity_WPA2_PSK
sucBlock:^(ID returnData) {
//구성 성공
} failedBlock:^(* 오류 NSError) {
//구성 실패
}];

2. MKSDKForMqttServer 폴더는 APP와 MQTTServer를 구성하는 SDK입니다

2.1 MKMQTTServerManagerDelegate
@protocol MKMQTTServerManagerDelegate

(빈)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)상태;//연결 상태 위임 방법

(빈)SessionManager에:(MKMQTTServerManager *)SessionManager에 didReceiveMessage:(을 NSData *)데이터 ontopic:(있는 NSString *)이야기;//MQTT 서버에서 데이터를 수신

@종료

2.2 APP는 MQTT 서버에 연결
때 네트워크를 사용할 수,요구 [[MKMQTTServerManager sharedInstance] connectMQTTServer:포트:TLS:살아 유지:깨끗한:인증:사용자:통과하다:된 ClientID:] 당신의 MQTT 서버를 연결하는.

2.3 주제를 구독
스마트 plug.Call의 주제에 대한 MQTT protocal 문서를 참조하십시오 – (빈)구독:(있는 NSArray *)topicList 및 – (빈)구독 취소:(있는 NSArray *)topicList 구독 및 separatrly 항목을 취소합니다.

2.4 APP는 특정 주제에 데이터를 게시
스마트 플러그의 주제에 대한 MQTT protocal 문서를 참조하십시오. – (빈)같이 sendData:(있는 NSDictionary *)데이터 항목:(있는 NSString *)주제 sucBlock:(빈 (^)(빈))sucBlock failedBlock:(빈 (^)(* 오류 NSError))failedBlock

README.md - 안드로이드

1.가져 오기 및 사용 SDK

1.1 가져 오기 모듈 프로젝트 mokosupport

1.2 구성 settings.gradle 파일을 호출 mokosupport 프로젝트:

포함 ':앱',':mokosupport’

1.3 주요 프로젝트의 편집 build.gradle 파일:

종속 {
구현 fileTree(당신: 'libs와', 포함: ['*.항아리'])
구현 프로젝트(통로: ': mokosupport ')
}

1.4 프로젝트를 초기화하는 동안 가져 오기 SDK:

공용 클래스 BaseApplication는 응용 프로그램을 확장 {
@우세하다
공공 무효에서 onCreate() {
super.onCreate();
// 초기화
MokoSupport.getInstance().초기화(getApplicationContext());
}
}

2.기능 소개

    • SDK에서 제공하는 방법은 다음과 같습니다: WIFI 장치와 소켓 통신, MQTT 연결 서비스, 단절, 가입 주제, 구독 취소 주제, 포스트 주제, 로그 기록, 기타.
    • 소켓 통신은 SocketService에 의해 호출된다;
    • MQTT 통신은 MokoSupport.getInstance 호출 할 수 있습니다();

2.1 SocketService

소켓 연결을 만들기 전에, 앱이 기기의 WIFI에 연결되어 있는지 여부는 확인 필요. 기본 IP 주소를 연결 192.168.4.1, 기본 포트 번호는 8266, 이는 SocketThread으로 변형 될 수있다.

2.1.1 초기화

bindService(새로운 의도(이, SocketService.class), mServiceConnection, BIND_AUTO_CREATE);

시작 SocketService, 그리고 SocketService 개체를 가져, 전화 mService.startSocket() 소켓 스레드를 만들 수 있습니다, 장치를 연결, 연결에 성공 후 메시지에 대한 스레드 대기를 확인할 수 있습니다;

2.1.2 연결 상태 및 응답 받기

1.브로드 캐스트를 등록하여 연결 상태를 가져옵니다:

방송 ACTION:MokoConstants.ACTION_AP_CONNECTION

연결 상태:

    • 성공적으로 연결:MokoConstants.CONN_STATUS_SUCCESS
    • 연결:MokoConstants.CONN_STATUS_CONNECTING
    • 연결에 실패:MokoConstants.CONN_STATUS_FAILED
    • 접속 시간 초과:MokoConstants.CONN_STATUS_TIMEOUT

2、브로드 캐스트를 등록하여 소켓 통신 응답을 받기 :

방송 ACTION:MokoConstants.ACTION_AP_SET_DATA_RESPONSE

응답을 받기:

DeviceResponse 응답 = (DeviceResponse) intent.getSerializableExtra(MokoConstants.EXTRA_AP_SET_DATA_RESPONSE);

2.1.3 소켓
보내기 데이터는 JSON 형식의 문자열을 받아

예를 들어,:

1、장치 정보 얻기:

{
“머리글” : 4001
}

응답:

{
“암호” : 0,
“메시지” : “성공”,
“결과” : {
“머리글” : 4001,
“device_function” : “iot_plug”,
“장치 이름” : “plug_one”,
“device_specifications” : “우리”,
“device_mac” : “11:22:33:44:55:66”,
“기기 종류” : “1”
}
}

2、 MQTT 서버 정보를 보내기

{
“머리글” : 4002,
“주최자” : “45.32.33.42”,
“포트” : 1883,
“connect_mode” : 0,
“사용자 이름” : “DVES_USER”,
“암호” : “DVES_PASS”,
“살아 유지” : 120,
“QoS를” : 2,
“clean_session” :1
}
응답:

{
“암호” : 0,
“메시지” : “성공”,
“결과” : {
“머리글” : 4002
}
}

3、특정와 와이파이 네트워크를 보내기 SSID

{
“머리글” : 4003,
“wifi_ssid” : “Fitpolo”,
“wifi_pwd” : “fitpolo1234.”,
“WIFI_SECURITY (으)” : 3
}

응답:

{
“암호” : 0,
“메시지” : “성공”,
“결과” : {
“머리글” : 4003
}
}

2.2 MokoSupport

2.2.1 MQTT 서버에 연결
1、MqttAndroidClient 만들기

공공 무효 creatClient(문자열 호스트, 문자열 포트, 문자열 된 ClientID, 부울 tlsConnection)

2、서버에 연결

공공 무효 connectMqtt(MqttConnectOptions 옵션)
MqttCallbackHandler에 따라 생성 상태를 확인하고 반환 데이터 형태로 서버를받을

@우세하다
공공 무효 connectComplete(부울 재 연결, 문자열 serverURI) {

}
@우세하다
공공 무효 connectionLost(의 Throwable 원인) {

}
@우세하다
공공 무효 messageArrived(문자열 주제, MqttMessage 메시지) 예외를 throw {

}

3、브로드 캐스트를 등록하여 연결 상태를 가져옵니다:

방송 ACTION:MokoConstants.ACTION_MQTT_CONNECTION

연결 상태:

    • 연결 성공:MokoConstants.MQTT_CONN_STATUS_SUCCESS
    • 분리:MokoConstants.MQTT_CONN_STATUS_LOST

4、방송을 등록하여 서버에서 반환 된 데이터를 수신

방송 ACTION:MokoConstants.ACTION_MQTT_RECEIVE

반환 데이터:

    • 반환 데이터 주제:

MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC

    • 반환 데이터 메시지:

MokoConstants.EXTRA_MQTT_RECEIVE_MESSAGE

반환 데이터는 JSON 형식으로되어,예를 들어,:

{
“회사 이름” : “가루”,
“production_date” : “201801”,
“product_model” : “plug_one”,
“펌웨어 버전” : “000001”
“device_mac” : “11:22:33:44:55:66”
}

2.2.2 작업 모니터
MQTT 통신은 작업 네 가지 종류가 포함되어. 각각의 작업을 실행하려면, 당신은 작업의 상태를 모니터링하는 설정의 ActionListener 필요:

공공 열거 조치 {
/**
* 연결 작업
**/
잇다,
/**
* 액션 가입
**/
구독,
/**
* 액션을 게시
**/
게시,
/**
* 탈퇴 조치
**/
구독 취소
}

브로드 캐스트를 등록하여 동작 상태를 가져옵니다:

1、잇다

방송 ACTION:MokoConstants.ACTION_MQTT_CONNECTION

연결에 실패:MokoConstants.MQTT_CONN_STATUS_FAILED
2、구독

방송 ACTION:MokoConstants.ACTION_MQTT_SUBSCRIBE

주제를 구독:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
상태를 구독:MokoConstants.EXTRA_MQTT_STATE

3、게시

방송 ACTION:MokoConstants.ACTION_MQTT_PUBLISH

상태를 게시:MokoConstants.EXTRA_MQTT_STATE

4、구독 취소

방송 ACTION:MokoConstants.ACTION_MQTT_UNSUBSCRIBE

탈퇴 상태:MokoConstants.EXTRA_MQTT_STATE

2.2.3 주제를 구독

MokoSupport.getInstance().가입(문자열 주제, INT의 QoS)

2.2.4 정보를 게시

MokoSupport.getInstance().게시(문자열 주제, MqttMessage 메시지)

2.2.5 탈퇴 주제

MokoSupport.getInstance().구독 취소(문자열 주제)

2.2.6 MQTT가 연결되어 있는지 확인

MokoSupport.getInstance().연결되었다()

2.2.7 단절

MokoSupport.getInstance().disconnectMqtt()

3.SD 카드에 저장 로그인
SDK는 로그는 SD 카드 기능에 저장 통합, 라고 HTTPS://github.com/elvishew/xLog

MokoSupport.getInstance의 초기화 방법().초기화(getApplicationContext())

SD 카드에 저장된 폴더 이름과 파일 이름을 수정할 수 있습니다.

공용 클래스 LogModule {
개인 정적 최종 문자열 TAG = “mokoLife”;// 파일 이름
개인 정적 최종 문자열 LOG_FOLDER = “mokoLife”;// 폴더 이름

}

스토리지 전략: 단 하루의 데이터와 일의 데이터 이전을 저장 , 파일이 with.bak을 접미사

호출 방법:

LogModule.v(“로그 정보”);
LogModule.d(“로그 정보”);
LogModule.i(“로그 정보”);
LogModule.w(“로그 정보”);
LogModule.e(“로그 정보”);