fhempy: xiaomi_gateway3 (Xiaomi Gateway V3)

Begonnen von dominik, 11 Dezember 2020, 19:04:20

Vorheriges Thema - Nächstes Thema

dominik

Für alle die den Xiaomi Gateway V3 mit Bluetooth Mesh Funktion nutzen, gibt es über fhempy ein Modul dazu: xiaomi_gateway3

Die Basis dafür bildet die Implementierung der Kollegen von Home Assistant, daher großer Dank an AlexxIT
https://github.com/AlexxIT/XiaomiGateway3

Ich habe diese Implementierung verwendet um ein fhempy Modul dafür zu schreiben. Um dieses nutzen zu können, muss zuerst fhempy installiert werden, siehe die Anleitung hier:
https://github.com/dominikkarall/fhempy

Wenn man ein Gerät mit neuere Firmware hat, muss man es zuerst downgraden. Infos dazu ebenfalls hier:
https://github.com/AlexxIT/XiaomiGateway3#supported-firmwares

Ist das Gerät vorbereitet, braucht man noch den Xiaomi Token den man mit dem Xiaomi Login beziehen kann
define xiaomi_tokens PythonModule xiaomi_tokens
set xiaomi_tokens username asdf@asdf.com
set xiaomi_tokens password asdfasdfasdf
set xiaomi_tokens get_tokens


Als nächstes definiert man das Gateway
define xiaomi_gw3 PythonModule xiaomi_gateway3 IP TOKEN

Das Modul stellt eine Verbindung via MQTT zum Xiaomi Gateway her und erhält daher die Ergebnisse von den Sensoren sofort. Es benötigt auch keine Verbindung zur Xiaomi Cloud.
Die erkannte Geräte am Gateway werden automatisch in FHEM angelegt.

Bluetooth Geräte werden aktuell noch nicht angelegt, wenn viele Leute Interesse haben, kann ich das integrieren.

Viel Spaß damit, bei Fragen gerne hier melden.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zur Info, ich habe gerade erfolgreich ein neues Gateway mit zu hoher Firmware erhalten.

Wenn man diese Anleitung befolgt, kann man das Gerät problemlos downgraden:
https://github.com/serrj-sv/lumi.gateway.mgl03/tree/main/uart_recovery

Die schwierigste Aufgabe ist das Gerät aufzumachen, das geht nicht ohne Spuren durch den Schraubenzieher (beim Aufdrücken) zu hinterlassen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

chris_kmn

Hi Dominik,

schöne Arbeit. Ich habe jetzt auch ein V3 Gateway und werde morgen das Modul testen. Ich hatte es schon einmal am Laufen, aber ich glaube es gab ein paar Probleme mit dem 72_XiaomiSmartHome Modul. Irgendwie kommt es mir so vor als wäre es relativ instabil unter Debian Buster. Ich hatte ständig FHEM restart loops.

Ich werde berichten.

VG, Chris

chris_kmn

#3
So, alles installiert und es scheint zu laufen. Allerdings verstehe ich eins nicht:

Wenn ich das Gateway anlege: define XiaomiGW3 PythonModule xiaomi_gateway3 192.168.0.3 xyzabc
Wird dieses auch erzeugt, aber gleichzeitig kommt folgendes Device mit dazu: lumigatewaymgl03_ 0xbc33acfffe7e7890

Es sieht also so aus als würde das Gateway sich selbst als neues Device anlegen:

defmod lumigatewaymgl03_0xbc33acfffe7e93b5 PythonModule xiaomi_gateway3_device XiaomiGW3 lumi.0xbc33acfffe7e7890

Letzteres ist offline und geht erst online, wenn ich das erste Gateway lösche, was aber glaube ich auch nicht korrekt ist. Bei erneuter Definition des ersten bleibt dieses dann offline.

Mache ich etwas falsch oder verstehe ich da etwas nicht richtig ?



Update: ich habe beide nochmal gelöscht und das erste erneut angelegt. Beide sind wieder erschienen aber jetzt auch beide online. Ist das zweite Gateway die Zigbee und/oder BLE bridge ?

dominik

Hi,

die 2 Gateways sind richtig :)

Das 1. Device stellt die Verbindung zum Gateway her. Das ist das, welches du definierst.

