Smart Home Solution SDK
Slimme Pug MK102
Smart Plug MK112
Smart Switch WS001-3
README.md - IOS

1. Onder de MKSDK Voor map Device is de SDK aan de slimme plug configureren

1.1 Als u wilt dat configure de MQTT sever informatie en de wifi informatie aan te sluiten voor slimme plug,U hebt de slimme stekker in AP-modus te maken(Raadpleeg de MokoLife gebruikershandleiding):steek de slimme stekker in het stopcontact,druk op de knop 10 seconden tot de slimme plug knipperen oranje licht dat de slimme aansluiting geven op AP-modus(Notitie:De time-out voor AP mode 3 notulen,zodra u de informatie aan de slimme plug hebt geconfigureerd,het zal eindigen AP-modus).Voer het Wlan-pagina en selecteer de slimme plug hotspot te verbinden ,toen met succes aan te sluiten,call connectDeviceWithHost:haven:connectSucBlock:connectFailedBlock methoden om connect slimme plug.Following is de volledige configuratie van de slimme plug proces:

stap 1

[[MKSocketManager sharedInstance] connectDeviceWithHost:@”192.168.4.1″
haven:8266
connectSucBlock:^(NSString * IP, NSInteger port) {
//connect succes
connectFailedBlock:^(* Error NSError) {
//connect is mislukt
}];

stap 2

[[MKSocketManager sharedInstance] readSmartPlugDeviceInformationWithSucBlock:^(id returnData) {
//Lees apparaat info succes
} failedBlock:^(* Error NSError) {
//Lees apparaat info is mislukt
}];

stap 3

[[MKSocketManager sharedInstance] configMQTTServerHost:@”uw MQTT server host”
haven:haven
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
in leven houden:60
cleanSession:JA
klant identificatie:@”uw apparaat mac adres”
gebruikersnaam:@”uw MQTT Server userName”
wachtwoord:@”uw MQTT Server wachtwoord”
sucBlock:^(id returnData) {
//config Succes
}
failedBlock:^(* Error NSError) {
//config mislukt
}];

stap 4

[[MKSocketManager sharedInstance] configWifiSSID:uw wifi ssid
wachtwoord:wifi wachtwoord
veiligheid:wifiSecurity_WPA2_PSK
sucBlock:^(id returnData) {
//config Succes
} failedBlock:^(* Error NSError) {
//config mislukt
}];

2. De map MKSDKForMqttServer is het SDK dat de APP en MQTTServer configureert

2.1 MKMQTTServerManagerDelegate
@protocol MKMQTTServerManagerDelegate

(leegte)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)staat;//connect staat delegeren methode

(leegte)SessionManager:(MKMQTTServerManager *)SessionManager didReceiveMessage:(NSData *)data onTopic:(NSString *)onderwerp;//Ontvangt de gegevens van de MQTT server

@einde

2.2 APP verbinding maken met de MQTT server
Wanneer het netwerk beschikbaar is,telefoontje [[MKMQTTServerManager sharedInstance] connectMQTTServer:haven:tls:in leven houden:schoon:auth:gebruiker:voorbij gaan aan:klant identificatie:] om uw MQTT server aan te sluiten.

2.3 Abonneren topic
Raadpleeg het MQTT protocal document voor het onderwerp van de slimme plug.Call – (leegte)abonnementen:(NSArray *)MotiefLijst en – (leegte)uitschrijvingen:(NSArray *)MotiefLijst om aan- en afmelden het onderwerp separatrly.

2.4 APP gegevens te publiceren naar een opgegeven onderwerp
Raadpleeg het MQTT protocal document voor het onderwerp van het slimme plug. – (leegte)verstuur data:(NSDictionary *)data topic:(NSString *)topic sucBlock:(leegte (^)(leegte))sucBlock failedBlock:(leegte (^)(* Error NSError))failedBlock

README.md - Android

1.Invoer en het gebruik SDK

1.1 Import module project mokosupport

1.2 Configure settings.gradle file en call mokosupport project:

omvatten ‘:app’,’:mokosupport’

