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

yeelink.light.ceiling10 (Yeelight YLDL01YL Meteorite Pendelleuchte) zukünftige Integration? #29

Closed haselchen closed 3 years ago

haselchen commented 3 years ago

Die Leuchte wird vom Script abgerufen, aber , soweit ich das wohl überblicken konnte, keine Datenpunkte angelegt -> weil nicht integriert.

Was benötigst Du , um die Pendelleuchte aufzunehmen?

Pittini commented 3 years ago

Kannste selber versuchen wennde magst, Du bist schon recht fit was das Skript angeht wie ich Deinen Kommentaren im Forum entnehme. Is nich soo schwer. Sind eigentlich nur 2 Schritte. Erstens, nimm eine der vorhandenen Ceinling.js (ich würde die ceiling3 nehmen) Dateien und speicher sie als yeelink.light.ceiling10.js, den Inhalt im Kopf editieren das dort auch die ceiling10 drinsteht, sind nur 2 Zeilen ganz oben. Js Adapter neustarten dann. Dann kopierste im Skript ebenfalls diese andere ceiling und setzt se mit der richtigen Bezeichnung wieder ein, den Index um eins erhöhen, 21 wär das dann aktuell. Im Idealfall wars das schon.

haselchen commented 3 years ago

Huhu, danke für die schnelle Rückmeldung. Ich habs mir so ein bisschen hingewürgt. Wichtig für mich war der Power Datenpunkt. Ich möchte das Licht per BWM einschalten. Danke nochmal für den Schubs in die richtige Richtung.

Unbenannt2

Pittini commented 3 years ago

Ok, prima wenns so geklappt hat. Geht nur power oder der Rest auch? Weil wenn ja wärs ja sinnvoll das mit aufzunehmen, sonst mußte das bei jedem Skriptupdate wieder machen.

haselchen commented 3 years ago

Es gäbe noch zig mögliche Abfragen....color mode, firmware, main power und und und.... Die Datenpunkte -jetzt- werden durch die Vorgaben im Script (vorher ja "ceiling3" jetzt "ceiling10") angelegt. Das ist nur ein Bruchteil. Man müsste das Device völlig neu aufnehmen um alles zu erfassen, was die Lampe an Daten bereitstellt. Dazu bin ich leider dann doch nicht in der Lage.

Pittini commented 3 years ago

Naja, die Basics langen ja, besser als gar nicht. Deswegen wärs halt interessant zu wissen ob power, brightness, colortemp funktionieren, ich hab ja keine Ahnung was das Device ist/kann etc.

haselchen commented 3 years ago

Das funktioniert. Aber alleine bringen diese Punkte nichts. Dazu gehören noch anderen Einstellungen. Unbenannt3

Wir lassen es einfach so wie es ist. Ich brauchte nur den power Datenpunkt :)

Pittini commented 3 years ago

Hey, mit dem Screenshot kann ich was anfangen, da seh ich wie die Befehle heissen, das is meist das Problem. Werd ich mal ins nächste update mit reinnehmen, wär nett wenn Dus dann mal durchtesten könntest.

haselchen commented 3 years ago

Boah, das wäre der Hammer. Klasse Support! Vielen Dank für Dein Engagement!

Pittini commented 3 years ago

Soo, V0.2.17 hat jetzt mal alle Datenpunkte der Lampe drin, dazu gibts das dazugehörige Def File https://github.com/Pittini/iobroker-nodemihome/blob/main/DefinitionfilesForNode-Mihome/yeelink.light.ceiling10.js

Bitte mal testen und berichten was klappt und was nicht.

haselchen commented 3 years ago

Hey....danke fürs Bereitstellen. Habs getestet und leider Fehler bekommen. `

19:28:59.064 | info | javascript.0 (9878) Stop script script.js.Luftikus -- | -- | -- 19:29:02.380 | info | javascript.0 (9878) Start javascript script.js.Luftikus 19:29:02.398 | error | javascript.0 (9878) script.js.Luftikus: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome' 19:29:02.400 | error | javascript.0 (9878) at script.js.Luftikus:3:16 19:29:02.400 | error | javascript.0 (9878) at script.js.Luftikus:1013:3 19:29:02.401 | info | javascript.0 (9878) script.js.Luftikus: Starting AllMyMi V.0.2.17 19:29:02.405 | info | javascript.0 (9878) script.js.Luftikus: registered 0 subscriptions and 0 schedules 19:29:02.406 | error | javascript.0 (9878) script.js.Luftikus: TypeError: Cannot read property 'miioProtocol' of undefined 19:29:02.406 | error | javascript.0 (9878) at Init (script.js.Luftikus:731:12) 19:29:02.406 | error | javascript.0 (9878) at script.js.Luftikus:64:1 19:29:02.406 | error | javascript.0 (9878) at script.js.Luftikus:1013:3

` Mit der Scriptversion 0.2.10 lief alles ohne Fehler durch. Sieht fast so aus, als wenn in deinem Def.Datei 2 Fehler sind. Device und Model Name

haselchen commented 3 years ago

So. Tatsächlich ist in der Def. Datei ein Fehler. Bei Model fehlt hinten die 0 .....ceiling1 steht dort.

Diese Datenpunkte werden angelegt. 2 Felder werden nicht befüllt. Moon Mode und Night Mode.

Leuchte

haselchen commented 3 years ago

Das ist der Original Adapter mit den dazugehörigen Datenpunkten

grafik

Night mode gibt es dort nicht und Moon Mode hat einen befüllten Datenpunkt

Pittini commented 3 years ago

Ok, danke, die zwei Fehler in der Def kann ich bestätigen, night_mode is eigentlich nicht vorhanden, das ist glaub ich aus der alten Version, lösch da mal alle Datenpunkte und schau ob der wieder angelegt wird, sollte eigentlich nicht. Den Monnmode schau ich morgen mal woran das hängen könnte. Bitte auch testen ob das setzen der Werte geht.

haselchen commented 3 years ago

Kann ich leider auch erst morgen testen. Moon Mode wäre schon cool, weil der mit einer der letzten Firmware Updates aus der Konfig geflogen ist. Die, die kein Update gemacht haben, könnten über den Datenpunkt diesen Mode steuern.

haselchen commented 3 years ago

Werte setzen funktioniert soweit ich das feststellen kann nach meinen Bedürfnissen. Korrigierst Du nochmal deine Scriptversion? Dann würde ich es auf Pause setzen und auf die Neue Version warten.

Pittini commented 3 years ago

Sorry für die späte Antwort, was meinst Du mit ob ich die Version korrigiere, was passt denn nicht?

Pittini commented 3 years ago

Da nix mehr kommt, denk ich mal es passt jetzt alles soweit, wenn nicht kannste gern reopenen, ich mach ma zu.

haselchen commented 3 years ago

Ok, danke, die zwei Fehler in der Def kann ich bestätigen, night_mode is eigentlich nicht vorhanden, das ist glaub ich aus der alten Version, lösch da mal alle Datenpunkte und schau ob der wieder angelegt wird, sollte eigentlich nicht. Den Monnmode schau ich morgen mal woran das hängen könnte. Bitte auch testen ob das setzen der Werte geht.

Mahlzeit... ich dachte wegen der 2 Fehler und Moonmode, dass Du eine neue Skripversion raushaust.

Pittini commented 3 years ago

Welche 2 Fehler denn? Meinst Du night_mode und die fehlende 0, das is doch schon gefixt? Am Moon_Mode kann ich nix machen der is in der Def und im Skript vorhanden, wenn er nicht befüllt wird, kommt da nix aus der Cloud da hab ich keinen Einfluß drauf.

haselchen commented 3 years ago

Alles gut, ich kann die Pendellampe ja jetzt steuern. Und da sich hier sonst keiner beteiligt hat :) kannst Du, denke ich, hier dichtmachen.

haselchen commented 3 years ago

@Pittini

Wollte gerade nen paar Skripte umstellen und habe leider gerade festgestellt, dass der isOnline Datenpunkt nicht aktualisiert wird. Damit wäre die Steuerung so unbrauchbar.

grafik

Im Yeelight Adapter ist der State korrekt

grafik

Pittini commented 3 years ago

Hmm, ja, das is bei allen Geräten so, alle Infodatenpunkte werden nur bei Skriptstart aktualisiert, da diese Info leider nicht mit den "normalen" Werten gesendet wird. Das zu ändern wird evtl. was größeres, muß ich mal guggen.

Pittini commented 3 years ago

@haselchen Versuchs mal mit der v0.2.24

haselchen commented 3 years ago

@Pittini

Alles klärchen, probier ich aus. Gebe Dir bis Freitag Feedback dazu. Vorher schaffe ich es leider nicht.

haselchen commented 3 years ago

@Pittini

Okay habs eben doch mal schnell probiert. Leider ist das Log voller Fehler.

