Xiaomi Smart Home Gateway

Ich habe mal einen Fork gemacht.

Zum testen:

  • Modul control öffnen.
  • Das Modul dort löschen (Instanzen bleiben erhalten ! )
  • Diese URL neu eintragen git://github.com/Nall-chan/Xiaomi-Smart-Home.git

Wenn es nicht funktioniert, dann einfach wieder die Original URL von git://github.com/MiniBlister/Xiaomi-Smart-Home.git eintragen.

Beim 86sw2 war ein Bug beim dual_channel_both_click. Sollte behoben sein

Der Fehler wenn ein Gerät (Model) nicht bekannt war sollte nicht mehr zu Fehlern führen.

Und ich habe mal versucht alle Geräte einzubauen.
Allerdings fehlt noch die Rotation des Cube, die no_motion / no_close Werte.

Beim Gateway wird vermutlich auch die Farbe nicht stimmen, aber die Variable sollte angelegt werden.

Bei den Batteriewerten hatte ich bisher angenommen dass dies Millivolt sind.
Also 3000 = 3V

Michael

Nabend!

Ein erstes Feedback wollte ich schon heute Abend schnell raushauen. Wirklich super Arbeit, es funktioniert jetzt nahezu Alles einwandfrei, soweit ich das bisher beurteilen kann. Auch beim Cube, der ja recht umfangreich ist, werden alle Variablen angelegt und aktualisieren sich wirklich sofort. Alert scheint mir gesendet zu werden, wenn man den Cube nach einer längeren Ruhepause bewegt, falls es jemand interessiert.

Was mir noch aufgefallen ist:

[ul]
[li]Die Voltage Werte stehen alle auf exakt 3,0V. Es scheint also nicht wirklich Verschiedenes anzukommen. Eine Prozentangabe wäre wünschenswert.
[/li][li]Der Luftdruck zeigt 99,8 hPa. Laut Wetterbericht sind bei mir aktuell 1020,8hPa
[/li][li]Der Bewegungsmelder hat nur eine Voltage Variable und reagiert nicht, obwohl Signale im Debug Fenster ankommen.
[/li][li]Gateway SID selbst taucht nicht im Konfigurator auf
[/li][/ul]

Um einmal zusammenzufassen:
Funktioniert:

[ul]
[li]Schalter - Both_Click
[/li][li]Cube - Alle Actions
[/li][li]Türkontakt - Status
[/li][li]Button - Single/Double Click
[/li][li]Klima - Temp/Hum
[/li][li]Konfigurator findet wieder alle Geräte
[/li][li]Manuelles anlegen des Gateway erzeugt, die rgb Variable, welche sich auch sofort entsprechend aktualisiert
[/li][/ul]

To-Do:

[ul]
[li] no_close / no_motion
[/li][li] Rotate
[/li][li] Batteriestatus Integer korrekt anzeigen und Boolean bereitstellen. Eventuell Prozente berechnen
[/li][li] Luftdruck korrekt anzeigen
[/li][li] Bewegungsmelder funktioniert nicht. (Lux, Bewegung, no_motion)
[/li]
…Eventuell weitere Funktionen abdecken:
[li]Habe noch einen Xiaomi Unterputzschalter Zuhause, den ich eigentlich nicht nutze, aber mal kurz für dich an den Strom hängen könnte um den zu schauen, was der sendet
[/li][li] Beim Gateway geht noch mehr als der RGB. Da kann man auch Lautstärken setzen. Töne abspielen lassen. Lichtsensor abfragen etc. Müsste man aber eventuell an den Source Code vom Openhab Modul kommen. Auf Github finde ich nur das alte Modul für Openhab 1.x. Oder in einem anderen Repo abschauen. Befehle raussenden wäre halt noch recht interessant.
[/li][li] Theoretisch sollen die Buttons auch Long Press können. Aber das geht in Openhab auch nicht. Zumindest nicht mit meiner neueren Version…und wo nichts im Debug ankommt, wird es das vermutlich nicht mehr geben.
[/li][/ul]

Die weiteren Funktionen am Ende sehe ich aber eher so um es richtig rund zu machen. Ich persönlich mache mit dem Gateway selber zum Beispiel nichts.

Noch eine kleine Fehlermeldung, welche beim Anlegen des Gateway kommt
Gateway.PNG

Und jetzt vielen lieben Dank erstmal für die wirklich gute Arbeit bisher!:cool:

Das Voltage alle genau auf 3V sind liegt bestimmt am Variablenprofile.
Du kannst in der Konsole doppelt auf den Wert klicken, dann siehst du ihn ohne Rundungen.
no_close / no_motion ist kein Kunststück, nur habe ich keine Vorstellung was man damit genau in IPS erreichen könnte.
Luftdruck ist nur den Faktor anpassen, das ist easy.
Bewegungsmelder schaue ich mir an.
Gateway im Konfigurator wird aktuell glaube ich gefiltert, weil das aus den Beispielen nicht ersichtlich war ob hier die SID des Gateway selbst und seiner eigenen Aktionen identisch ist.
Michael

Ups, die muss ja schon immer da gewesen sein.
Ist jetzt behoben; hoffe ich da ich es vom Handy verbessert habe :wink:
Michael

Ich vermute mal es hat nie jemand ein Gateway angelegt, weil es auch nicht im Konfigurator auftaucht. Ich weiß die ID auch nur aus dem Log und aus Openhab. Ist tatsächlich die ID von den Gerätefunktionen des Gateway und nicht der Verbindung selber.

No_Motion etc. finde ich auch eher unnötig. Sind wohl Signale für Direktverknüpfungen.

Wichtiger ist denke ich Rotate vom Cube.

Die Voltage Werte stehen tatsächlich alle auf 3,0 hatte schon den Doppelklick gemacht und geschaut :wink: Denke es ist auch echt sinnig einfach mit einem Umrechnungsfaktor aus meiner Tabelle in Prozente zu rechnen. Würde vermutlich sowieso jeder machen, weil es viel anschaulicher ist :slight_smile:

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Update online

[ul]
[li]Die Voltage Werte stehen alle auf exakt 3,0V. Es scheint also nicht wirklich Verschiedenes anzukommen. Eine Prozentangabe wäre wünschenswert.
[/li][LIST]
[li]Keine Ahnung warum. Kommt da zufällig auch immer 3000 rein ?
[/li][/ul]
[li]Der Luftdruck zeigt 99,8 hPa. Laut Wetterbericht sind bei mir aktuell 1020,8hPa
[/li][ul]
[li]Paßt es jetzt ?
[/li][/ul]
[li]Der Bewegungsmelder hat nur eine Voltage Variable und reagiert nicht, obwohl Signale im Debug Fenster ankommen.
[/li][ul]
[li]Bug im Modul, behoben.
[/li][/ul]
[li]Gateway SID selbst taucht nicht im Konfigurator auf
[/li][ul]
[li]Dann wird es bei get_id_list auch nicht übertragen… keine Ahnung wie man jetzt dort an die SID kommt um es in den Konfigurator aufzunehmen.
[/li][/ul]
[/LIST]

Neu:

[ul]
[li] no_close / no_motion
[/li][li] Rotate (ohne Zeit)
[/li][li] Batteriestatus zusätzlich mit Prozente.
[/li][/ul]
Michael

Eventuell hilft folgender Link weiter: org.openhab.binding.xiaomigateway/XiaomiGatewayBinding.java at master · octa22/org.openhab.binding.xiaomigateway · GitHub

Poste nach dem Sport ein ausführliches Update. Bisher sieht es aber gut aus! Konnte schon ein wenig was testen :slight_smile:

Batteriewerte stimmen aber noch nicht ganz(ist auch schwierig ohne Formel :/) Glaube du hast Fakor 40 benutzt auf Basis von meinen Werten, wenn ich richtig gerechnet habe…aber weicht halt teilweise um 10% ab dadurch, dass es nicht linear ist. Hoffe wir finden da irgendwo was um das besser anzunähern.

