IoT Smart Plug Socket SDK-Lösungen

Smart Mops MK102
Smart Plug MK112
Smart Switch WS001-3
README.md - IOS

1. Unterhalb des Ordners MKSDK für Gerät befindet sich das SDK zum Konfigurieren des Smart Plug

1.1 Wenn Sie die MQTT-Serverinformationen und die WLAN-Informationen für die Verbindung mit dem Smart Plug konfigurieren möchten, Sie müssen den Smart Plug in den AP-Modus versetzen(Weitere Informationen finden Sie im MokoLife-Benutzerhandbuch): Stecken Sie den Smart Plug in eine Steckdose, Drücken Sie die Taste für 10 Sekunden, bis die Smart Plug-Anzeige gelb blinkt und den Smart Plug in den AP-Modus versetzt(Hinweis: Die Zeitüberschreitung für den AP-Modus beträgt 3 Protokoll, Sobald Sie die Informationen für den Smart Plug konfiguriert haben, Der AP-Modus wird beendet). Rufen Sie die Wlan-Seite auf und wählen Sie den Smart Plug-Hotspot aus, um eine Verbindung herzustellen, bei erfolgreicher Verbindung, Rufen Sie connectDeviceWithHost auf:Hafen
connectSucBlock:Verbindung fehlgeschlagen
Blockmethoden zum Anschließen des Smart Plug. Im Folgenden finden Sie die vollständige Konfiguration des Smart Plug-Prozesses:

Schritt 1

[[MKSocketManager sharedInstance] connectDeviceWithHost:@ "192.168.4.1"
Hafen:8266
connectSucBlock:^(NSString * IP, NSInteger-Port) {
//Erfolg verbinden
connectFailedBlock:^(NSError * Fehler) {
//Verbindung fehlgeschlagen
}];

Schritt 2

[[MKSocketManager sharedInstance]readSmartPlugDevice
InformationWithSucBlock:^(id returnData) {
//Lesen Sie den Erfolg der Geräteinformationen
} failedBlock:^(NSError * Fehler) {
//Das Lesen der Geräteinformationen ist fehlgeschlagen
}];

Schritt 3

[[MKSocketManager sharedInstance] configMQTTServerHost:@ "Ihr MQTT Server Host"
Hafen:Hafen
connectMode:mqttServerConnectTCPMode
qos:mqttQosLevelExactlyOnce
bleib am Leben:60
cleanSession:JA
Kunden ID:@ "Mac-Adresse Ihres Geräts"
Nutzername:@ "Ihr MQTT-Server-Benutzername"
Passwort:@ "Ihr MQTT Server Passwort"
sucBlock:^(id returnData) {
//Konfigurationserfolg
}
failedBlock:^(NSError * Fehler) {
//Konfiguration fehlgeschlagen
}];

Schritt 4

[[MKSocketManager sharedInstance] configWifiSSID:Ihr WiFi ssid
Passwort:WLAN Passwort
Sicherheit:wifiSecurity_WPA2_PSK
sucBlock:^(id returnData) {
//Konfigurationserfolg
} failedBlock:^(NSError * Fehler) {
//Konfiguration fehlgeschlagen
}];

2. Der Ordner MKSDKForMqttServer ist das SDK, das die APP und den MQTTServer konfiguriert

2.1 MKMQTTServerManagerDelegate

@protocol MKMQTTServerManagerDelegate

(Leere)mqttServerManagerStateChanged:(MKMQTTSessionManagerState)Zustand;
//Connect State Delegate-Methode

(Leere)sessionManager:(MKMQTTServerManager *)sessionManager didReceiveMessage:(NSData *)Daten onTopic:(NSString *)Thema;//Empfängt die Daten vom MQTT-Server

@Ende

2.2 APP-Verbindung zum MQTT-Server

Wenn das Netzwerk verfügbar ist,Anruf [[MKMQTTServerManager sharedInstance] connectMQTTServer:Hafen:tls:bleib am Leben:reinigen:
auth:Benutzer:bestehen:Kunden ID:] um Ihren MQTT-Server zu verbinden.

2.3 Thema abonnieren

Informationen zum Thema Smart Plug finden Sie im protokalen MQTT-Dokument. (Leere)Abonnements:(NSArray *)topicList und - (Leere)Abmeldungen:(NSArray *)topicList, um das Thema separat zu abonnieren und abzubestellen.

2.4 APP veröffentlicht Daten zu einem bestimmten Thema

Informationen zum Thema des Smart Plug finden Sie im MQTT-Protokoll. - - (Leere)schicke Daten:(NSDictionary *)Datenthema:(NSString *)Thema sucBlock:(Leere (^)(Leere))sucBlock failedBlock:(Leere (^)(NSError * Fehler))failedBlock

README.md - Android

1.SDK importieren und verwenden

1.1 Importieren Sie das Modulprojekt mokosupport

1.2 Konfigurieren Sie die Datei settings.gradle und rufen Sie das mokosupport-Projekt auf:

umfassen „:App ’,’:mokosupport “

1.3 Bearbeiten Sie die Datei build.gradle des Hauptprojekts:

Abhängigkeiten {
ImplementierungsdateiTree(dir: "Libs", umfassen: ['*.Krug'])
Implementierungsprojekt(Pfad: „: mokosupport “)
}

1.4 Importieren Sie das SDK während der Projektinitialisierung:

public class BaseApplication erweitert Application { @Override public void onCreate() { super.onCreate(); // Initialisierung MokoSupport.getInstance().drin(
getApplication Kontext()); } }

