Xiaomi Smart Home Gateway

Jup da ist ein Fehler.

Zeile 18 -> falsch
$this->RegisterPropertyString(„ondevices“, „“);

Richtig:
$this->RegisterPropertyString(„ondevices“, json_encode(array()));

Dann klappt auch das erstellen.

Wofür allerdings diese Einstellung ist, keine Ahnung… ich ahne aber nichts gutes wenn ich das hier lese :wink:

//Wenn ein Name geaendert wurde, dann soll der Variablen Namen ebenfalls gaendert werden

Das ist doch wieder böse :smiley:

Michael

Vielen Dank schon Mal für die richtige Zeile. Damit funktioniert das Erstellen auch ohne Fehler. Es bleibt jedoch dabei, dass ich die Meldung „Gateway Timed Out“ und „Send Command failed“ bekomme.
Per Ping und im Router ist das Gateway verfügbar. Developer Modus habe ich auch schon aus und wieder eingeschaltet.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Bei mir ist es exakt genauso! Konnte den Fehler mit dem Anlegen des Konfigurators über Z.18 im Module.php beheben, bekomme aber keine Verbindung. Der Log vom Splitter sagt dazu Folgendes:

Ein Update von IPS 4.2 auf 4.3 hat die genannten Probleme behoben. Die Konfigurator Instanz findet die Geräte nun zuverlässig! 32 bei mir an der Zahl:D

Vielleicht kann mir ja jemand bei dieser Gelegenheit auch beantworten ob das vielleicht auch das Maximum an Geräten ist. Ich kann nämlich keine weiteren Batterielichtschalter mehr hinzufügen, egal mit welcher Methode ich es auch probiere…Das wäre wirklich sehr schade! Und durchaus möglich…32 ist eine schöne Zweierpotenz…könnte nur Zufall sein, aber wie ich gelernt habe ist sowas selten der Fall…

Kann ich bestätigen, bei mir hat die Konfigurator Instanz auch die Geräte gefunden.
Hast du 32 Geräte an einen Gateway? Habe gelesen dass pro Gateway nur 30 Geräte eingebunden werden können.
Pierre

Ja tatsächlich 32. Habe es gerade auch nochmal in der App nachgezählt und ich kann bestätigen dass alle funktionieren.

Wo bekommt man denn solche Infos her. Ich habe mich schon dumm und dämlich gesucht, was da wohl der Fehler sein könnte. Wäre mir nicht gerade diese Zahl ins Auge gesprungen hätte ich wohl auch noch länger im Dunkeln getappt^^

Jetzt ist natürlich die Frage, ob es Problemlos möglich ist zwei Gateways parallel zu nutzen?

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Ich meine das sollte mit dem Modul funktionieren.

Michael

Super das ist gut zu wissen. Hauptsache es funktioniert auch mit dem Gateway und die kommen sich nicht ins Gehege. Mit dem Modul mache ich mir keine Sorgen, weil ich das erste Gateway sowieso zuverlässig über Openhab -> MQTT -> NodeRed -> TCP Server Socket eingebunden habe. Müsste also nur mit einem verbunden sein das Modul.

Gebe Feedback ob es klappt sobald es hier ist :slight_smile:

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Ich habe einen „Battery Two Button Switch“ angelegt und bekomme zwei Variablen angelegt, für die beiden Button(channel_0_click, channel_1_click)

Ich kann aber kein Skript über ein Event starten lassen. Wenn ich in dem Skript auf Event anlegen klicke sagt IPS mir ganz am Ende „Ausgewähltes Objekt ist nicht erlaubt“. Wieso ist die Variable von meinem Schalter „nicht erlaubt“?:confused:

Das hatte ich noch nie:eek:

Als Auslöser dann die Variable wählen, geht nicht?
Eventuell versuchst du es gerade falsch herum.
Sonst mach Mal Screenshots.
Michael

Ich glaube du hast Recht ich muss mich verklickt haben. Gerade beim Screenshot machen hat alles funktioniert. Sorry und Danke trotzdem! :slight_smile:

Der Batterieschalter mit zwei Buttons(ID 86sw2) ist fehlerhaft. Laut der Dokumentation in Github wird er aber auch nicht offiziell unterstützt. Er aktualisiert in circa 50% der Fälle, die entsprechende Variable des Buttons bei einem einzelnen Klick zweimal. Es ist dabei definitiv sicher, dass ich nur einmal gedrückt habe.

Außerdem werden auch nur die beiden Buttons einzeln unterstützt. Die Aktion, wenn man beide gleichzeitig drückt wird nicht erkannt. Vielleicht Zufall, dass diese Werte reinkommen? Oder der Schalter wurde schon implementiert, ist aber noch nicht ganz fertig, weshalb es auch nicht in der Dokumentation steht.

Übrigens erkennt OpenHab bei mir die Aktion, wenn beide Tasten gleichzeitig gedrückt werden ebenfalls nicht, obwohl es laut deren Dokumentation funktionieren soll. Wenn das bei jemanden läuft, darf er mir gerne helfen :slight_smile:

Kann Openhab jedenfalls empfehlen für die Sachen, die in diesem Modul noch nicht funktionieren. Läuft wie eine Eins :slight_smile:

Update: Openhab erkennt es mittlerweile doch, wenn ich beide Buttons drücke:)

Eigentlich ist das sehr einfach einzubauen.
Ich habe allerdings keine HW davon.
Und ob MiniBlister alles hat, glaube ich auch nicht.

Die Daten, welche benötigt werden um fehlende Funktion einzubauen, können im Reiter Debug der betroffenen Instanz gefunden werden.
Debug öffnen und betreffende Aktion ausführen. Ergebnis dann hier Posten.
Damit sollte das dann sehr simpel einzubauen sein.

Was fehlt den noch? (RGB glaube ich, und sonst?)
Michael

Ok dann werde ich in den nächsten Tagen, wenn ich dazu komme von jedem Gerätetyp den ich habe eine Instanz anlegen, schauen was geht und was nicht und dann entsprechend im Debug bei den Sachen die nicht gehen schauen was reinkommt und hier updaten.

Was definitiv noch fehlt ist der Luftdruck von den Klimasensoren. Ich habe die eckige neue Version, die das noch zusätzlich kann.

Und der Magic Cube ist ebenfalls noch nicht drin. Ich beziehe mich da jetzt allerdings auf GitHub und lege die Geräte die Tage mal an.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Was meinst du mit RGB? Welches Gerät kann das? Das Licht vom Gateway meinst du?

Oh und nochwas fällt mir ein. Wenn ich den Magic Cube so bewege dass die Aktion „Alert“ angezeigt wird(Openhab eingebunden) spricht mein Gateway immer irgendetwas obwohl keine Rule hinterlegt ist. Kann man das irgendwie abschalten außer durch Volume auf Null, damit ich die Geste ebenfalls noch nutzen kann?

Solange werde ich wohl die Lautstärke runterdrehen. Nutze es eigentlich eh nicht weil ich Sonos für Audiofeedback habe.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Ich habe den Grossteil der Datenpunkte und Gerätetypen aus zwei GitHub Repros.
Das eine in chinesisch und das andere in Englisch.
Da war (außer dem Licht vom Gateway) auch irgendwo ein RGBW oder genericRGBW Device dokumentiert.

Vom Rest… Keine Ahnung :slight_smile:
Habe ja nur Code mitgeschrieben, aber wie gesagt keine Hardware.
Michael

