[Xiaomi Smart Home] Das Modul

Begonnen von torte, 24 Oktober 2017, 10:08:47

Vorheriges Thema - Nächstes Thema

slowfinger

Hallo zusammen
also nochmal einen PI3 mit Buster komplett neu aufgesetzt und auch alle Pakete so weit möglich aktualisiert und da läuft das Gateway mit Token und heartbeat => ist also kein "generisches" Problem sondern meines :-( Ich muss wohl weitersuchen ...
THX

torte

Tach slowfinger,

ich würd mal auf Firewall tippen.
Der erste Kontakt läuft über udp Multicast.

Grüße
Torte

ofno

hi

ich habe ein cpan upgrade gemacht da mein telgrambot Probleme hat, leider läuft mein fhem nicht mehr.

Letzte Meldung im log

send: Das Argument ist ungültig at ./FHEM/71_XiaomiSmartHome.pm line 541.

was bei mir die Zeile
$sock->mcast_send($msg,$GATEWAY .':9898') or die "send: $!";

ist.

Jemand eine Idee?

torte

Nabend,

ja Abhilfe stand hier auch im Threads.
Guck mal hier mit Patch
https://rt.cpan.org/Public/Bug/Display.html?id=130581

Danach geht es wieder.

Grüße
Torte

Gesendet mit Tapatalk


ofno

#214
Hi,

Danke hatte das auch gesehen, dachte nur das der Bug behoben wäre.

Danach läuft es wieder.

Gruß ofno

andre07

Habe wegen der Reichweite ein zweites Gateway zugelegt diesem
wurden einige Devices zugeordnet  nun möchte ich aber dieses
Gateway wieder rausschmeißen ist das so einfach möglich oder
muss ich alles wieder neu pairen.
In der App selber ist alles Gateway 1 zugeordnet.

Andre

torte

Moin
wenn in der app deine Sensoren einem Gateway zugeordnet sind dann sollte das gehen.
nur wenn ein Sensor mit dem "neuem" Gateway spricht musst du diesen dann an dem "alten" Gateway wieder anlernen.

Grüße
Torsten

kuhmelker

Ich habe das Modul installiert, bekomme aber weder Meldungen vom Gateway noch kann ich irgend etwas dorthin senden. List Devicename zeigt an, dass das Gateway verbunden ist:

Internals:
   DEF        172.16.50.136
   FD         28
   FHEMIP     172.16.50.10
   FUUID      5e45108e-f33f-60ba-9aa8-e719247047a62ac0
   GATEWAY    172.16.50.136
   GATEWAY_IP 172.16.50.136
   NAME       XiaomiGW
   NOTIFYDEV  global
   NR         223
   NTFY_ORDER 50-XiaomiGW
   STATE      off
   TYPE       XiaomiSmartHome
   VERSION    1.41
   READINGS:
     2020-02-13 10:22:09   password        6161F0C323A14541
     2020-02-13 10:02:07   pct             100
     2020-02-13 11:12:18   rgb             000000
     2020-02-13 10:02:07   ringtone        21
     2020-02-13 11:12:18   state           off
     2020-02-13 10:37:22   token           0
     2020-02-13 10:43:22   volume          10
   helper:
     ConnectionState Connected
     host       172.16.50.136
     prevrgbvalue 00ff00
Attributes:
   devStateIcon {Color_devStateIcon(ReadingsVal($name,"rgb","000000"))}
   room       MiSmartHome
   verbose    5
   webCmd     pct:rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:on:off

Ich kann aus der mobile App z.B. das Licht am Gateway an und ausschalten, via FHEM funktioniert das leider nicht:

2020-02-13 11:16:04 XiaomiSmartHome XiaomiGW on
2020-02-13 11:16:04 XiaomiSmartHome XiaomiGW rgb: 00ff00

Die Firewall auf dem FHEM Server ist ausgeschaltet:

ufw status
Status: inactive

und der ping zum Gateway funktioniert auch:

64 bytes from 172.16.50.136: icmp_seq=1 ttl=255 time=1.48 ms
64 bytes from 172.16.50.136: icmp_seq=2 ttl=255 time=1.44 ms
64 bytes from 172.16.50.136: icmp_seq=3 ttl=255 time=2.22 ms

Ich habe mehrfach versucht das Gateway neu einzubinden. Leider immer mit dem gleichen Resultat.

Was mache ich falsch?

torte

Hi,

Stell mal auf Verbose 5 und guck ins Fhem Log.

Ich würde vermuten das keine Kommunikation zwischen FHEM und GW über UDP läuft.
Du hast kein Token und keine SID am GW.
DOCKER?

Grüße
Torte

kuhmelker

Hi Torte

Verbose ist schon auf 5. Es kommt nichts im Log an. Auf dem Gerät läuft zwar auch noch eine Docker Instanz, FHEM ist aber native unter Ubuntu am Laufen.

Kann es sein, dass wir hier das gleiche Problem haben das ich unterdessen im Forum zu iOBroker gefunden habe:
https://forum.iobroker.net/topic/19115/xiaomi-mi-gateway-v3-workaround-f%C3%BCr-gelben-mihome-adapter ?

Ich habe nämlich auf meinem Gateway die Firmware: 1.4.1_175

bm7777

Zitat von: torte am 09 Februar 2020, 22:51:57
Nabend,

ja Abhilfe stand hier auch im Threads.
Guck mal hier mit Patch
https://rt.cpan.org/Public/Bug/Display.html?id=130581



Hallo,

kann mir vielleicht jemand erklären wie ich den Patch anwende :-)
Raspberry Pi Mod. B
CUL-Stick V3.4

