Pittini / iobroker-nodemihome

Steuerung von bisher nicht unterstützten Xiaomi Geräten in Iobroker via node-mihome
MIT License
27 stars 15 forks source link

Mi Air Purifier 3H Werte werden nicht aktualisiert #16

Closed stony2k closed 3 years ago

stony2k commented 3 years ago

Ich habe den Fork Pittini/node-mihome als zusätzliches NPM Modul in den Javascript Adapter eingetragen und das Kommando "setObject" erlaubt. Das Script läuft, findet meine Geräte und erzeugt Objekte. Unter info sehe ich auch meinen Token und die IP des Gerätes. Die anderen Datenpunkte werden aber leider nicht mit Werten gefüllt. Steuern ist somit auch nicht möglich. Dabei ist es egal, ob ich die App offen habe oder etwas in der App ändere. Das Script und den Javascript Adapter habe ich auch bereits neugestartet.

Was könnte das sein? Welche Infos kann ich noch liefern?

stony2k commented 3 years ago

Kann es sein, dass der Script nicht weiter ausgeführt wird, da es ein Problem mit meiner Yeelight hat?

2021-03-12 08:44:43.755 - error: javascript.0 (26307) script.js.Steuerung.Mi-Home: Error: Model yeelink.light.color2 is not 2021-03-12 08:44:43.755 - error: javascript.0 (26307) at Object.createDevice [as device] (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device.js:8:11) 2021-03-12 08:44:43.757 - error: javascript.0 (26307) at CreateDevices (script.js.Steuerung.Mi-Home:632:36) 2021-03-12 08:44:43.757 - error: javascript.0 (26307) at main (script.js.Steuerung.Mi-Home:564:5)

Kann ich evtl. temporär die Yeelight entfernen oder so?

nicedevil007 commented 3 years ago

benutzt du zufällig an anderen stellen noch node-red? Wenn ja, schau mal ob du das Token im ioBroker zumindest siehst.

Wenn ja, dann intalliere mal in Node-RED das plugin node-red-contrib-mi-air-purifier3

Damit steuer ich den nun, auch wenn es über ioBroker gehen würde, aber so komme ich darum, dass meine Zugangsdaten da wieder drin sind und ich kann das Gerät aus der ChinaCloud schmeißen :)

stony2k commented 3 years ago

node-red nutze ich zumindest nicht wissentlich. Ob das jetzt einer meiner Adapter intern vielleicht nutzt, keine Ahnung. Ich dachte bei dir geht es mit dem Script von @Pittini? Ich würde das schon gerne über sein Script laufen lassen.

Das Script funktioniert ja soweit, dass es sich in der Xiaomi Cloud einloggt, alle Geräte erkennt und diese anlegt. Auch den Token und die IP der Geräte werden angezeigt. Ich vermute aber, dass dann die Yeelight Glühbirne die weitere Ausführung des Scriptes verhindert? Ich hoffe @Pittini kann helfen :)

nicedevil007 commented 3 years ago

Meine Idee wäre halt gewesen, dass du mal testen kannst, ob du das Gerät schonmal komplett ohne App/Cloud steuern kannst. Node-RED is separater Adapter oder separater Docker Container. Das wird nicht indirekt von ioBroker Adaptern genutzt.

stony2k commented 3 years ago

So, ich habe es hinbekommen. Hoffentlich ist @Pittini hier überhaupt noch aktiv :)

Er selbst hat im ioBroker Forum eine Datei für die yeelink.light.color2 geschrieben. Nachdem ich diese in den entsprechenden Ordner kopiert und die rechte gesetzt hatte (vom user pi auf iobroker), musste ich den Java Script Adapter neustarten, damit die dabei erkannt wird. Der nächste Knackpunkt war aber: Mit dem Neustart wurde die Datei wieder gelöscht, weil sie hier im Fork nicht vorhanden ist.

DIe Lösung: Pittini/node-mihome nachträglich aus dem Java Script Adapter wieder rausnehmen. Die Dateien werden so nicht gelöscht. Natürlich bekomme ich so aus keine Updates, aber leider ist beim Original und Fork aktuell eh Funkstille.

Jetzt läuft das Script komplett durch und ich kann meine Geräte steuern. Ich lasse die Issue mal offen, damit @Pittini das sieht und fixen kann :)

Pittini commented 3 years ago

Leider ist das ganze Systemebene wo ich nich wirklich nen Plan hab, das Skript läuft an sich. Da es aber den Anschein hat, dass die Probleme immer in Zusammenhang mit der direkten Forkinstallation zusammenhängen, werd ich den Tipp aus der Anleitung wieder rausnehmen und Euch bitten das wieder auf blanko node-mihome zu stellen. Ja ich weis, dasses nervt, das der Entwickler nicht reagiert, aber glücklicher Weise wird die node-mihome nur erneuert wenn der JS-Adapter upgedatet wird. Der Weg wäre also, erst regulär node-mihome anzugeben und dann die für Eure Geräte relevanten Definitionsdateien aus der Fork in Euer node-mihome Verzeichnis zu kopieren. Nach neustart des JS Adapters sollte dann alles laufen.

stony2k commented 3 years ago

Wir könnten ja mal einen Test machen. Du läst deine yeelink.light.color2 (Link) Definitionsdatei mal in den entsprechenden Ordner hier in deinem Fork. Dann gebe ich deinen Fork wieder im Javascript Adapter an und starte ihn neu. Theoretisch müsste er dann auch die neue Datei mitladen. So können wir zumindest deinen Fork drin lassen, bis der Entwickler endlich mal reagiert :)