NEWS
[gelöst] channelID hat keinen Wert
-
@MCU sagte:
Der Kanal-ID (channelID) hat keinen Wert mehr
Kann ich mit Version 4.6.22 nicht bestätigen:

Wie sieht die Struktur des Objektbaums aus ?
@paul53 Vielleicht hängt es auch mit meinen Einstellungen in der Instanz zusammen?

Da ja in der Version 4.6.22 noch Änderungen bzgl. der Spiegel-Datei durchgeführt wurden?
Und ich weiß nicht! wie ich nur den Javascrupt-Adapter löschen und wieder installieren kann, ohne das komplette System zu zerstören!
-
@paul53 Vielleicht hängt es auch mit meinen Einstellungen in der Instanz zusammen?

Da ja in der Version 4.6.22 noch Änderungen bzgl. der Spiegel-Datei durchgeführt wurden?
Und ich weiß nicht! wie ich nur den Javascrupt-Adapter löschen und wieder installieren kann, ohne das komplette System zu zerstören!
-
@MCU sagte:
Vielleicht hängt es auch mit meinen Einstellungen in der Instanz zusammen?
Nein, die haben darauf keinen Einfluss und sind so okay. Ist parent vom DP mit ".app_start" ein Kanal ?
@paul53
Weiterhin hatte ich solche Effekte, daß die Protokolle nur im ersten JS-Editor-Fenster angezeigt wurden. Also auch die Protokolle von den weiteren Fenstern, die im Editor geöffnet waren, wurden im ersten Editor-Fenster angezeigt.
Also scheint bei mir einiges nicht zu stimmen?Gibt es denn eine Anleitung, wie man den JAVASCRIPT-Adapter löschen und wieder neu installieren soll?
Vielen Dank.
-
Hallo zusammen,
nach einem Update vom Javascript-Adapter auf Version 4.6.22 laufen bestimmen Funktionen nicht mehr.
Insbesondere z.B.: Der Kanal-ID (channelID) hat keinen Wert mehr(auch weitere Werte fehlen: Kanalname usw.; objectID ist aber vorhanden.
Dies tritt aber nur bei neueren BLOCKLY-Scripten auf. Bei alten BLOCKLY-Scripten läuft es es nachwievor. Auch ein Downgrade des Adapters auf die Version 4.6.14 hat keinen Erfolg gebracht.Als Beispiel habe ich zwei Scripte zur Auswahl:
Wert wird hier angezeigt:

Hier fehlt der WERT für die KanalID:

Zum eingesetzten SYSTEM: RaspPi4B 4GB, NODEJS: v12.18.3, NPM: 6.14.6, Festplatte: 1,8TB , Aktive Instanzen: 32
Ich jemand kann mir helfen es zu verstehen, bzw. den Fehler zu beheben.
Neuinstallation vom javascript-Adapter habe ich noch nicht durchgeführt, da ich genau weiß wie dies durchzuführen ist.
Vielen Dank
@MCU Bekomme auch seit einiger Zeit Folgendes bei Installation eines Adapters:
In file included from ../authenticate_pam.cc:23:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void ()(uv_work_t)’ {aka ‘void ()(uv_work_s)’} to ‘uv_after_work_cb’ {aka ‘void ()(uv_work_s, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^
../authenticate_pam.cc: In function ‘void after_doing_auth(uv_work_t*, int)’:../authenticate_pam.cc:107:87: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(m->callback), 1, args); ^In file included from ../authenticate_pam.cc:23:../../nan/nan.h:1026:46: note: declared here NAN_DEPRECATED inline v8::Localv8::Value MakeCallback( ^~~~~~~~~~~~../authenticate_pam.cc:107:87: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(m->callback), 1, args); ^In file included from ../authenticate_pam.cc:23:../../nan/nan.h:1026:46: note: declared here NAN_DEPRECATED inline v8::Localv8::Value MakeCallback( ^~~~~~~~~~~~
../authenticate_pam.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE Authenticate(Nan::NAN_METHOD_ARGS_TYPE)’:../authenticate_pam.cc:147:83: warning: ‘v8::Localv8::Value v8::Object::Get(v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations] Local<Value> res = options->Get(Nan::New<String>("serviceName").ToLocalChecked()); ^In file included from /home/iobroker/.cache/node-gyp/12.18.3/include/node/v8-internal.h:14, from /home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:27, from /home/iobroker/.cache/node-gyp/12.18.3/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:3553:51: note: declared here V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key)); ^/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’ declarator attribute((deprecated(message))) ^~../authenticate_pam.cc:150:69: error: no matching function for call to ‘v8::String::WriteUtf8(char [128], unsigned int)’ serviceName->WriteUtf8(m->serviceName, sizeof(m->serviceName) - 1); ^In file included from /home/iobroker/.cache/node-gyp/12.18.3/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:2878:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, ^/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:2878:7: note: no known conversion for argument 1 from ‘char [128]’ to ‘v8::Isolate*’../authenticate_pam.cc:152:69: warning: ‘v8::Localv8::Value v8::Object::Get(v8::Localv8::Value)’ is deprecated: Use maybe version [-Wdeprecated-declarations] res = options->Get(Nan::New<String>("remoteHost").ToLocalChecked()); ^In file included from /home/iobroker/.cache/node-gyp/12.18.3/include/node/v8-internal.h:14, from /home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:27, from /home/iobroker/.cache/node-gyp/12.18.3/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:3553:51: note: declared here V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key)); ^/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’ declarator attribute((deprecated(message))) ^~~~~~~~~~
../authenticate_pam.cc:155:66: error: no matching function for call to ‘v8::String::WriteUtf8(char [128], unsigned int)’ remoteHost->WriteUtf8(m->remoteHost, sizeof(m->remoteHost) - 1); ^In file included from /home/iobroker/.cache/node-gyp/12.18.3/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:2878:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, ^/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:2878:7: note: no known conversion for argument 1 from ‘char [128]’ to ‘v8::Isolate*’../authenticate_pam.cc:161:58: error: no matching function for call to ‘v8::String::WriteUtf8(char [128], unsigned int)’ password->WriteUtf8(m->password, sizeof(m->password) - 1); ^In file included from /home/iobroker/.cache/node-gyp/12.18.3/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:2878:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, ^/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:2878:7: note: no known conversion for argument 1 from ‘char [128]’ to ‘v8::Isolate*’../authenticate_pam.cc:160:58: error: no matching function for call to ‘v8::String::WriteUtf8(char [128], unsigned int)’ username->WriteUtf8(m->username, sizeof(m->username) - 1); ^In file included from /home/iobroker/.cache/node-gyp/12.18.3/include/node/node.h:67, from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:2878:7: note: candidate: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, ^~ rand_r../authenticate_pam.cc:170:24: error: expected primary-expression before ‘>’ token void init(Handle<Object> exports) { ^../authenticate_pam.cc:170:26: error: ‘exports’ was not declared in this scope void init(Handle<Object> exports) { ^~~~~~~~../authenticate_pam.cc:170:11: error: ‘Handle’ was not declared in this scope/home/iobroker/.cache/node-gyp/12.18.3/include/node/v8.h:2878:7: note: no known conversion for argument 1 from ‘char [128]’ to ‘v8::Isolate*’../authenticate_pam.cc: At global scope:../authenticate_pam.cc:170:11: error: variable or field ‘init’ declared void void init(Handle<Object> exports) { ^
../authenticate_pam.cc:170:11: note: suggested alternative: ‘rand_r’ void init(Handle<Object> exports) { ^
In file included from ../../nan/nan.h:56, from ../authenticate_pam.cc:23:../authenticate_pam.cc:175:31: error: ‘init’ was not declared in this scope NODE_MODULE(authenticate_pam, init); ^~/home/iobroker/.cache/node-gyp/12.18.3/include/node/node.h:608:36: note: in definition of macro ‘NODE_MODULE_X’ (node::addon_register_func) (regfunc), \ ^~~~~~~../authenticate_pam.cc:175:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(authenticate_pam, init); ^
../authenticate_pam.cc:175:31: note: suggested alternative: ‘int’ NODE_MODULE(authenticate_pam, init); ^~/home/iobroker/.cache/node-gyp/12.18.3/include/node/node.h:608:36: note: in definition of macro ‘NODE_MODULE_X’ (node::addon_register_func) (regfunc), \ ^~~~~~~../authenticate_pam.cc:175:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(authenticate_pam, init); ^
make: *** [authenticate_pam.target.mk:109: Release/obj.target/authenticate_pam/authenticate_pam.o] Fehler 1
gyp
ERR! build error
gyp ERR! stack Error:makefailed with exit code: 2gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)gyp ERR!
stack at ChildProcess.emit (events.js:315:20)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)gyp ERR! System Linux 5.4.51-v7l+gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"gyp ERR! cwd /opt/iobroker/node_modules/authenticate-pamgyp ERR! node -v v12.18.3gyp ERR! node-gyp -v v5.1.0gyp ERR! not ok
npm WARN babel-eslint@10.1.0 requires a peer of eslint@>= 4.12.1 but none is installed. You must install peer dependencies yourself.
npm WARN tsutils@3.17.1 requires a peer of typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: osx-temperature-sensor@1.0.7 (node_modules/osx-temperature-sensor):npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for osx-temperature-sensor@1.0.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/fsevents):npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/zigbee-herdsman-converters/node_modules/fsevents):npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/zigbee-herdsman/node_modules/jest-haste-map/node_modules/fsevents):npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.12 (node_modules/zigbee-herdsman/node_modules/fsevents):npm WARN
notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.12: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: authenticate-pam@1.0.2 (node_modules/authenticate-pam):npm WARN optional SKIPPING OPTIONAL DEPENDENCY: authenticate-pam@1.0.2 install:node-gyp rebuildnpm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1Weiss jemand, wie man das beheben kann, damit keine Meldungen mehr kommen?
Vielen Dank.
-
Hallo zusammen,
nach einem Update vom Javascript-Adapter auf Version 4.6.22 laufen bestimmen Funktionen nicht mehr.
Insbesondere z.B.: Der Kanal-ID (channelID) hat keinen Wert mehr(auch weitere Werte fehlen: Kanalname usw.; objectID ist aber vorhanden.
Dies tritt aber nur bei neueren BLOCKLY-Scripten auf. Bei alten BLOCKLY-Scripten läuft es es nachwievor. Auch ein Downgrade des Adapters auf die Version 4.6.14 hat keinen Erfolg gebracht.Als Beispiel habe ich zwei Scripte zur Auswahl:
Wert wird hier angezeigt:

Hier fehlt der WERT für die KanalID:

Zum eingesetzten SYSTEM: RaspPi4B 4GB, NODEJS: v12.18.3, NPM: 6.14.6, Festplatte: 1,8TB , Aktive Instanzen: 32
Ich jemand kann mir helfen es zu verstehen, bzw. den Fehler zu beheben.
Neuinstallation vom javascript-Adapter habe ich noch nicht durchgeführt, da ich genau weiß wie dies durchzuführen ist.
Vielen Dank
-
@MCU sagte:
Vielleicht hängt es auch mit meinen Einstellungen in der Instanz zusammen?
Nein, die haben darauf keinen Einfluss und sind so okay. Ist parent vom DP mit ".app_start" ein Kanal ?
@paul53 Sorry. Hatte das mit dem DP ganz überlesen.
Also die Struktur sieht so aus:
javascript.0.TASKER.geräte-ID.Apps.app_start
Bis zur Ebene: javascript.0.geräte-ID. funktioniert es mit der Kanal-ID.
Geht man eine Ebene tiefer und wählt einen State von dort, zeigt er die Kanal-ID nicht mehr an.
Kann evtl auch daran liegen, daß die Kanal-ID nur bis zur 2. Ebene geht?Vielen Dank.
-
@paul53 Sorry. Hatte das mit dem DP ganz überlesen.
Also die Struktur sieht so aus:
javascript.0.TASKER.geräte-ID.Apps.app_start
Bis zur Ebene: javascript.0.geräte-ID. funktioniert es mit der Kanal-ID.
Geht man eine Ebene tiefer und wählt einen State von dort, zeigt er die Kanal-ID nicht mehr an.
Kann evtl auch daran liegen, daß die Kanal-ID nur bis zur 2. Ebene geht?Vielen Dank.
-
@MCU Änderung: Bis zur Ebene: javascript.0.TASKER.geräte-ID. funktioniert es mit der Kanal-ID.
-
@paul53 Sorry. Hatte das mit dem DP ganz überlesen.
Also die Struktur sieht so aus:
javascript.0.TASKER.geräte-ID.Apps.app_start
Bis zur Ebene: javascript.0.geräte-ID. funktioniert es mit der Kanal-ID.
Geht man eine Ebene tiefer und wählt einen State von dort, zeigt er die Kanal-ID nicht mehr an.
Kann evtl auch daran liegen, daß die Kanal-ID nur bis zur 2. Ebene geht?Vielen Dank.
@MCU sagte:
daran liegen, daß die Kanal-ID nur bis zur 2. Ebene geht?
Ja, die Kanal-ID liefert immer das parent-Objekt, sofern vorhanden. "Apps" ist kein Objekt, sondern nur ein Ordner. Die Kanal-ID solltest Du erhalten, wenn Du stattdessen die Geräte-ID abfragst.
-
@MCU sagte:
daran liegen, daß die Kanal-ID nur bis zur 2. Ebene geht?
Ja, die Kanal-ID liefert immer das parent-Objekt, sofern vorhanden. "Apps" ist kein Objekt, sondern nur ein Ordner. Die Kanal-ID solltest Du erhalten, wenn Du stattdessen die Geräte-ID abfragst.
-
-
@MCU Ok, dann muß die Datenpunkte verändern:
/* Apps */
createState('TASKER.' + TASKER_ID + '.Apps',false, {
write:true,
read: false,
desc: "Apps",
type: "channel",
name: "Apps",
role: "channel",
def: false
});Wäre das so richtig?
Vielen Dank.@MCU sagte:
Wäre das so richtig?
Nein, mit createState kann man keinen "channel" erzeugen.
let obj = {}; obj.type = 'channel'; obj.common = {}; obj.common.name = 'Alle Applikation-Daten'; obj.native ={}; setObject('javascript.0.TASKER.' + TASKER_ID + '.Apps', obj); -
@MCU Ok, dann muß die Datenpunkte verändern:
/* Apps */
createState('TASKER.' + TASKER_ID + '.Apps',false, {
write:true,
read: false,
desc: "Apps",
type: "channel",
name: "Apps",
role: "channel",
def: false
});Wäre das so richtig?
Vielen Dank.@MCU
/* Apps-Struktur */
createState('TASKER.' + TASKER_ID + '.Apps',false, {
write:true,
read: false,
desc: "Apps",
type: "channel",
name: "Alle Applikation-Daten",
role: "channel",
def: false
});Den "Ordner" auch als Channel definiert und schon klappt es. Hatte also nichts mit dem Update auf 4.6.22 zu tun.
Vielen Dank @paul53 -
@MCU sagte:
Wäre das so richtig?
Nein, mit createState kann man keinen "channel" erzeugen.
let obj = {}; obj.type = 'channel'; obj.common = {}; obj.common.name = 'Alle Applikation-Daten'; obj.native ={}; setObject('javascript.0.TASKER.' + TASKER_ID + '.Apps', obj); -
@MCU sagte:
Hat aber geklappt!
Ja, Du hast zwar ein Objekt erzeugt, allerdings einen Datenpunkt mit dem unzulässigen Typ "channel".
-
@MCU Genau so wie ich geschrieben habe: Datenpunkt vom unzulässigen Typ "channel". Du kannst das falsche Objekt aber - wie oben beschrieben - korrigieren: setObject(id, obj) überschreibt das bestehende Objekt.
-
@MCU sagte:
Typ geändert. Klappt wunderbar.
Dann solltest Du gleich noch das parent-Objekt vom channel korrigieren:
let obj = {}; obj.type = 'device'; obj.common = {}; obj.common.name = 'TAB_2'; obj.native = {}; setObject('javascript.0.TASKER.' + TASKER_ID, obj);
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden



