FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: dominik am 23 Dezember 2020, 17:05:08

Titel: fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: dominik am 23 Dezember 2020, 17:05:08
Hi,

da das Thema Xiaomi Tokens aktuell in verschiedenen Thread verstreut ist, mach ich hier einen neuen Thread auf.

Mit dem fhempy xiaomi_tokens Modul ist es möglich alle Xiaomi Tokens nur mit deinem Xiaomi Login abzufragen.

Anleitung
- fhempy Installation: https://github.com/dominikkarall/fhempy#installation
- Modul Einrichtung: https://github.com/dominikkarall/fhempy/blob/master/FHEM/bindings/python/fhempy/lib/xiaomi_tokens/README.md

Wenn die Tokens geladen wurden, kann mittels
set dev create_miio_device ...
oder
set dev create_gateway3_device ...

auch gleich das Gerät zur Steuerung via FHEM angelegt werden.
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: KölnSolar am 23 Dezember 2020, 19:17:37
Danke Dir. Mir hilft es leider nicht, da mein token nicht in China ist(soll). Mir ist nach wie vor unwohl denen meine SSID nebst Schlüssel zu nennen.  >:( Und clever: neuer Schlüssel -> neues pairing -> neuer token -> ab nach China  :'( Ich such immer noch nach einer Lösung die Cloud zu umgehen. Für MIT bin ich zu unbedarft. Ich probier mal diese "spezielle" alte Android-Version. Vielleicht genügt da die Verbindung App - device im lokalen Netzwerk. :-\
Grüße Markus
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: MadMax-FHEM am 23 Dezember 2020, 19:50:41
Zitat von: KölnSolar am 23 Dezember 2020, 19:17:37
Ich such immer noch nach einer Lösung die Cloud zu umgehen.

Also ich "roote" ja alle meine Sauger sofort, dann ist zumindest das Auslesen des Token kein Thema :)

Und für ganz ohne Cloud gibt es Valetudo...
Hatte schon mal eine alte Version laufen, war aber nicht so zufrieden...
...werde mir das aber wohl demnächst noch mal anschauen.

Hatte (habe ich noch) mir mal einen PI zusammeninstalliert um eine "Root-FW" aufzuspielen, mittlerweile habe ich eine VM dafür...
https://python-miio.readthedocs.io/en/latest/vacuum.html
https://github.com/Hypfer/Valetudo
https://valetudo.cloud/pages/installation/roborock.html
https://heinz-otto.blogspot.com/2019/06/root-und-gut.html

Sorry für OT ;)

Gruß, Joachim
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: dominik am 23 Dezember 2020, 20:10:41
Beim Xiaomi Gateway3 musst du die Cloud auch nicht nutzen. Der Token wird aber benötigt um lokal auf den Xiaomi Gateway3 zuzugreifen. Danach läuft alles über MQTT.
Siehe: https://forum.fhem.de/index.php/topic,116637.msg1109695.html#msg1109695

Für die Kameras brauche ich überall die Cloud und davon habe ich auch einige. Die kann ich ebenso nur mit dem Token lokal steuern.

Aber jedem das seine, man kann es nutzen, muss es aber nicht :)
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: KölnSolar am 23 Dezember 2020, 22:06:51
ZitatAber jedem das seine, man kann es nutzen, muss es aber nicht :)
Stimmt. Mir missfällt aber der fehlende Hinweis auf Datensicherheit. Ändert vielleicht die Richtung der Entscheidung. Wenn man weiß, dass Ort, ssid, zugehöriger key, map der Wohnung ....nach China gefunkt  (https://dgiese.scripts.mit.edu/talks/BeVX-2018/BeVX_prepublic.pdf)(ab slide 22)werden, ist das nicht mehr lustig.

Aber Joachim hat recht, Details sind hier OT. Hab daher mal diesen Fred (https://forum.fhem.de/index.php/topic,117021.msg1113807.html#msg1113807) eröffnet.

Grüße Markus
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: dominik am 23 Dezember 2020, 22:34:05
Ich möchte nicht bei jedem Device die Datenschutzthematik studieren :) Verstehe mich nicht falsch, aber ich habe damit wirklich wenig Probleme da ich mittlerweile damit lebe. Meine Wohnung ist quasi schon komplett verwanzt...

So....jetzt genug mit OT hier :)
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: Stelaku am 28 Januar 2021, 12:46:09
Hallo dominik

Ich habe ja Dein fempy unter anderem bei mir mit im Einsatz.
Heute hatte ich leider das unschöne Vergnügen meinen Xiaomi Vacuum mop pro Sauger neu ins Wlan anzumelden.
Dadurch hat sich natürlich auch der token geändert.

Klasse dachte ich. Mit dem xiaomi_tokens wird das schnell gelöst sein.

Leider nicht. Das device arbeitet wie gewohnt und funktioniert im ersten Augenschein auch richtig.

Nur den token den ich bekomme ist leider nicht richtig. Bekomme mit den gelieferten token keine Verbindung zum Sauger.
Nach langen hin und her habe ich dann die gute alte Russische app ausgegraben und einen token bekommen der mir die Verbindung zum Sauger wieder erlaubt.

Ich kann mich noch daran errinnern das letztes Jahr eine auswahl für Country im drop down Menü vorhanden war.

Als ich da mit früher gespielt habe wurden mir auch unterschiedlich token ausgegeben. Vieleicht hängt das damit zusammen.

Heute habe ich diese Auswahlmöglichkeit nicht mehr im drop down.

Meine fempy Version ist

version     0.1.36        2021-01-28 12:10:55


das fhem update hatte ich auch heute schon durchlaufen lassen.

Vieleicht hast DU ja eine Idee. Würde mich freuen wieder auf xiaomi_tokens zurückgreifen zu können.

Viele Grüsse

Stephan

edit: Habe gerade mal eine alte Version von fempy vom 24.11.2020 eingespielt. Mit dieser Version habe ich den richtigen token bekommen.
        Diese Version hat auch noch keine Versions Nummer im local_pybinding
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: RappaSan am 01 Februar 2021, 19:13:11
kann nur bestätigen, daß das gelieferte token mit der aktuellen Version nicht stimmt. Eine Country auswahl konnte auch ich nicht feststellen.
Modul ist damit erstmal nutzlos. :(
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: dominik am 01 Februar 2021, 19:26:18
Hi,
das Thema hier hatte ich leider übersehen, kann es sein, dass das Device in mehreren Locations vorhanden ist und somit der Token von einer anderen Location überschrieben wird?
Die aktuelle Version holt nämlich von eu, sg und cn Server die Tokens ab.
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: RappaSan am 01 Februar 2021, 19:37:54
Schon möglich, soweit ich weiß bin ich nun auf dem deutschen Server.
Der Sauger ist mittlerweile schon 3 Jahre alt und war ursprünglich in China angemeldet.
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: dominik am 01 Februar 2021, 19:40:00
Ok, dann mach ich die Readings einfach getrennt mit cn/sg/eu.
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: RappaSan am 01 Februar 2021, 19:47:45
Ich werde berichten... :)
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: dominik am 01 Februar 2021, 20:30:22
So gerne testen...falls beim Update nicht auf 0.1.47 aktualisiert wird, dann bitte einmalig
sudo -u fhem pip3 install --upgrade fhempy
ausführen. Das muss nur einmalig gemacht werden, danach läuft das Update wieder über das FHEM Update.

Ich hatte einen Fehler im Updateprozess und daher funktioniert das Update bei alten Versionen (0.1.26 - 0.1.39) nicht.
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: Stelaku am 01 Februar 2021, 20:52:21
Hallo Dominik

Vielen dank für Deine Lösung.
Jetzt wird mir auch wieder der Richtig  token unter _de_token angezeigt.

Gruß

Stephan
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: RappaSan am 01 Februar 2021, 21:21:26
That hit the spot.
Läuft.
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: benm am 14 Februar 2021, 18:26:51
Hi Dominik,

bin begeistert, wie einfach man mit deinem Modul an die Token kommt! Danke erst mal für deine Arbeit!!!

Die Token findet er bei mir ohne Probleme, wenn ich allerdings irgendein Device anlegen will, dann bekomme ich folgende Fehlermeldung:
Failed to execute function Set: Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 348, in _onMessage
    fct_timeout,
  File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 94, in Set
    return await utils.handle_set(self._conf_set, self, hash, args, argsh)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 244, in handle_set
    return await fct_call(hash, final_params)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_tokens/xiaomi_tokens.py", line 73, in set_create_miio_device
    model = self._all_devices[did]["model"]
KeyError: '96634616'


Hängt das mit dem cryptography-Problem zusammen, was ich in dem fhempy:googlecast Beitrag beschrieben habe? Wenn ja, dann sorry für die doppelte Anfrage. Dachte nur, weil die Token gefunden werden, müsste es laufen.

Grüße, Benjamin
Titel: Antw:fhempy: xiaomi_tokens (get all tokens with your login)
Beitrag von: dominik am 14 Februar 2021, 20:57:06
Hi,

nein, hat damit nichts zu tun. Lag an der Anpassung die ich für die Abfrage aller Server gemacht habe.

Sollte in 0.1.49 behoben sein.