Luftdruck zeigt jetzt 10051,1 hPa und es sollten circa 1016hpa sein.

Batteriewerte varieren anscheinend doch ganz leich. Habe einen gefunden der 3,1 anzeigt. Aber ja…

Danke für den Link, jetzt weiß ich wie die Helligkeit und Farbe zusammenhängen vom Gateway. Kann dafür jetzt auch eine Steuerung bauen.

Das voltage Problem bleibt, da in dem Code gar nichts mit dem Wert berechnet wird, auch keine Prozente. Muss ich mal forschen.

Luftdruck war wieder falsch, ok habe ich jetzt behoben und konnte es mit dem Openhab Code verifizieren (Faktor / 100).

Ich bau mal die Steuerung der LED vom Gateway ein und dann schaun wir mal weiter.
Michael

So das Licht vom Gateway sollte nun steuerbar sein, sowohl vom WebFront, also auch per Script:

XISMD_WriteValueInteger('rgb', $RGB);
XISMD_WriteValueInteger('brightness', $brightness);

Und es sollte im Konfigurator auftauchen…hoffe ich :wink:
Michael

node-lumi-aqara/subdevice.js at master · marvinroger/node-lumi-aqara · GitHub

return Math.round(((SUBDEVICE_MAX_VOLT - this._voltage) / (SUBDEVICE_MAX_VOLT - SUBDEVICE_MIN_VOLT)) * 100)

Habe „Xiaomi Smart Home“ auf Github eingegeben und bin direkt im ersten Repo fündig geworden. Vielleicht hilft uns dieses Vorgehen auch, den wirklich letzten Rest zu integrieren. Soll auch Geräte geben, welche ich gar nicht habe, oder Funktionen, von denen wir eventuell noch gar nichts wissen. Jedenfalls schön, wenn die Dinge auch mal einfach sein können:D

Luftdruck und die Lichtbefehle checke ich jetzt :slight_smile:

miio/lib/devices at master · aholstenson/miio · GitHub

Das Repo sieht vielversprechend aus. Der Typ hat nebenbei auch noch quasi die komplette Familie an Xiaomi Smart Home Produkten, welche nichts mit dem Gateway zu tun haben. Besonders die Yeelight Produkte finde ich interessant. Da fehlt mir schon seit Langem eine ordentliche Integration.

Die benutzen übrigens alle Faktor 1.000 für den Luftdruck und 100 nur bei Temperatur und Feuchtigkeit.

Hier sind dann auch endlich mal die Werte :
node-lumi-aqara/constants.js at master · marvinroger/node-lumi-aqara · GitHub

Womit laufen die Geräte eigentlich, also Batterien und Spannung?
Ich vermute das Voltage hier die interne Spannung bedeutet, also 2,8 bis 3,3V.
Dann macht das auch alles Sinn.

Edit: Bei Openhub waren alle floats Faktor 100.
1000 hatte ich gestern, wo er bei dir um den Faktor 10 zu klein war :wink:

Und er nutzt auch hundert:
(‚temperature‘, v => v / 100.0)
Wo hast du 1000 gesehen, außer bei Voltage?
Michael

1000 hatte ich bei dem Luftdruck gesehen. Aber checke das nochmal, was die offizielle App für Werte beim Druck anzeigt.

Die Geräte laufen mit Knopfzellen. Typ müsste ich nochmal schauen.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Stimmt die haben beide 1000, aber da hattest du ja falsche Werte… Verwirrt

Edit: Fix für voltage_percent ist online :slight_smile:
Michael

Wird Zeit das der Postbote das xiaomi Gateway aus China liefert… Die Wartezeit macht mich noch verrückt :wink:

Gesendet von meinem Redmi Note 2 mit Tapatalk

Wird Zeit, dass der Postbote mein zweites Gateway liefert, damit ich endlich mehr als 32 Geräte nutzen kann[emoji28] Aber gut für dich sind das vermutlich Luxus Probleme. Ich drücke dir auf jeden Fall die Daumen :slight_smile:

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Also das mit den Batterie Prozenten ist und bleibt ein wenig rätselhaft. Nach dem neuesten Update deines Moduls, stehen jetzt alle Geräte auf circa 30-50%. Vorher waren das circa 68-85%. Ich denke das eher letzteres richtig ist von der Größenordnung her. Und zwar aus folgenden Gründen:

[ul]
[li]Ich habe die Sensoren erst seit circa 3 Monaten
[/li][li]Die Integration in Openhab2 zeigt bei allen um die 70/80%
[/li][/ul]

Den ersten Link zum Repo, welchen ich geschickt hatte war von dem Openhab 1.x Binding, weil ich das 2.x Binding nicht gefunden hatte. Weil mir sowas aber keine Ruhe lässt habe ich nochmal geschaut und siehe da es heißt nur „mihome“ und nichts mit xiaomi. Da hatte ich es übersehen.
openhab2-addons/addons/binding/org.openhab.binding.mihome at master · openhab/openhab2-addons · GitHub

Das Repo ist sehr umfangreich und komplett offiziell in Openhab2. Ich wette dort klärt sich das mit den Batterie Prozenten und auch sicher noch Einiges mehr!

Bewegungsmelder kurz und knapp funktionieren ausgezeichnet!:slight_smile: Würde noch vorschlagen, den „status“ auf false zu setzen, sobald das erste no_motion nach zwei Minuten reinkommt, mit dem Wert 120. Dann kann man es auch wirklich als „status“ bezeichnen und weiß, dass der Bewegungsmelder wieder aktiviert werden kann. Kann man natürlich sonst auch getrennt über die no_motion Variable sehen, aber dann bräuchte man zwei separate Events.

Luftdruck passt nun perfekt. Steht bei 1008,6hPa aktuell, genau wie in der offiziellen App, wo es allerdings in kPa angegeben ist. Ist vermutlich der Grund, warum die Leute es unterschiedlich integriert haben. Finde hPa auf jeden Fall besser und alles optimal so.

Cube Rotate
Funktioniert ebenfalls Top! Die RotationTime, fehlt halt noch.
Kleinigkeit ist, das wohl noch eine kleine Differenz zu dem Faktor besteht, welcher im Openhab2 Binding genutzt wird. Das sollte sich aber ja schnell lösen lassen, wo ich das Repo oben verlinkt habe:cool:
Ein paar Beispielwerte dennoch(links: IPS, rechts: OH2):
23° - 25°
36° - 39°
39° - 43°
56° - 61°
79° - 86°

Schöne Nacht und Morgen guten Start in die Woche;)

Dann ist der Wert in der App ja falsch, wenn dort kPa steht.
Normalwerte sind ca. 1013,25 hPa = 101,325 kPa
Bewegungsmelder kann man ändern, doof dass hier wohl kein Event mit status:no_motion vorher kommt. Das hätte ich so erwartet.
Die Berechnung Voltage hatte ich jetzt aus den anderen Repros. Wobei dann 100% nur bei 3,3V erreicht werden. Und 0% sind 2,8V.
Weniger als 2,8V wird auch nie vorkommen, da die die Geräte dann vermutlich offline gehen.
Ich würde diese Prozente als eh nur als Schätzeisen ansehen.

Michael

Ja das stimmt natürlich. Mehr als Schätzwerte sind das sowieso nicht. Könnte vielleicht sein, dass es nur 3,0V Zellen sind. Müsste ich mal schauen was er bei einer neuen anzeigt. Das sollte dann ja wenigstens sehr nah an 100% liegen, damit niemand verwirrt ist.

Die App hatte circa 100,8 kPa…mit gleich meinte ich mit Umrechnung…

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Besonders die Yeelight Produkte finde ich interessant. Da fehlt mir schon seit Langem eine ordentliche Integration.

darüber würde ich mich auch sehr freuen…:smiley:

Lieben Gruß
Adam