`

javascript.0 | 2021-08-08 13:46:03.445 | error | (27192) at processTicksAndRejections (internal/process/task_queues.js:97:5) -- | -- | -- | -- javascript.0 | 2021-08-08 13:46:03.444 | error | (27192) at runMicrotasks (:null:null) javascript.0 | 2021-08-08 13:46:03.444 | error | (27192) at RefreshGenericDpsTicker (script.js.Luft3:854:33) javascript.0 | 2021-08-08 13:46:03.444 | error | (27192) script.js.Luft3: TypeError: Cannot read property 'rssi' of undefined javascript.0 | 2021-08-08 13:45:53.416 | error | (27192) at processTicksAndRejections (internal/process/task_queues.js:97:5) javascript.0 | 2021-08-08 13:45:53.416 | error | (27192) at runMicrotasks (:null:null) javascript.0 | 2021-08-08 13:45:53.416 | error | (27192) at RefreshGenericDpsTicker (script.js.Luft3:854:33) javascript.0 | 2021-08-08 13:45:53.415 | error | (27192) script.js.Luft3: TypeError: Cannot read property 'rssi' of undefined javascript.0 | 2021-08-08 13:45:43.437 | error | (27192) at processTicksAndRejections (internal/process/task_queues.js:97:5) javascript.0 | 2021-08-08 13:45:43.436 | error | (27192) at runMicrotasks (:null:null) javascript.0 | 2021-08-08 13:45:43.436 | error | (27192) at RefreshGenericDpsTicker (script.js.Luft3:854:33) javascript.0 | 2021-08-08 13:45:43.430 | error | (27192) script.js.Luft3: TypeError: Cannot read property 'rssi' of undefined javascript.0 | 2021-08-08 13:45:33.465 | error | (27192) at processTicksAndRejections (internal/process/task_queues.js:97:5) javascript.0 | 2021-08-08 13:45:33.465 | error | (27192) at runMicrotasks (:null:null) javascript.0 | 2021-08-08 13:45:33.465 | error | (27192) at RefreshGenericDpsTicker (script.js.Luft3:854:33) javascript.0 | 2021-08-08 13:45:33.453 | error | (27192) script.js.Luft3: TypeError: Cannot read property 'rssi' of undefined javascript.0 | 2021-08-08 13:45:23.496 | error | (27192) at processTicksAndRejections (internal/process/task_queues.js:97:5) javascript.0 | 2021-08-08 13:45:23.496 | error | (27192) at runMicrotasks (:null:null) javascript.0 | 2021-08-08 13:45:23.496 | error | (27192) at RefreshGenericDpsTicker (script.js.Luft3:854:33) javascript.0 | 2021-08-08 13:45:23.490 | error | (27192) script.js.Luft3: TypeError: Cannot read property 'rssi' of undefined `
Pittini commented 3 years ago

Sehr seltsam, rssi sollten alle Geräte haben, aber gut, versuch mal den For Block ab Zeile 855 mit dem hier zu ersetzen:

    for (let DeviceIndex in dummy) {
        if (typeof dummy[DeviceIndex].rssi != "undefined") {
            if (device[DeviceIndex].rssi != dummy[DeviceIndex].rssi) {
                device[DeviceIndex].rssi = dummy[DeviceIndex].rssi;
                setState(praefix0 + "." + device[DeviceIndex].id + ".info." + "rssi", device[DeviceIndex].rssi, true);
            };
        };
        if (typeof dummy[DeviceIndex].isOnline != "undefined") {
            if (device[DeviceIndex].isOnline != dummy[DeviceIndex].isOnline) {
                device[DeviceIndex].isOnline = dummy[DeviceIndex].isOnline;
                setState(praefix0 + "." + device[DeviceIndex].id + ".info." + "isOnline", device[DeviceIndex].isOnline, true);
            };
        };
    };
haselchen commented 3 years ago

@Pittini

Dann kommt das:

`

  | javascript.0 (27192) script.js.Luft3 compile failed: at script.js.Luft3:1059 -- | -- `
Pittini commented 3 years ago

Das sieht mir eher danach aus also ob Du da ne Klammer zuviel oder zuwenig hast oder sonstwas beim tauschen des BLocks passiert is, sonst hätt ich den Fehler ja auch.

haselchen commented 3 years ago

@Pittini

Wenn ich dein Script markiere (1057 Zeilen) und dann STRG und C drücke und dann in Javascript STRG und V , dann erscheinen da nur 1055 Zeilen. Vermutlich ist das der Fehler, aber wie kriege ich da die Kuh vom Eis?

Benutze Version 5.1.3 vom Javascript. Liegt es vielleicht daran?

Pittini commented 3 years ago

Du sollst doch nur den einen Block tauschen wozu dann 1000+ Zeilen markieren?

haselchen commented 3 years ago

@Pittini

Weil ich noch ein älteres Skript von dir benutze und in der Zwischenzeit sich ja einiges getan hat. Also 2. Skript mit dem neuen Code (v0.2.24) angelegt und dann deine neuen Codezeilen ausgetauscht.

Pittini commented 3 years ago

Hm, ok, aber 2 Zeilen können eigentlich nicht einfach "verschwinden". Manuell markiert oder via Strg+A ? Wenn ersteres, mach mal letzteres und in Git vorher auf "RAW" gehen.

haselchen commented 3 years ago

Oki doki. DAS kann ich aber tatsächlich erst später ausprobieren. Gebe dann Feedback.

haselchen commented 3 years ago

@Pittini

Neue Version getestet, keine Fehler. Wenn nix gravierendes mehr passiert, kann das Issue hier zu bleiben :)