Das 2. Device ist das Gateway selbst. Das kann nämlich auch Commands verarbeiten und daher ist das 1. Device eher wie eine "Verbindung" zu sehen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Danke für das Modul, ich hätte großes Interesse daran das es auch Bluetooth Geräte angelegt werden,
würde das Bluetooth Gateway für meine Pflanzen Sensoren benutzen, wenn man zuviele einzeln einbindet ende das in chaos aufm nem raspberry;)

dominik

Eigentlich sollten schon jetzt Bluetooth Devices mit übertragen werden. Kannst du mal verbose auf 5 stellen und dann fhempy (oder komplett FHEM) neu starten? Poste dann bitte das fhempy Log.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

alles auf Verb 5 gesetzt und FHEM neu gestartet:

2021-10-03 11:05:56,773 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-10-03 11:05:56,785 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-10-03 11:05:56,830 - INFO     - websockets.server: server listening on 0.0.0.0:15733
2021-10-03 11:06:18,232 - INFO     - websockets.server: connection open
2021-10-03 11:06:18,234 - INFO     - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-10-03 11:06:18,913 - WARNING  - asyncio: Executing <Task finished coro=<xiaomi_gateway3.connect_gw() done, defined at /opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_gateway3/xiaomi_gateway3.py:73> result=None created at /usr/lib/python3.7/asyncio/tasks.py:325> took 0.112 seconds
2021-10-03 11:06:19,442 - DEBUG    - xiaomi_gw3: Check if device lumi.0 exists
2021-10-03 11:06:19,455 - DEBUG    - xiaomi_gw3: Check if device lumi.0 exists
2021-10-03 11:06:19,464 - DEBUG    - xiaomi_gw3: Check if device lumi.0 exists

dominik

ok, dann muss ich wohl nochmals den Code von XiaomiGateway3 aktualisieren, wahrscheinlich ist der Bug dort behoben.

Mach ich die nächsten Tage.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Zitat von: dominik am 03 Oktober 2021, 11:21:18
ok, dann muss ich wohl nochmals den Code von XiaomiGateway3 aktualisieren, wahrscheinlich ist der Bug dort behoben.

Mach ich die nächsten Tage.


Super, danke dir ;)

dominik

Update gestern Abend gemacht :)

Kannst du bitte Mal mit der neuen Version testen?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Zitat von: dominik am 08 Oktober 2021, 18:31:23
Update gestern Abend gemacht :)

Kannst du bitte Mal mit der neuen Version testen?

ok hab geupdated und FHEM neugestartet:
bis jetzt keine devices aufgetaucht

2021-10-09 16:27:22,719 - INFO     - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-10-09 16:27:22,733 - INFO     - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-10-09 16:27:22,778 - INFO     - websockets.server: server listening on 0.0.0.0:15733
2021-10-09 16:27:44,459 - INFO     - websockets.server: connection open
2021-10-09 16:27:44,461 - INFO     - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-10-09 16:27:45,196 - WARNING  - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0xb3a57a90>(<Future finis...events.py:396>) created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.222 seconds
2021-10-09 16:27:46,108 - DEBUG    - xiaomi_gw3: Check if device 408639306 exists
2021-10-09 16:27:47,130 - DEBUG    - xiaomi_gw3: Check if device 408639306 exists
2021-10-09 16:27:48,158 - DEBUG    - xiaomi_gw3: Check if device 408639306 exists

dominik

Was für ein Device ist das genau welches du verbunden hast? Bluetooth hast du gemeint, oder? Welcher Typ?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

xs3bt

Zitat von: dominik am 09 Oktober 2021, 18:14:57
Was für ein Device ist das genau welches du verbunden hast? Bluetooth hast du gemeint, oder? Welcher Typ?


ja genau Blueoooth meine ich, es sind zwei Flowercare sensoren und zwei arten von Temp/Hum Sensoren hab mal ein Bild angehängt wie das Gateway sie mir angezeigt.

dominik

Zitat von: xs3bt am 10 Oktober 2021, 10:10:59

ja genau Blueoooth meine ich, es sind zwei Flowercare sensoren und zwei arten von Temp/Hum Sensoren hab mal ein Bild angehängt wie das Gateway sie mir angezeigt.
Stell bitte mal beim xiaomi_gateway Device (das mit dem MQTT Logo) verbose auf 5 und mach dann einen Neustart von fhempy. Danach poste bitte das fhempy Log.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik