NEWS
Test Adapter melcloud v2.0.x Latest
-
Hi @Black-Thunder ;
als 1. ein großes Dankeschön für den Adapter. Ich bin recht neu im ioB Thema und versuche mich vorerst an der Einbindung meiner smarten Geräte.
Da meine neue Klimaanlage jetzt läuft, wollte ich sie über einige Parameter aus meiner PV-Anlage steuern.
Das hat bis vor kurzem auch recht gut funktioniert.
Ich habe jetzt leider folgendes Phänomen:
Melcloude auf dem Hdy offen, Melcloude im Browser offen, Datenpunkte des Adapters im ioB offen. Klimaanlage (KA) aus.
Wenn ich per Hdy oder per Web die KA einschalte wird der Datenpunkt ...devices.12345678.control.Power spätestens nach meinem Abrufinterval (2min) auf true gesetzt. die KA schaltet ein.
Wenn ich allerdings diesen Datenpunkt mittels JS (setState("melcloud.0.devices.12345678.control.power"/Power/,true, true)) setze, schaltet weder die KA noch erfolgt eine Anzeige auf dem Hdy oder dem Browser... nach einiger Zeit wird der Status (nach Ablauf des Intervals?) wieder zurück auf false gesetzt.
Was komisch ist, das setzen anderer Parameter wie z.B Temepratur ist in Browser oder App sichtbar...
Was mache ich falsch?
Vielen Dank für Deine Hilfe. -
@ringo-66 Freut mich natürlich, wenn dir mein Adapter gefällt.
Das Problem, wenn du einen Datenpunkt via setState() so steuerst, wie du es im Moment tust, liegt an dem sogenannten ack-Flag (letzter Aufrufparameter, siehe Doku). Steht das auf "true", wird das nicht als benutzergesteuertes Kommando vom Adapter interpretiert und daher ignoriert. Mit folgendem Aufruf sollte es funktionieren (beachte das letzte "false"). Du kannst das aber auch ganz weglassen, da es standardmäßig eh auf "false" steht.
setState("melcloud.0.devices.12345678.control.power", true, false) setState("melcloud.0.devices.12345678.control.power", true)
-
@black-thunder said in Test Adapter melcloud v1.3.x Latest:
@ringo-66 Freut mich natürlich, wenn dir mein Adapter gefällt.
Das Problem, wenn du einen Datenpunkt via setState() so steuerst, wie du es im Moment tust, liegt an dem sogenannten ack-Flag (letzter Aufrufparameter, siehe Doku). Steht das auf "true", wird das nicht als benutzergesteuertes Kommando vom Adapter interpretiert und daher ignoriert. Mit folgendem Aufruf sollte es funktionieren (beachte das letzte "false"). Du kannst das aber auch ganz weglassen, da es standardmäßig eh auf "false" steht.
setState("melcloud.0.devices.12345678.control.power", true, false) setState("melcloud.0.devices.12345678.control.power", true)
Ah, OK dann bau ich das um... Danke Dir für die schnelle Hilfe
..und funktioniert sofort -
@Black-Thunder
thanks a lot for your great tool. Was looking forward to latest functions.Now, just updated melcloud to v1.3.5 and keep receiving errors on iobroker. running on raspberry pi4. Have updated to node.js 18.x, running js-controller 4.x;
Error starts with "Caught by controller[0]: node:internal/modules/cjs/loader:1080"
have deleted complete entries, removed adapter and reinstalled.
After errors, i-iobroker reports: "Rebuild for adapter system.adapter.melcloud.0 not successful in 3 tries."; manual rebuilt does not help.Error chain keeps coming
host.bb-broker 2023-08-05 19:02:42.971 error instance system.adapter.melcloud.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.bb-broker 2023-08-05 19:02:42.970 error Caught by controller[0]: Node.js v18.17.0 host.bb-broker 2023-08-05 19:02:42.970 error Caught by controller[0]: } host.bb-broker 2023-08-05 19:02:42.970 error Caught by controller[0]: ] host.bb-broker 2023-08-05 19:02:42.970 error Caught by controller[0]: '/opt/iobroker/node_modules/iobroker.melcloud/main.js' host.bb-broker 2023-08-05 19:02:42.970 error Caught by controller[0]: '/opt/iobroker/node_modules/iobroker.melcloud/node_modules/@iobroker/adapter-core/build/index.js', host.bb-broker 2023-08-05 19:02:42.970 error Caught by controller[0]: requireStack: [ host.bb-broker 2023-08-05 19:02:42.970 error Caught by controller[0]: code: 'MODULE_NOT_FOUND', host.bb-broker 2023-08-05 19:02:42.969 error Caught by controller[0]: at Module.require (node:internal/modules/cjs/loader:1143:19) { host.bb-broker 2023-08-05 19:02:42.969 error Caught by controller[0]: at Module._load (node:internal/modules/cjs/loader:960:12) host.bb-broker 2023-08-05 19:02:42.969 error Caught by controller[0]: at Module.load (node:internal/modules/cjs/loader:1119:32) host.bb-broker 2023-08-05 19:02:42.969 error Caught by controller[0]: at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) host.bb-broker 2023-08-05 19:02:42.969 error Caught by controller[0]: at Module._compile (node:internal/modules/cjs/loader:1256:14) host.bb-broker 2023-08-05 19:02:42.969 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.melcloud/node_modules/@iobroker/adapter-core/build/index.js:21:1) host.bb-broker 2023-08-05 19:02:42.969 error Caught by controller[0]: at require (node:internal/modules/cjs/helpers:110:18) host.bb-broker 2023-08-05 19:02:42.968 error Caught by controller[0]: at Module.require (node:internal/modules/cjs/loader:1143:19) host.bb-broker 2023-08-05 19:02:42.968 error Caught by controller[0]: at Module._load (node:internal/modules/cjs/loader:922:27) host.bb-broker 2023-08-05 19:02:42.968 error Caught by controller[0]: at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15) host.bb-broker 2023-08-05 19:02:42.968 error Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.melcloud/main.js host.bb-broker 2023-08-05 19:02:42.968 error Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.melcloud/node_modules/@iobroker/adapter-core/build/index.js host.bb-broker 2023-08-05 19:02:42.967 error Caught by controller[0]: Require stack: host.bb-broker 2023-08-05 19:02:42.967 error Caught by controller[0]: Error: Cannot find module '@iobroker/types' host.bb-broker 2023-08-05 19:02:42.967 error Caught by controller[0]: ^ host.bb-broker 2023-08-05 19:02:42.967 error Caught by controller[0]: throw err; host.bb-broker 2023-08-05 19:02:42.966 error Caught by controller[0]: node:internal/modules/cjs/loader:1080 modbus.0 2023-08-05 19:02:01.098 error Client in error state. modbus.0 2023-08-05 19:02:01.097 error Socket Error
Any idea - hints much appreciated
-
@vsebian At first glance, I think there's rather an issue with your environment than with the adapter itself. You may check your system according to this instructions to see if there's anything not quite right.
Especially check whether the command
sudo ln -s /usr/bin/node /usr/bin/nodejs &> /dev/null uname -m && type -P nodejs node npm npx && nodejs -v && node -v && npm -v && npx -v && iob -v && whoami && groups && echo $XDG_SESSION_TYPE && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
returns a similar output like in the link above.
-
Welche Version von node bzw. npm verwendest du?
EDIT: grad gesehen, node 18, das sollte OK seinCaught by controller[0]: Error: Cannot find module '@iobroker/types'
Das Problem tritt bei npm 6 auf da npm 6 peerDependencies nicht automatisch installiert. Das sollte bei node 18 aber nicht der Fall sein - außer du hast eine unsaubere Installation mit npm6
-
Hallo Zusammen, der Adapter verbindet sich nicht mit Melcloud, Passwort/User habe ich mehrfach geprüft. Zur Sicherheit die Frage, ob es mit folgenden Versionen laufen sollte:
js-controler 4.0.23
npm 6.14.17
node 14.20.0 -
@highline sagte in Test Adapter melcloud v1.3.x Latest:
node 14.20.0
Installier da nodejs@18.
Brauchst du ohnehin auch für andere Adapter und ist die aktuell für den ioBroker empfohlene Version. -
@highline
Mit node 14 (genauer npm 6) wirst du definitiv Probleme bekommen. melcloud verwendet adapter-core 3.x.x und erfordert daher node 16 oder neuer. Da node 16 ab 11.9 deprecated ist solltest du wie schon von Thomas Braun empfohlen auf node 18 upgraden. Node 14 ist "tot" und wird dir bereits jetzt und erst recht in naher Zukunft jede Menge Problem bereiten. -
Danke euch, es läuft nun mit nodejs18
-
@Black-Thunder
Dein Adapter lässt sich auf einem ioBroker Slave ohne installierten Admin nicht installieren. Es wird der fehlende Admin angemeckert.
Lässt sich das änden? -
@fredf Hm, eigentlich ist der Admin-Adapter unter globalDependencies definiert, sprich die Abhängigkeit wird auf dem gesamten Multihost-System gesucht und nicht nur auf der lokalen Instanz. Von daher sollte das eigentlich funktionieren. Wie ist denn die genaue Fehlermeldung bzw. was steht im Log?
-
@black-thunder
Im log als ich es versuchte gibt es keine Einträge... es gab in der admin GUI eine Meldung, die ich mir natürlich nicht kopiert habe.
Ich hatte dann den Adapter auf meinem Master problemlos installiert.
Und nun habe ich ihn deinstalliert und wieder auf dem Slave versucht.... und nun hat es geklappt... -
Hallo, ich habe gerade mal auf die aktuellste Version (1.3.5) geupdatet.
Mir ist aufgefallen, dass es den DPmelcloud.0.devices.19738509.reports.totalPowerConsumptionCool
und den DPmelcloud.0.reports.lastReportData.totalPowerConsumptionCool
in den Objekten gibt.Bei mir stehen da unterschiedliche Werte drin.
Sollten da nicht die gleichen Werte drin stehen ? -
@darkblu Die Werte unter "melcloud.0.reports.lastReportData" beziehen sich übergreifend auf alle Geräte und berechnen sich aus den kumulierten Einzelwerten der jeweiligen Geräte.
Unter "melcloud.0.devices.XXX.reports" findest du die Verbrauchswerte des jeweiligen Gerätes an sich.Solltest du nur ein Gerät besitzen, sollten dort die gleichen Werte stehen, ja. Bei mehreren Geräten eben die Summe der Einzelverbräuche.
-
Danke.
Und ja, ich habe nur ein Gerät -
@darkblu Dann könntest du bitte mal die Logstufe des Adapters auf "Debug" stellen, einen Abruf der Verbrauchswerte anstoßen und das entsprechende Log hier posten, wenn du magst. Evtl. besteht da ein Problem, wenn nur ein Gerät vorhanden ist.
-
@black-thunder said in Test Adapter melcloud v1.3.x Latest:
@darkblu Dann könntest du bitte mal die Logstufe des Adapters auf "Debug" stellen, einen Abruf der Verbrauchswerte anstoßen und das entsprechende Log hier posten, wenn du magst. Evtl. besteht da ein Problem, wenn nur ein Gerät vorhanden ist.
Danke fürs Angebot.
Ich bräuchte dann aber leider eine Kurzanleitung wie ich das Log erstellen kann, sorry
-
@darkblu Klar, kein Problem. Einfach unter "Instanzen" den melcloud-Adapter aufklappen und das Loglevel von jetzt vermutlich "Info" auf "Debug" stellen:
Danach den Abruf der Verbrauchsdaten (einmal über "melcloud.0.devices.19738509.reports.getPowerConsumptionReport" und einmal über "melcloud.0.reports.getCumulatedPowerConsumptionReport") starten und dann das Log hier posten. Am besten über "Protokolle" -> "Log herunterladen" -> "current" und dort den melcloud-Teil rauskopieren:
Die relevanten Stellen im Log beginnen bei "Processing command 'getPowerConsumptionReport' with value 'true' for device object with id 19738509...." bzw. "Processing command 'getCumulatedPowerConsumptionReport' with value 'true' for all devices...".
-
@black-thunder ,
sodele, hier sind die Logs:melcloud.0.devices.19738509.reports.getPowerConsumptionReport.txt
melcloud.0.reports.getCumulatedPowerConsumptionReport.txt
Ich hoffe du kannst damit etwas anfangen und ich bedanke mich schon mal ganz herzlich für deine Bemühungen