Sorry für die große Verspätung. Anbei die entsprechenden Logs für Werte, welche bisher nicht von eurem Modul unterstützt werden:

  1. [li]Schalter - 86sw2:
    [/li][ul]
    [li]{„cmd“:„report“,„model“:„86sw2“,„sid“:„158d0001832c8f“,„short_id“:24716,„data“:"{„dual_channel“:„both_click“}"}
    [/li][li]{„cmd“:„report“,„model“:„86sw2“,„sid“:„158d0001832c8f“,„short_id“:24716,„data“:"{„channel_0“:„click“}"} funktioniert
    [/li][li]{„cmd“:„report“,„model“:„86sw2“,„sid“:„158d0001832c8f“,„short_id“:24716,„data“:"{„channel_1“:„click“}"} funktioniert
    [/li][li]{„cmd“:„heartbeat“,„model“:„86sw2“,„sid“:„158d0001832c80“,„short_id“:55457,„data“:"{„voltage“:3025}"}
    [/li][/ul]


    [li]Klima - weather.v1:
    [/li][ul]
    [li]{„cmd“:„report“,„model“:„weather.v1“,„sid“:„158d000172014c“,„short_id“:7456,„data“:"{„pressure“:„100581“}"}
    [/li][li]{„cmd“:„report“,„model“:„weather.v1“,„sid“:„158d0001720149“,„short_id“:33336,„data“:"{„temperature“:„1904“}"}
    [/li][li]{„cmd“:„report“,„model“:„weather.v1“,„sid“:„158d0001720149“,„short_id“:33336,„data“:"{„humidity“:„6939“}"}
    [/li][li]{„cmd“:„heartbeat“,„model“:„weather.v1“,„sid“:„158d0001a4b9bb“,„short_id“:63325,„data“:"{„voltage“:2975,„temperature“:„1901“,„humidity“:„7556“,„pressure“:„100486“}"}
    [/li][/ul]


    [li]Button - sensor_switch.aq2:
    [/li][ul]
    [li]{„cmd“:„report“,„model“:„sensor_switch.aq2“,„sid“:„158d0001a6776f“,„short_id“:57808,„data“:"{„status“:„click“}"}
    [/li][li]{„cmd“:„report“,„model“:„sensor_switch.aq2“,„sid“:„158d0001a6778e“,„short_id“:39351,„data“:"{„status“:„double_click“}"}
    [/li][li]{„cmd“:„heartbeat“,„model“:„sensor_switch.aq2“,„sid“:„158d0001a66ed2“,„short_id“:29390,„data“:"{„voltage“:3035}"}
    [/li][/ul]


    [li]Bewegung - sensor_motion.aq2:
    [/li][ul]
    [li]{„cmd“:„report“,„model“:„sensor_motion.aq2“,„sid“:„158d0001656c58“,„short_id“:30716,„data“:"{„no_motion“:„600“}"}
    [/li](Werte bei no_motion(Sekunden): 120, 180, 300, 600, 1200)
    [li]{„cmd“:„report“,„model“:„sensor_motion.aq2“,„sid“:„158d00016db7b2“,„short_id“:52653,„data“:"{„lux“:„47“}"}
    [/li][li]{„cmd“:„report“,„model“:„sensor_motion.aq2“,„sid“:„158d0001656d9d“,„short_id“:5394,„data“:"{„status“:„motion“}"}
    [/li][li]{„cmd“:„heartbeat“,„model“:„sensor_motion.aq2“,„sid“:„158d00016c410d“,„short_id“:23147,„data“:"{„voltage“:3035,„status“:„no_motion“,„lux“:„47“}"}
    [/li][/ul]


    [li]Türkontakt - sensor_magnet.aq2:
    [/li][ul]
    [li]{„cmd“:„report“,„model“:„sensor_magnet.aq2“,„sid“:„158d00016d1afc“,„short_id“:60898,„data“:"{„status“:„open“}"}
    [/li][li]{„cmd“:„report“,„model“:„sensor_magnet.aq2“,„sid“:„158d00016d1afc“,„short_id“:60898,„data“:"{„status“:„close“}"}
    [/li][li]{„cmd“:„report“,„model“:„sensor_magnet.aq2“,„sid“:„158d00016d1afc“,„short_id“:60898,„data“:"{„no_close“:„60“}"}
    [/li](no_close Werte(Sekunden): 60, 300, …)
    [li]{„cmd“:„heartbeat“,„model“:„sensor_magnet.aq2“,„sid“:„158d0001a1f88d“,„short_id“:43126,„data“:"{„voltage“:2995,„status“:„close“}"}
    [/li][/ul]


    [li]Würfel - cube:
    [/li][ul]
    [li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„status“:„shake_air“}"}
    [/li][li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„status“:„free_fall“}"}
    [/li][li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„status“:„move“}"}
    [/li][li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„status“:„tap_twice“}"}
    [/li][li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„status“:„flip90“}"}
    [/li][li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„status“:„flip180“}"}
    [/li][li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„rotate“:„7,500“}"}
    [/li][li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„status“:„alert“}"}
    [/li][li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„status“:„swing“}"}
    [/li][li]{„cmd“:„report“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„status“:„iam“}"}
    [/li][li]{„cmd“:„heartbeat“,„model“:„cube“,„sid“:„158d00011067fe“,„short_id“:6737,„data“:"{„voltage“:2995}"}
    [/li][/ul]


    [li]Gateway - gateway:
    [/li][ul]
    [li]{„cmd“:„report“,„model“:„gateway“,„sid“:„34ce00fa7745“,„short_id“:0,„data“:"{„rgb“:0,„illumination“:1275}"} //schaltet Licht aus
    [/li][li]{„cmd“:„report“,„model“:„gateway“,„sid“:„34ce00fa7745“,„short_id“:0,„data“:"{„rgb“:1023344581,„illumination“:1292}"}
    [/li][/ul]

Neue Xiaomi Smart Home Aqara Geräte
Bisher kann man sagen, das bei mir nur der Doppel Lichtschalter „86sw2“ funktioniert. Ich vermute das liegt daran, dass ich von den anderen Geräten jeweils die neuere „Aqara“ Version(die neue mit dem kantigerem Design) habe. Das würde erklären, warum diese der Geräte ein „.aq2“ am Ende haben. Ich vermute eure Integration bezieht momentan nur die älteren Versionen ein.