2.Funktionseinführung

  • Die im SDK bereitgestellten Methoden umfassen: Socket-Kommunikation mit WIFI-Gerät, MQTT-Verbindungsdienst, Trennung, Abonnement-Thema, Thema abbestellen, Thema posten, Protokollaufzeichnung, etc.
  • Die Socket-Kommunikation wird von SocketService aufgerufen;
  • Die MQTT-Kommunikation kann von MokoSupport.getInstance aufgerufen werden();

2.1 SocketService

Vor dem Erstellen einer Socket-Verbindung, Sie müssen überprüfen, ob die APP mit dem WIFI des Geräts verbunden ist. Verbinden Sie die Standard-IP-Adresse 192.168.4.1, Die Standardportnummer ist 8266, Dies kann in SocketThread geändert werden.

2.1.1 Initialisierung

bindService(neue Absicht(diese, SocketService.class), mServiceConnection, BIND_AUTO_CREATE);

Starten Sie SocketService, und holen Sie sich das SocketService-Objekt, Rufen Sie mService.startSocket auf() um einen Socket-Thread zu erstellen, Schließen Sie das Gerät an, und der Thread wartet darauf, dass die Nachricht gesendet wird, nachdem die Verbindung erfolgreich ist;

2.1.2 Verbindungsstatus und Antwort abrufen

1. Erhalten Sie den Verbindungsstatus, indem Sie die Sendung registrieren:

Broadcast-AKTION:MokoConstants.ACTION_AP_CONNECTION
Verbindungsstatus:
  • Verbindung erfolgreich:MokoConstants.CONN_STATUS_SUCCESS
  • Anschließen:MokoConstants.CONN_STATUS_
    ANSCHLUSS
  • Verbindung fehlgeschlagen:MokoConstants.CONN_STATUS_FAILED
  • Verbindungszeitüberschreitung:MokoConstants.CONN_STATUS_TIMEOUT

2、Erhalten Sie die Socket-Kommunikationsantwort, indem Sie die Sendung registrieren :

Broadcast-AKTION:MokoConstants.ACTION_AP_SET_DATA_
ANTWORT Erhalten Sie eine Antwort:
DeviceResponse response = (DeviceResponse) intent.getSerializableExtra(MokoConstants.
EXTRA_AP _SET_DATA_RESPONSE);

2.1.3 Steckdose

Daten senden akzeptiert nur Zeichenfolgen im JSON-Format
z.B:

1、Geräteinformationen abrufen:

{
"Header" : 4001
}

Antwort:

{
"Code" : 0,
"Botschaft" : "Erfolg",
"Ergebnis" : {
"Header" : 4001,
"Gerätefunktion" : "Iot_plug",
"Gerätename" : "Plug_one",
"Gerätespezifikationen" : "uns",
"Device_mac" : 11:22:33:44:55:66”,
"Gerätetyp" : "1"
}
}

2、 Senden Sie MQTT-Serverinformationen

{
"Header" : 4002,
"Gastgeber" : "45.32.33.42",
"Hafen" : 1883,
"Connect_mode" : 0,
"Nutzername" : "DVES_USER",
"Passwort" : "DVES_PASS",
"bleib am Leben" : 120,
"Qos" : 2,
"Clean_session" :1
}
Antwort:

{
"Code" : 0,
"Botschaft" : "Erfolg",
"Ergebnis" : {
"Header" : 4002
}
}

3、Senden Sie ein WIFI-Netzwerk mit einer bestimmten SSID

{
"Header" : 4003,
"Wifi_ssid" : "Fitpolo",
"Wifi_pwd" : "Fitpolo1234.",
"Wifi_security" : 3
}

Antwort:

{
"Code" : 0,
"Botschaft" : "Erfolg",
"Ergebnis" : {
"Header" : 4003
}
}

2.2 MokoSupport

2.2.1 Stellen Sie eine Verbindung zum MQTT-Server her

1、Erstellen Sie MqttAndroidClient

public void creatClient(String-Host, String-Port, Zeichenfolge clientId, boolean tlsConnection)

