Closed haselchen closed 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.
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.
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.
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.
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.
Das funktioniert. Aber alleine bringen diese Punkte nichts. Dazu gehören noch anderen Einstellungen.
Wir lassen es einfach so wie es ist. Ich brauchte nur den power Datenpunkt :)
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.
Boah, das wäre der Hammer. Klasse Support! Vielen Dank für Dein Engagement!
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.
Hey....danke fürs Bereitstellen. Habs getestet und leider Fehler bekommen. `
` 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
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.
Das ist der Original Adapter mit den dazugehörigen Datenpunkten
Night mode gibt es dort nicht und Moon Mode hat einen befüllten Datenpunkt
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.
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.
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.
Sorry für die späte Antwort, was meinst Du mit ob ich die Version korrigiere, was passt denn nicht?
Da nix mehr kommt, denk ich mal es passt jetzt alles soweit, wenn nicht kannste gern reopenen, ich mach ma zu.
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.
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.
Alles gut, ich kann die Pendellampe ja jetzt steuern. Und da sich hier sonst keiner beteiligt hat :) kannst Du, denke ich, hier dichtmachen.
@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.
Im Yeelight Adapter ist der State korrekt
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.
@haselchen Versuchs mal mit der v0.2.24
@Pittini
Alles klärchen, probier ich aus. Gebe Dir bis Freitag Feedback dazu. Vorher schaffe ich es leider nicht.
@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 (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);
};
};
};
@Pittini
Dann kommt das:
`
| javascript.0 (27192) script.js.Luft3 compile failed: at script.js.Luft3:1059 -- | -- `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.
@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?
Du sollst doch nur den einen Block tauschen wozu dann 1000+ Zeilen markieren?
@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.
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.
Oki doki. DAS kann ich aber tatsächlich erst später ausprobieren. Gebe dann Feedback.
@Pittini
Neue Version getestet, keine Fehler. Wenn nix gravierendes mehr passiert, kann das Issue hier zu bleiben :)
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?