Posts Tagged ‘Fan’

Sonntag, 29. Juni 2025

Xiaomi Standventilatoren (Fans) in Homebridge einbinden

Es funktioniert, ist in meinem Fall aber komplizierter als ursprünglich gedacht. Aus zwei Gründen:

Xiaomi-„Heimatserver“ in China

Meine Xiaomi Mi Home App ist aus historischen Gründen seit Jahren auf Xiaomi-Servern in China eingerichtet.

Damit konnte ich aber einen kürzlich gekauften Xiaomi Mi Smart Standing Fan 2 Lite (interne Kennung: dmaker.fan.1c) für eine gerade zusätzlich erstellte Wohnung nicht registrieren — die Assoziierung über die iOS App auf dem iPhone schlug irgendwie immer bei etwa 50 Prozent fehl.

Ich habe deshalb für die zusätzliche Wohnung ein neues Konto eröffnet, und dieses auf Schweiz eingestellt.

Damit konnte ich den Lüfter mit der Xiaomi Mi Home App mit dem WiFi verbinden, er erscheint nun in der App unter macOS, welche mit meinem Zweitkonto registriert ist.

Token

Doch so ein Lüfter ist nur halb so lustig, wenn man ihn nicht auch in Apple HomeKit eingebunden hat, und ihn mittels der Siri-Spracherkennung eines Apple HomePods bedienen kann.

Hier kommt bei mir Homebridge zur Anwendung: Das Plugin homebridge-xiaomi-fan exponiert Xiaomi Lüfter gegenüber Apple HomeKit.

Randbemerkung: Dass die Fans dabei mit zig „Buttons“ exponiert werden, und sogar einer „Bulb“, finde ich nicht so schön. Item.

Das Problem: Ich musste den „Token“ des Fans irgendwie auslesen und in der Homebridge-Konfiguration hinterlegen. Neben der IP des Geräts, als nichts mit „auto discovery“.

Gar nicht so einfach, denn das Kommandozeilen-Tool eines anderen Entwicklers — Xiaomi-cloud-tokens-extractor funktioniert aktuell nicht mehr.

Doch verzweifelt nicht, die erste Option in Obtain Mi Home device token bringt die Lösung: Mi Home Toolkit.

Den deutschen Heimatserver ausgewählt (Schweiz existiert nicht im Drop Down), eingeloggt — und da steht er im Klartext, der Token. Einziges Problem: Das Element war mit Version 1.2.1 der App nicht selektierbar, weshalb Copy & Paste nicht funktionierte. Ungefähr eine Stunde, nachdem ich den Feature Request platziert hatte, war Version 1.2.2 live, welche das Problem behob.

WICHTIG: Ich vertraue diesen Wrapper-Applikationen nicht, auch wenn sie Open Source sind — zu einfach ist es, die Zugangsdaten mittels eines kleinen HTTP-Requests noch an einen Drittserver zu senden. Ich habe das Kennwort deshalb nach der erfolgreichen Einbindung vorsichtshalber noch einmal geändert.

Tags: , , , , , , , ,
Labels: Home Automation

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 23. Januar 2022

iMac Late 2015 mit kaputtem Lüfter

Gestern Samstag-Abend: Vor dem-zu-Bett-gehen starte ich die Aktualisierung meines iMac 27 Zoll (iMac 17,1), Late 2015, Quad-Core i7, 24 GB, 2 TB von macOS Big Sur 11.6.1 auf 11.6.2. Ich habe das Gerät im Oktober 2017 für 1950 CHF gebraucht gekauft; da ist das Gerät gerade sieben Monate alt. Schnäppchen!

Heute Morgen ist das elektronische Postfach voll mit in Episoden an- und abklingenden monit-Meldungen. Als ich mich am Vormittag hinter das Gerät setze, ist schnell klar, dass etwas ganz und gar nicht stimmt. Es folgt ein Debug-Marathon, ursprünglich davon ausgehend, dass ich es mit einem Software-Problem zu tun habe. Im Laufe des Tages folgt das (widerwillige) Upgrade auf macOS Monterey, bis ich schlussendlich der Ursache des Ausfalls auf die Schliche komme:

Der im Innern des iMacs installierte Lüfter muss während — oder kurz nach — dem Betriebssystem-Upgrade kaputt gegangen sein.