1.3 Bewerk het build.gradle bestand van de belangrijkste project:

afhankelijkheden {
implementatie fileTree(je: ‘Libs’, omvatten: ['*.pot'])
uitvoering van het project(pad: ‘: mokosupport’)
}

1.4 Import SDK tijdens de initialisatie project:

public class BaseApplication breidt Application {
@ Override
public void onCreate() {
super.onCreate();
// initialisatie
MokoSupport.getInstance().in het(getApplicationContext());
}
}

2.functie Inleiding

    • De in SDK omvatten: Socketcommunicatie met WIFI-inrichting, MQTT verbindingsservice, ontkoppeling, abonnement topic, unsubscribe topic, post onderwerp, logboekrecord, enz.
    • Socket communicatie wordt aangeroepen door SocketService;
    • MQTT communicatie kan worden opgeroepen door MokoSupport.getInstance();

2.1 SocketService

Voordat u een Socket-verbinding, je nodig hebt om te bevestigen of het APP is verbonden met de WIFI van het apparaat. Sluit de standaard IP-adres 192.168.4.1, de standaard poort nummer is 8266, die SocketThread kunnen worden gemodificeerd.

2.1.1 initialisatie

Bindservice(nieuwe Intent(deze, SocketService.class), mServiceConnection, BIND_AUTO_CREATE);

Start SocketService, en ontvang de SocketService object, call mService.startSocket() een Socket thread, Sluit de inrichting, en de draad wacht tot het bericht wordt verzonden nadat de verbinding tot stand is;

2.1.2 Get status van de verbinding en de respons

1.Klik hier voor de status van de verbinding door het registreren van de uitzending:

Broadcast ACTION:MokoConstants.ACTION_AP_CONNECTION

Verbindingsstatus:

    • verbinding tot stand:MokoConstants.CONN_STATUS_SUCCESS
    • Verbinden:MokoConstants.CONN_STATUS_CONNECTING
    • Verbinding mislukt:MokoConstants.CONN_STATUS_FAILED
    • Connection timeout:MokoConstants.CONN_STATUS_TIMEOUT

2、Klik hier voor de Socket communicatie respons door het registreren van de uitzending :

Broadcast ACTION:MokoConstants.ACTION_AP_SET_DATA_RESPONSE

Hier krijg je een reactie:

DeviceResponse reactie = (DeviceResponse) intent.getSerializableExtra(MokoConstants.EXTRA_AP_SET_DATA_RESPONSE);

2.1.3 stopcontact
Send data accepteert alleen strings in JSON-formaat

bv:

1、Get apparaatgegevens:

{
“hoofd” : 4001
}

antwoord:

{
“code” : 0,
“bericht” : “succes”,
“resultaat” : {
“hoofd” : 4001,
“device_function” : “iot_plug”,
“toestelnaam” : “plug_one”,
“device_specifications” : “ons”,
“device_mac” : “11:22:33:44:55:66”,
“soort apparaat” : “1”
}
}

2、 Stuur MQTT server informatie

{
“hoofd” : 4002,
“gastheer” : “45.32.33.42”,
“haven” : 1883,
“connect_mode” : 0,
“gebruikersnaam” : “DVES_USER”,
“wachtwoord” : “DVES_PASS”,
“in leven houden” : 120,
“qos” : 2,
“clean_session” :1
}
antwoord:

{
“code” : 0,
“bericht” : “succes”,
“resultaat” : {
“hoofd” : 4002
}
}

3、Stuur een WiFi-netwerk met een specifieke SSID

{
“hoofd” : 4003,
“wifi_ssid” : “Fitpolo”,
“wifi_pwd” : “fitpolo1234.”,
“WIFI_SECURITY” : 3
}

antwoord:

{
“code” : 0,
“bericht” : “succes”,
“resultaat” : {
“hoofd” : 4003
}
}

2.2 MokoSupport

2.2.1 Verbinding maken met het MQTT server
1、Maak MqttAndroidClient

public void creatClient(String gastheer, String port, String ClientID, boolean tlsConnection)

2、Maak verbinding met de server