public void connectMqtt(MqttConnectOptions-Optionen)
Rufen Sie den Erstellungsstatus gemäß MqttCallbackHandler ab und erhalten Sie den Rückgabedaten vom Server

2、Stellen Sie eine Verbindung zum Server her

@Override
public void connectComplete(Boolesche Wiederverbindung, String serverURI) {

}
@Override
public void connectionLost(Wirfbare Ursache) {

}
@Override
public void messageArrived(String-Thema, MqttMessage-Nachricht) wirft eine Ausnahme {

}

3、Erhalten Sie den Verbindungsstatus, indem Sie die Sendung registrieren:

Broadcast-AKTION:MokoConstants.ACTION_MQTT_CONNECTION

Verbindungsstatus:

  • Verbindungserfolg:MokoConstants.MQTT_CONN_STATUS_
    ERFOLG
  • Trennen:MokoConstants.MQTT_CONN_STATUS_LOST

4、Empfangen Sie die Rückgabedaten vom Server, indem Sie die Übertragung registrieren

Broadcast-AKTION:MokoConstants.ACTION_MQTT_RECEIVE

Daten zurückgeben:

  • Daten zurückgeben Thema:
MokoConstants.EXTRA_MQTT_RECEIVE_
THEMA
  • Daten zurückgeben Nachricht:
MokoConstants.EXTRA_MQTT_RECEIVE_
BOTSCHAFT

Die Rückgabedaten liegen im JSON-Format vor,z.B:

{
"Name der Firma" : "Moko",
"Produktionsdatum" : "201801",
"Product_model" : "Plug_one",
"Firmware Version" : "000001"
"Device_mac" : 11:22:33:44:55:66”
}

2.2.2 Aktionsmonitor

Die MQTT-Kommunikation enthält vier Arten von Aktionen. So führen Sie jede Aktion aus, Sie müssen ActionListener festlegen, um den Status der Aktion zu überwachen:

öffentliche Aufzählung Aktion {
/**
* Aktion verbinden
**/
VERBINDEN,
/**
* Aktion abonnieren
**/
ABONNIEREN,
/**
* Aktion veröffentlichen
**/
VERÖFFENTLICHEN,
/**
* Aktion abbestellen
**/
ABMELDEN
}

Erhalten Sie den Aktionsstatus, indem Sie die Sendung registrieren:

1、VERBINDEN

Broadcast-AKTION:MokoConstants.ACTION_MQTT_CONNECTION
Verbindung fehlgeschlagen:MokoConstants.MQTT_CONN_STATUS_FAILED

2、ABONNIEREN

Broadcast-AKTION:MokoConstants.ACTION_MQTT_SUBSCRIBE
Thema abonnieren:MokoConstants.EXTRA_MQTT_RECEIVE_TOPIC
Abonnementstatus:MokoConstants.EXTRA_MQTT_STATE

3、VERÖFFENTLICHEN

Broadcast-AKTION:MokoConstants.ACTION_MQTT_PUBLISH
Status veröffentlichen:MokoConstants.EXTRA_MQTT_STATE

4、ABMELDEN

Broadcast-AKTION:MokoConstants.ACTION_MQTT_UNSUBSCRIBE
Status abbestellen:MokoConstants.EXTRA_MQTT_STATE

2.2.3 Thema abonnieren

MokoSupport.getInstance().abonnieren(String-Thema, int qos)

2.2.4 Informationen veröffentlichen

MokoSupport.getInstance().veröffentlichen(String-Thema, MqttMessage-Nachricht)

2.2.5 Thema abbestellen

MokoSupport.getInstance().Abmelden(
String-Thema)

2.2.6 Stellen Sie fest, ob der MQTT angeschlossen ist

MokoSupport.getInstance().Ist verbunden()

2.2.7 Trennung

MokoSupport.getInstance().connectMqtt()

5.Protokoll auf SD-Karte speichern

Das SDK integriert das auf der SD-Kartenfunktion gespeicherte Protokoll, heißt https://github.com/elvishew/xLog Initialisierungsmethode in MokoSupport.getInstance().drin(
getApplicationContext()) Der auf der SD-Karte gespeicherte Ordnername und Dateiname können geändert werden.

öffentliche Klasse LogModule {
private static final String TAG = "mokoLife";// Dateiname
private static final String LOG_FOLDER = "mokoLife";// Ordnernamen

}

Speicherstrategie: Speichern Sie nur die Daten des Tages und die Daten des Vortages , Die Datei wird mit dem Suffix.bak versehen

Methode aufrufen:

LogModule.v("Log info");
LogModule.d("Log info");
LogModule.i("Log info");
LogModule.w("Log info");
LogModule.e("Log info");

Sprechen Sie mit einem Experten