NEWS
(GELÖST) ID Selektoren bei True in Datenpunkt schreiben
-
@paul53 said in ID Selektoren bei True in Datenpunkt schreiben:
Alle Datenpunkte mit dem Wert true, die "enum.functions.pepper" zugeordnet sind?
Alle, auch die auf FALSE sind.
-
@djmarc75 sagte: Alle, auch die auf FALSE sind.
Das verhindert
falls Wert vom Objekt ID idOder ist "false" ein String?
Poste mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
var Liste, Futterliste, i; Liste = Array.prototype.slice.apply($("*(functions=pepper)")); on({id: Liste, change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Futterliste = []; for (var i_index in Liste) { i = Liste[i_index]; if (getState(i).val == true) { Futterliste.push((obj.common ? obj.common.name : "")); } } setState("0_userdata.0.Pepper.Aufgaben.Frischfutter.Futterliste"/*Futterliste*/, (Futterliste.join(',')), true); }); -
@djmarc75 sagte: Alle, auch die auf FALSE sind.
Das verhindert
falls Wert vom Objekt ID idOder ist "false" ein String?
Poste mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
Es verhält sich im Moment so, dass, immer wenn ich einen Datenpunkt auf ändere, die Anzahl der auf True gesetzten stimmt, aber es wird, als Beispiel dann dreimal "Tomate" angezeigt, obwohl Gurke, Tomate und Karotte ausgewählt sind. Quasi immer der zuletzt geänderte wird dann angezeigt.
-
var Liste, Futterliste, i; Liste = Array.prototype.slice.apply($("*(functions=pepper)")); on({id: Liste, change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Futterliste = []; for (var i_index in Liste) { i = Liste[i_index]; if (getState(i).val == true) { Futterliste.push((obj.common ? obj.common.name : "")); } } setState("0_userdata.0.Pepper.Aufgaben.Frischfutter.Futterliste"/*Futterliste*/, (Futterliste.join(',')), true); });@djmarc75 sagte: dreimal "Tomate" angezeigt, obwohl Gurke, Tomate und Karotte ausgewählt sind.
Sorry, mein Fehler: Name enthält den Namen des Trigger-Datenpunktes, der sich in der Schleife nicht ändert. Du benötigst anstelle von Name eine JS-Funktion getName(id) mit Ergebnis mit folgendem Inhalt:
return getObject(id).common.name;
-
@djmarc75 sagte: dreimal "Tomate" angezeigt, obwohl Gurke, Tomate und Karotte ausgewählt sind.
Sorry, mein Fehler: Name enthält den Namen des Trigger-Datenpunktes, der sich in der Schleife nicht ändert. Du benötigst anstelle von Name eine JS-Funktion getName(id) mit Ergebnis mit folgendem Inhalt:
return getObject(id).common.name;
-
@paul53
Muss nochmal was nachfragen...Gibt es auch die Möglichkeit den ganzen Objektpfad auszulesen und diesen dann in einen Datenpunkt zu schreiben ?
-
@djmarc75 sagte: Gibt es auch die Möglichkeit den ganzen Objektpfad auszulesen und diesen dann in einen Datenpunkt zu schreiben ?
Mit Objektpfad meinst Du die ID? Die liegt ja bereits als Variable
idvor.@paul53 said in (GELÖST) ID Selektoren bei True in Datenpunkt schreiben:
Mit Objektpfad meinst Du die ID? Die liegt ja bereits als Variable id vor.
0_userdata.0.Spotify.Variablen_zur_Steuerung.Headsetz.B. diesen kompletten Pfad wenn Wert true in einen Datenpunkt schreiben.
-
@paul53 said in (GELÖST) ID Selektoren bei True in Datenpunkt schreiben:
Mit Objektpfad meinst Du die ID? Die liegt ja bereits als Variable id vor.
0_userdata.0.Spotify.Variablen_zur_Steuerung.Headsetz.B. diesen kompletten Pfad wenn Wert true in einen Datenpunkt schreiben.
-
@djmarc75 sagte: z.B. diesen kompletten Pfad wenn Wert true in einen Datenpunkt schreiben.
Das ist der Inhalt der Variablen id. Also einfach die Funktion getName(id) weglassen und id in die Liste schreiben.
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