NEWS
[gelöst] channelID hat keinen Wert
-
@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.
-
-
@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:
Funktioniert auch nicht!
Ja, konnte ich nachvollziehen. Der zusätzliche Punkt in der Datenpunkt-ID stört offenbar.
-
@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
/* 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 -
@paul53 Hat aber geklappt!
-
@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.
-
@paul53 Hab den Typ geändert. Klappt wunderbar. Vielen Dank für die Hilfe.
-
@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);
-
@paul53 Super. Mache ich. Vielen Dank.