Hallo an alle,
ich habe jetzt mal 2 Produkte (Temperatur/Luftfeuchte- und einen Door/Window-Sensor) von Xiaomi in den Fingern gehabt und kann somit ein wenig mehr und detailliertere Auskünfte geben.
TL;DR
In näherer Zukunft werden wir die Produkte (selbst bei Verfügbarkeit in Europa) nicht integrieren können.
Die bloße Verwendung der Technologie ZigBee entspricht noch keiner Form der garantierten Kompatibilität mit anderen ZigBee-Geräten.
Erklärung
Die Geräte sind tatsächlich enorm schön anzusehen, klein und fühlen sich auch hochwertig an. Zudem sind sie unschlagbar günstig, doch mit irgendwas muss dieser günstige Preis erkauft werden und es ist offenbar nicht die Hardwarequalität in diesem Fall. Was ist also hier das Problem? Es bleibt ja quasi nur noch die Software übrig und genau da hakt es gewaltig.
Details
Die Geräte sind nicht ZigBee zertifiziert, und das hat seinen Grund. Nach aktuellem Stand würden die Geräte auch keine Zertifizierung der Allianz bekommen, da sich die Geräte nicht dem Standard konform verhalten. Wird ein ZigBee Gerät eingelernt besteht die Möglichkeit das Gerät zu fragen welche sog. Cluster es unterstützt. Ein Cluster ist eine Zusammenfassung verschiedener Attribute eines ähnlichen Bereichs. Ein Temperatursensor sollte also das Cluster 0x0402 (Temperature Measurement) und darin mindestens das Attribut 0x0000 (MeasuredValue) unterstützen. Damit die jeweilige Zentrale (hier homee) mit den Daten des Gerätes etwas anzufangen weiß, werden also zu begin die unterstützen Cluster und Attribute abgefragt und dann entsprechende Eigenschaften in homee angelegt. Der ganze Prozess um ein Gerät zu identifizieren und ein entsprechendes Abbild in homee anzulegen beinhaltet eine Vielzahl von Anfragen und Antworten die ausgetauscht werden müssen. Nun verhalten sich die Geräte von Xiaomi unterschiedlich schlecht, manchmal ist es überhaupt nicht möglich gewisse Merkmale abzufragen (es kommt einfach gar keine Reaktion des Gerätes), manchmal ist die Antwort unvollständig und zudem werden stellenweise nicht im Standard spezifizierte Identifier verwendet.
Beispiel Temperatur Sensor:
Auf die Frage nach den unterstützen Clustern antwortet das Gerät nicht mit dem bereits erwähnten Temperatur Cluster, daher legt homee korrekterweise auch kein Temperatur Attribut an.
Beispiel Door/Window Sensor:
Das Gerät antwortet gar nicht auf die Abfrage der auf dem Gerät implementierten Endpunkte, ohne Endpunkte können in folgenden Schritten keine Cluster oder Attribute abgefragt werden.
Warum funktionieren die Geräte dann an der Xiaomi Zentrale?
Xiaomi ist der Hersteller der Endgeräte sowie auch der Zentrale, für einen Hersteller ist es quasi überflüssig eine Art generelle Funktionalität ihrer Komponenten zu integrieren. Sie könnten beispielsweise alle Eigenschaften die ein bestimmtes Gerät hat, an einer einzigen Zahl festmachen. Da sie die Zahl definieren und genau wissen wie sich Gerät 12234 verhält, ist es unnötig das ganze Frage- und Antwortspiel nach Eigenschaften durchzuführen.
Warum funktionieren die Geräte aber an der Zentrale XYZ?
Es ist natürlich möglich das Verhalten von Geräten quasi zu beobachten, und dann einen korrekten Umgang mit diesem Gerät zu bewerkstelligen. Das Ganze wäre dann eine Ausnahme vom Standard und würde nur genau so lange funktionieren, bis der Hersteller eine Winzigkeit ändert. Eine solche Vorgehensweise führt das Prinzip Standard quasi ad absurdum und wird daher von uns generell nicht unterstützt.
Der Aufwand Geräte kompatibel zu halten die sich an den Standard halten, aber dennoch (innerhalb der erlaubten Grenzen) Implementierungen ändern ist bereits enorm. Geräte kompatibel zu halten, deren Hersteller faktisch tun und lassen können was sie wollen ist nochmal ungleich höher.
Ich kann eure Enttäuschung verstehen, da die Geräte sonst wirklich einen sehr guten Eindruck machen, ohne ZigBee Zertifizierung jedoch sind wir aktuell nicht in der Lage die Geräte vernünftig zu integrieren.