Skip to content

Latest commit

 

History

History
183 lines (126 loc) · 9.12 KB

README.md

File metadata and controls

183 lines (126 loc) · 9.12 KB

SDK Version Version
License Check Style Run Tests
Spenden Wunschliste

Xiaomi MIoT Device

Inhaltsverzeichnis

1. Funktionsumfang

  • Instanz für die Integration eines Xiaomi Gerätes in von Symcon.

2. Voraussetzungen

  • IPS 6.4 oder höher
  • Eingebundene Geräte in der Mi Home App

3. Software-Installation

4. Einrichten der Instanzen in IP-Symcon

Unter Instanz hinzufügen ist das Xiaomi MIoT Device-Modul unter dem Hersteller Xiaomi aufgeführt.
Module

Es wird empfohlen diese Instanz über die dazugehörige Instanz des MIoT Configurator-Moduls von diesem Geräte anzulegen.

Config

Konfigurationsseite (Parameter)

Name Text Beschreibung
Open Aktiv Verbindung aktiv
Host Host IP-Adresse von dem Gerät
DeviceId Geräte-ID Geräte ID zur eindeutigen Identifizierung
RefreshInterval Aktualisierungsintervall Intervall der Statusaktualisierung
ForceCloud Cloud-Verbindung erzwingen Das Gerät ausschließlich über die Cloud ansprechen
DeniedCloud Cloud-Verbindung verbieten Auch im Fehlerfall niemals versuchen das Gerät über die Cloud zu erreichen

Da es diverse Geräte gibt, welche keine direkte Kommunikation im lokalen Netzwerk erlauben, versucht die Geräte-Instanz das Gerät dann über die Cloud anzusprechen.

Dieses Verhalten kann durch die beiden Einstellungen Cloud-Verbindung erzwingen bzw. Cloud-Verbindung verbieten verändert werden.
Es darf nur einer der beiden Einstellungen aktiv sein.
Bei erzwingen wird (nach dem Handshake mit dem Gerät, was immer lokal läuft) die gesamte weitere Kommunikation über die Cloud geführt.
Bei verbieten wird niemals automatisch auf die Cloud Verbindung umgeschaltet, wenn das Gerät auf lokale Anfragen nicht reagiert.

Im Normalfall brauchen diese Einstellungen nicht verändert werden!

Konfigurationsseite (Status und Bedienung)

Über die Schaltfläche Zustand lesen kann eine manuelle Statusaktualisierung erfolgen.
Die Schaltfläche Geräteinformationen neu laden bewirkt das löschen alle abgespeicherten Fähigkeiten und neu laden derselben aus der Cloud. Anschließend werden u.U. die Statusvariablen und Profile um neue Eigenschaften ergänzt.

Der Bereich Geräteinformationen zeigt alle erkannten Eigenschaften von dem Gerät an.
Besonders hervorzuheben ist der Punkt Model, da eine Änderung vom Model ein automatisches neu laden der Geräteinformationen auslöst.
Der Link unter Spezifikationen führt zu den MIoT Spezifikationen des Gerätes.

5. Statusvariablen und Profile

Statusvariablen

Die Statusvariablen inklusive der Übersetzung werden automatisch auf Basis der Gerätefähigkeiten erzeugt.

Bei fehlenden Übersetzungen in der Cloud, findet keine passende Lokalisierung statt, die Variablen sollten dann selbst umbenannt werden.

Beispiel von einem Standlüfter:

Config

Ident der Variablen:
Der Erste Buchstabe eines Ident einer Statusvariable gibt Auskunft darüber ob es sich um eine Eigenschaft/Wert vom Gerät (P) oder eine ausführbare Aktion (A) handelt.
Während Eigenschaften/Werte den jeweiligen Zustand darstellen und auch abgefragt werden können, so sind Aktion nicht lesbar und können entsprechen keinen Zustand annehmen und darstellen.

Profile

Die Profile inklusive der Übersetzungen, Maßeinheiten usw. werden automatisch auf Basis der Gerätefähigkeiten erzeugt. Statusvariablen welche Aktionen abbilden und keine Parameter erwarten, erhalten einheitlich das Profil XIAOMI.Execute mit der einzigen Assoziation Ausführen.

6. WebFront

Die direkte Darstellung im WebFront ist möglich; es wird aber empfohlen mit Links zu arbeiten.

7. PHP-Befehlsreferenz

Zustandsabfrage

boolean XIAOMI_RequestState(integer $InstanzID);

Erklärung der Funktion.

Beispiel:

XIAOMI_RequestState(12345);

Schreiben von Werten

Es wird empfohlen Schaltaktionen mit dem universellen Befehl RequestAction(integer $VariableID, mixed $Value); (Link zur Doku) auszuführen.

Sollte es dennoch erforderlich gezielt Werte an bestimme Services zu senden, so stehen folgende Befehle zur Verfügung.
Dabei sind $ServiceID und $PropertyID die nummerischen Indexes der MIoT Spezifikationen des Gerätes, welche in der Konfiguration der Instanz unter Spezifikationen verlinkt sind.

boolean XIAOMI_WriteValueBoolean(integer $InstanzID, integer $ServiceID, integer $PropertyID, boolean $Value);
boolean XIAOMI_WriteValueInteger(integer $InstanzID, integer $ServiceID, integer $PropertyID, integer $Value);
boolean XIAOMI_WriteValueFloat(integer $InstanzID, integer $ServiceID, integer $PropertyID, float $Value);
boolean XIAOMI_WriteValueString(integer $InstanzID, integer $ServiceID, integer $PropertyID, string $Value);

Beispiel:

XIAOMI_WriteValueBoolean(12345, 1, 1, true);

Ausführen einer Aktion

Es wird empfohlen Schaltaktionen mit dem universellen Befehl RequestAction(integer $VariableID, mixed $Value); (Link zur Doku) auszuführen.

Verfügbare Werte sind z.B. dem Variablenprofil zu entnehmen, oder bei Aktionen welche keine Parameter erwarten irrelevant.
Dabei sind $ServiceID und $ActionID die nummerischen Indexes der MIoT Spezifikationen des Gerätes, welche in der Konfiguration der Instanz unter Spezifikationen verlinkt sind.

boolean XIAOMI_ExecuteAction(integer $InstanzID, integer $ServiceID, integer $ActionID, array $Values);

Erklärung der Funktion.

Beispiel:

XIAOMI_ExecuteAction(12345, 5, 1, []);     //Aktion erfordert keinen Wert
XIAOMI_ExecuteAction(12345, 5, 3, [4, 2]); //Aktion erfordert zwei Werte

8. Aktionen

Es gibt keine speziellen Aktionen für dieses Modul.

9. Anhang

1. Changelog

Changelog der Library

2. Spenden

Die Library ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:

Wunschliste

10. Lizenz

IPS-Modul:
CC BY-NC-SA 4.0