public void connectMqtt(MqttConnectOptions opties)
Klik hier voor de status van de schepping volgens MqttCallbackHandler en ontvang de terugkeer data vorm server

@ Override
public void connectComplete(boolean reconnect, String serverURI) {

}
@ Override
public void connectionlost(Throwable oorzaak) {

}
@ Override
public void messageArrived(String topic, MqttMessage bericht) gooit Uitzondering {

}

3、Klik hier voor de status van de verbinding door het registreren van de uitzending:

Broadcast ACTION:MokoConstants.ACTION_MQTT_CONNECTION

Verbindingsstatus:

    • verbinding geslaagd:MokoConstants.MQTT_CONN_STATUS_SUCCESS
    • Loskoppelen:MokoConstants.MQTT_CONN_STATUS_LOST

4、Ontvang de terugkeer data van de server door het registreren van de uitzending

Broadcast ACTION:MokoConstants.ACTION_MQTT_RECEIVE

Return data:

    • Return data Topic:

MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC

    • Return data Message:

MokoConstants.EXTRA_MQTT_RECEIVE_MESSAGE

De terugkeer gegevens in JSON-formaat,bv:

{
“Bedrijfsnaam” : “meel”,
“productie datum” : “201801”,
“product Model” : “plug_one”,
“firmware versie” : “000001”
“device_mac” : “11:22:33:44:55:66”
}

2.2.2 actie-monitor
MQTT mededeling bevat vier soorten acties. Aan elke actie uit te voeren, moet je set ActionListener om de toestand van de actie te volgen:

public enum Actie {
/**
* Connect Actie
**/
AANSLUITEN,
/**
* Abonneren Actie
**/
INSCHRIJVEN,
/**
* publiceren Actie
**/
PUBLICEREN,
/**
* Afmelden Actie
**/
AFMELDEN
}

Klik hier voor de Actie-status door het registreren van de uitzending:

1、AANSLUITEN

Broadcast ACTION:MokoConstants.ACTION_MQTT_CONNECTION

Verbinding mislukt:MokoConstants.MQTT_CONN_STATUS_FAILED
2、INSCHRIJVEN

Broadcast ACTION:MokoConstants.ACTION_MQTT_SUBSCRIBE

Abonneren Topic:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
Abonneer je de status:MokoConstants.EXTRA_MQTT_STATE

3、PUBLICEREN

Broadcast ACTION:MokoConstants.ACTION_MQTT_PUBLISH

publiceren de status:MokoConstants.EXTRA_MQTT_STATE

4、AFMELDEN

Broadcast ACTION:MokoConstants.ACTION_MQTT_UNSUBSCRIBE

Uitschrijven-status:MokoConstants.EXTRA_MQTT_STATE

2.2.3 Abonneren topic

MokoSupport.getInstance().abonneren(String topic, int qos)

2.2.4 Publiceer informatie

MokoSupport.getInstance().publiceren(String topic, MqttMessage bericht)

2.2.5 Afmelden topic

MokoSupport.getInstance().Afmelden(String topic)

2.2.6 Bepalen of de MQTT verbonden

MokoSupport.getInstance().is verbonden()

2.2.7 ontkoppeling

MokoSupport.getInstance().disconnectMqtt()

3.Log opslaan op SD-kaart
SDK integreert het logboek opgeslagen op de SD-kaart functie, heet https://github.com/elvishew/xLog

initialisatiemethode in MokoSupport.getInstance().in het(getApplicationContext())

De naam van de map en de bestandsnaam opgeslagen op de SD-kaart kan worden gewijzigd.

public class LogModule {
private static final String TAG = “mokoLife”;// bestandsnaam
private static final String LOG_FOLDER = “mokoLife”;// naam van de map

}

Storage strategie: alleen de gegevens over de Dag en de gegevens de laatste dag vóór te slaan , het bestand wordt suffixed with.bak

call methode:

LogModule.v(“log info”);
LogModule.d(“log info”);
LogModule.i(“log info”);
LogModule.w(“log info”);
LogModule.e(“log info”);