Die Symptome:

  • Der Prozess kernel_task beansprucht knapp 500 Prozent der CPU-Leistung (siehe Link weiter unten)
  • In der Prozessliste findet man dutzende mds_stores Prozesse
  • Die Kiste läuft, plötzlich wird der integrierte sowie der angeschlossene Dell P2415Q-Bildschirm schwarz — und plötzlich startet der iMac ohne zu tun neu
  • Der per DisplayPort angeschlossene Dell P2415Q verliert andauernd das Signal
  • Jede Aktion im GUI dauert extrem lange — es fühlt sich an, als würde man einen 286er bedienen. Doppelklick, eine Minute warten. Alt-Tab, Sekunden vergehen bis die gewählte Applikation in den Vordergrund tritt
  • Die Eingabe über die Tastatur hakelt extrem — zwischen Tastendruck und Anzeige auf dem Bildschirm können Sekunden vergehen
  • Die Situation verbessert sich spürbar, wenn man das Kabel des externen Monitors abhängt
  • htop weist eine Load Average nördlich von 15 aus
  • Im /var/log/system.log (per SSH eingeloggt kann man das Gerät debuggen, ohne mit dem GUI kämpfen zu müssen) liest man verschiedene komische Meldungen …
    • … der Service mds (Spotlight-Indexierung) muss andauernd Indexierungsprozesse abschiessen. Auch das Deaktivieren von Spotlight mittels sudo mdutil -a -i off (Quelle) bringt nichts
    • … Apps finden Grafikkartentreiber nicht (nicht sicher, ob das wirklich ein echtes Problem ist): VTDecoderXPCService[558]: getattrlist failed for /Library/GPUBundles/AMDRadeonVADriver.bundle/Contents/MacOS/AMDRadeonVADriver: #2: No such file or directory und Dock[1242]: getattrlist failed for /Library/GPUBundles/AppleIntelSKLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelSKLGraphicsVADriver: #2: No such file or directory
    • … immer wieder erscheinen com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.89): entering bootstrap mode und com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.89): exiting bootstrap mode
  • Die Ping-Latenz fluktuiert spürbar in einer Art Wellenform; von den erwarteten einstelligen Millisekunden bis zu dreistelligen Werten (siehe Anhang)

Obwohl sich dieser Stackexchange-Artikel und dieser offizielle Apple-Artikel auf (überhitzende) MacBook Pros bezieht, gibt er mir den wichtigsten Tipp: Hitze!

Und tatsächlich, das Gehäuse ist heiss. Und plötzlich erinnere ich mich, dass ich den Lüfter des iMacs verdächtig lange nicht (mehr) gehört habe. Normalerweise lief der täglich mehrmals an, insbesondere, wenn zwei Mal täglich Backups (rsync auf das Synology NAS, TimeMachine auf die TimeCapsule sowie mit Arq zu Backblaze) durchgeführt wurden.

Ich installiere mir die Software Macs Fan Control, welche den Verdacht bestätigt: Die aktuelle Umdrehungszahl beträgt (orange eingefärbt) 0. Minimal müssten eigentlich 1200 Umdrehungen gefahren werde. Ich schalte auf Full Blast (2850 Umdrehungen) — doch kein Wank, kein Geräusch, keine Zirkulation. Währenddessen sehe ich, dass die CPU-Temperatur bei 87 Grad angekommen ist.

Nachtrag: Das geht übrigens alles auch von der Kommandozeile, ohne Installation von Drittsoftware. Um die Temperaturen der CPU-Kerne auszulesen:

# powermetrics --samplers smc | grep -i "CPU die temperature"
CPU die temperature: 47.70 C
CPU die temperature: 46.17 C
CPU die temperature: 46.41 C
CPU die temperature: 46.48 C
CPU die temperature: 46.30 C
...

Um die Lüftergeschwindigkeit auszulesen:

# powermetrics --samplers smc | grep Fan
Fan: 0 rpm
Fan: 0 rpm
...

Und plötzlich macht alles Sinn: Die CPU droht zu überhitzen, weil sie der iMac mangels funktionierendem Lüfter nicht mehr kühlen kann. Deshalb schreitet nun kernel_task zur Tat: Er drosselt alle laufenden Prozesse, damit diese die CPU nicht weiter strapazieren. Für den Benutzer bedeutet das ein extrem träges System. Indem ich den externen Monitor abgehängt habe, läuft die GPU nicht mehr (so) heiss, was ebenfalls Linderung in der „finnischen Sauna“ im Innern des iMac bringt.

Rückblickend ein Wunder, dass ich Monterey während Stunden (!) tatsächlich installieren konnte und die Kiste dabei nicht gegrillt habe (geschweige denn einen Wohnungsbrand ausgelöst habe).

Ich trenne den iMac vom Strom, um den System Management Controller (SMC) zurückzusetzen (Quelle). Leider springt der Lüfter auch danach nicht mehr an. Damit sind alle Lösungsversuche, die auch unter folgender Frage beschrieben wurden, ausgeschöpft: iMac fans stopped, what must I do?