no_motion und no_close
Interessant sind noch die „no_motion“ und „no_close“ Werte. In Openhab werden bei den entsprechenden Sensoren nämlich auch Timestamps namens „LastMotion“ und „LastOpened“ mitgeliefert. Diese leiten sich also hieraus ab. Aus dem Log ist dabei ersichtlich, dass es sich dabei um Sekunden handelt. Man kann also bei jedem auftreten der Nachricht zurückrechnen und den Timestamp entsprechend neu setzen. Natürlich änderst sich dieser nicht, und man könnte auch einfach schauen, wann das letzte Mal eine Bewegung stattgefunden hat, aber ich vermute es ist dazu gedacht, um in bestimmten Zeitintervallen nach einer Bewegung etwas zu schalten. Außerdem sind die Bewegungsmelder erst nach einem Timeout von 2 Minuten wieder in der Lage neue Bewegungen zu melden. Man weiß also nach dem ersten Auftreten von no_motion, welches nach 120 Sekunden geschieht, dass die Bewegungsmelder wieder „scharf“ sind.

Cube
Die Nachrichten entsprechen den einzelnen Bewegungen des Würfels, welchen dann Aktionen zugeordnet werden können. In Openhab ist das so umgesetzt, dass eine String Variable immer die letzte Aktion als Text enthält und zwei Integer Variablen enthalten die letzte Drehung in Grad und die Dauer der letzten Drehung. Letzteres Vermutlich um abhängig von der Drehgeschwindigkeit zu arbeiten.
Eine Besonderheit ist noch, dass ich bei „Alert“ bisher nicht definitiv sagen kann, welche meiner Bewegungen das auslöst. Sobald ich das weiß kann ich mich hier melden. Bei den anderen Kann ich die Bewegung beschreiben, welche man ausführen muss.
Außerdem treten die letzten drei Nachrichten Swing, iam und heartbeat immer gebündelt auf, wenn mit dem Würfel einmal in der Luft schlägt. Quasi wie Shake Air nur halt einmal und nicht schütteln.
Rotate enthält zwei Komma separierte Werte. Der Erste gibt dabei immer den Winkel an und der Zweite die Dauer der Drehung in vermutlich Millisekunden. In der nachfolgenden Tabelle habe ich die Werte inklusive ihrem entsprechenden Winkel aufgetragen, welche ich aus Openhab habe. Wie man sieht besteht ein linearer Zusammenhang.

Rotate:
10° 3 3,333333333
14° 4 3,5
21° 6 3,5
25° 7 3,571428571
32° 9 3,555555556
54° 15 3,6
75° 21 3,571428571

Batterie

Openhab legt hierbei, wie man es eigentlich Standard ist, für jedes Gerät eine Boolvariable „BatteryLow“ und eine Integer Variable mit dem Akkustatus in Prozent an. In der nachfolgenden Tabelle trage ich wieder die empfangenen „voltage“ Werte über den Prozentwerten aus Openhab auf. Es ergibt sich wieder ein linearer Zusammenhang, wenn auch diesmal mit leicht stärkeren Abweichungen.(links Prozent, rechts Verhältnis)

Batterie:
76 3025 39,80263158
68 2975 43,75
73 2995 41,02739726
83 3035 36,56626506

Viel Spaß euch damit! Ich denke jetzt sollte es relativ einfach möglich sein, die Geräte hinzuzufügen. Ich freue mich schon drauf, wenn dieses Modul bald richtig rund ist :slight_smile:

Anbei noch ein Beispiel Bild für die Fehlermeldung, welche ich beim manuellen Anlegen der entsprechenden Geräte bekomme. Wie gesagt erhalte ich diese Meldung für jedes Gerät, außer den Schalter „86sw2“.

Ein wenig ungewöhnlich ist, dass neuerdings meine Konfigurator Instanz überhaupt gar keine Geräte mehr findet. Nicht mal die genannten Schalter. Ich lehne mich mal etwas weiter aus dem Fenster und schmeiße die Vermutung in den Raum, dass Xiaomi ein böser Junge gewesen ist und bei einer Gateway Firmware Aktualisierung etwas geändert hat. Das würde dann nämlich gleichzeitig erklären, warum beim Cube die oben beschriebene „Swing“ Geste jetzt existiert. Ursprünglich hat nämlich genau diese Bewegung in Openhab den Wert „Alert“ gesetzt. Was neuerdings bei einer nicht ganz reproduzierbaren anderen Geste passiert…

Aber nur so am Rande…eeeeigentlich ist Xiaomi Klasse…und funktioniert auch zuverlässig und ist schick und günstig und ja…Ich höre jetzt auf und lasse euch das selber beurteilen:D

Noch schnell das Mapping von den Werten im Log zu echten Temperatur- bzw. Luftfeuchtigkeitswerten:

Dazu gibt es eigentlich nicht viel zu sagen, denn diese entsprechen 1:1 den Werten. Die ersten beiden Ziffern sind Zehner- und Einer-Stelle, die letzten beiden die Nachkommastellen.

1066 ->10,7°
2112 -> 21,1°
6478 -> 64,8%