ofno

Zitat von: bm7777 am 13 Februar 2020, 20:02:02
Hallo,

kann mir vielleicht jemand erklären wie ich den Patch anwende :-)
Perl -V gibt die Ordner. In eine findet sich die besagte .pm diese editieren

Roam

Hallo zusammen,

leider hab ich im Forum bisher nichts gefunden, daher schildere ich hier mein Problem.

Ich bin von einer FHEM Installation vom RPI auf die Docker Variante umgestiegen.
Klappt auch soweit alles gut, nur das die Xiaomi Devices keine Updates mehr senden. Gateway ist verbunden und wenn
ich updateAll sage, aktualisiert er auch alle Werte.

Meine Vermutung ist, dass sich FHEM am Gateway anmeldet und die IP mit gibt und da es sich um die Container IP handelt kommt keine Antwort. Kann jemand meine Vermutung bestätigen oder allgemein etwas zur Funktionsweise sagen?

Meine Perl Skills sind nicht die besten, aber ich bin schon soweit, dass ich die Host IP in FHEM angezeigt bekomme, die Frage ist nur ob und wie ich sie dann richtig nutzen muss.

Falls ich auf diesem Wege eine Lösung bekomme, bin ich auch gerne bereit meine Änderungen am Modul zur Verfügung zu stellen, für Leute die ähnliche Probleme haben.

Grüße
Robin

torte

Hi Robin,

wichtig ist das alles im selben Netzwerk ist. Das Gateway sendet seine Daten per Multicast auf Port 9898. Die erste Anfrage ans Gateway geht per UDP. Es muss also festgestellt werden was vom Physischen Netzwerk WLAN ins Docker Netzwerk geroutet werden muss. Ich weiß nicht ob das überhaupt geht. Das Modul lauscht nur auf die Paket die an der Netzwerkkarte vorbeifliegen wenn da keine vorbeifliegen macht es nix [emoji3].
Kenne mich mit Docker da nicht aus. In ein zwei drei Wochen ändert sich das aber... [emoji12]. ca. evtl.

Grüße
Torte


Gesendet mit Tapatalk


Roam

Hi Torte,

nach deinem hilfreichen Tipp, dass es sich um UDP und Multicast handelt habe ich es letztendlich hinbekommen.

Das Problem war, dass die Multicast Nachrichten nicht an den Container weitergereicht werden.
Auch nicht wenn man das Portforwarding einschaltet.

Der einzig praktikable Weg den ich gefunden habe, ist den Container im Hostmodus laufen zu lassen, somit sind alle Ports auch außerhalb des Containers erreichbar.

Dies bietet natürlich zusätzliche Angriffsfläche, die aber aus meiner Sicht in einem internen Netzwerk vernachlässigt werden kann.

Zum starten des Containers im Host Modul den Parameter "--net=host" mit angeben.
Bspw. "docker run -d --name fhem --net=host  fhem/fhem".

Ein explizites freigeben des FHEM Ports bspw ist nicht mehr nötig.

Grüße
Robin