Die leider letzte verbleibende Lösung? Den defekten Lüfter austauschen — hilfreich könnte diese iFixIt-Anleitung sein. Ich habe aber keine Lust, an meinem iMac rumzumechen.

Nun habe ich mir als Ersatz einen Mac mini M1 bestellt.

Sobald das Ersatzgerät da ist, werde ich abklären, wie viel mich bei DataQuest DQ Solutions in Bern ein Austausch des Lüfters kosten wird (ich befürchte mehrere hundert Franken, da der ganze Mac auseinandergebaut und ein Ersatzlüfter eingebaut werden muss).

Dann werde ich mir überlegen müssen, ob ich das Gerät repariere, und falls ja, ob ich es danach wieder in Betrieb nehme, oder es auf Ricardo verkaufe. Vermutlich Letzteres: Die Zukunft gehört M1, und wahrscheinlich wäre das der richtige Zeitpunkt, auch auf dem Desktop den Wechsel zu vollziehen (diesen Text schreibe ich auf einem MacBook Air M1).

Anhang

64 bytes from 1.2.3.4: icmp_seq=11856 ttl=64 time=5.659 ms
64 bytes from 1.2.3.4: icmp_seq=11857 ttl=64 time=5.565 ms
64 bytes from 1.2.3.4: icmp_seq=11858 ttl=64 time=8.133 ms
64 bytes from 1.2.3.4: icmp_seq=11859 ttl=64 time=6.890 ms
64 bytes from 1.2.3.4: icmp_seq=11860 ttl=64 time=6.753 ms
64 bytes from 1.2.3.4: icmp_seq=11861 ttl=64 time=14.673 ms
64 bytes from 1.2.3.4: icmp_seq=11862 ttl=64 time=52.217 ms
64 bytes from 1.2.3.4: icmp_seq=11863 ttl=64 time=101.217 ms
64 bytes from 1.2.3.4: icmp_seq=11864 ttl=64 time=153.161 ms
64 bytes from 1.2.3.4: icmp_seq=11865 ttl=64 time=11.308 ms
64 bytes from 1.2.3.4: icmp_seq=11866 ttl=64 time=6.809 ms
64 bytes from 1.2.3.4: icmp_seq=11867 ttl=64 time=9.474 ms
64 bytes from 1.2.3.4: icmp_seq=11868 ttl=64 time=5.172 ms
64 bytes from 1.2.3.4: icmp_seq=11869 ttl=64 time=6.211 ms
64 bytes from 1.2.3.4: icmp_seq=11870 ttl=64 time=7.839 ms
64 bytes from 1.2.3.4: icmp_seq=11871 ttl=64 time=5.575 ms
64 bytes from 1.2.3.4: icmp_seq=11872 ttl=64 time=5.559 ms
64 bytes from 1.2.3.4: icmp_seq=11873 ttl=64 time=20.077 ms
64 bytes from 1.2.3.4: icmp_seq=11874 ttl=64 time=60.732 ms
64 bytes from 1.2.3.4: icmp_seq=11875 ttl=64 time=107.225 ms
64 bytes from 1.2.3.4: icmp_seq=11876 ttl=64 time=159.577 ms
64 bytes from 1.2.3.4: icmp_seq=11877 ttl=64 time=6.760 ms
64 bytes from 1.2.3.4: icmp_seq=11878 ttl=64 time=13.282 ms
64 bytes from 1.2.3.4: icmp_seq=11879 ttl=64 time=15.027 ms
64 bytes from 1.2.3.4: icmp_seq=11880 ttl=64 time=6.770 ms
64 bytes from 1.2.3.4: icmp_seq=11881 ttl=64 time=4.986 ms
64 bytes from 1.2.3.4: icmp_seq=11882 ttl=64 time=5.948 ms
64 bytes from 1.2.3.4: icmp_seq=11883 ttl=64 time=8.361 ms
64 bytes from 1.2.3.4: icmp_seq=11884 ttl=64 time=5.632 ms
64 bytes from 1.2.3.4: icmp_seq=11885 ttl=64 time=21.801 ms
64 bytes from 1.2.3.4: icmp_seq=11886 ttl=64 time=66.570 ms
64 bytes from 1.2.3.4: icmp_seq=11887 ttl=64 time=109.075 ms
64 bytes from 1.2.3.4: icmp_seq=11888 ttl=64 time=153.075 ms
64 bytes from 1.2.3.4: icmp_seq=11889 ttl=64 time=10.720 ms
64 bytes from 1.2.3.4: icmp_seq=11890 ttl=64 time=8.682 ms

Tags: , , , , , , , , , , ,
Labels: Apple, IT

Keine Kommentare | neuen Kommentar verfassen