NEWS
[erledigt] JS zum anlegen eines DP unter 0_userdata
-
besagtes script hatte früher funktioniert. allerdings seit langem nicht mehr benutzt.
function listeWerte() { // Liste let werte = getObject("enum.functions.power_consumption").common.members; // Startwert 0 let wert = 0; // Schleife, um die Werte abzufragen for (var i = 0; i < werte.length; i++) { wert += getState(werte[i]).val; } setState("0_userdata.0.Heizen.Heizen", wert); } // Funktionsaufruf fuer das Abonnieren der Datenpunkte $('state(functions=power_consumption)').on(function (obj) { listeWerte(); });hab jetzt in enum was geändert. 3 werte rausgenommen.

wenn ich das script starte, wird nichts angelegt, und eine fehlermeldung ausgegeben.19:08:55.050 info javascript.0 (545) Start javascript script.js.common.Heizen.Heizen 19:08:55.389 info javascript.0 (545) script.js.common.Heizen.Heizen: registered 7 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 19:08:57.933 warn javascript.0 (545) at listeWerte (script.js.common.Heizen.Heizen:13:5) 19:08:57.933 warn javascript.0 (545) at Object.<anonymous> (script.js.common.Heizen.Heizen:17:5) 19:09:00.695 info javascript.0 (545) Stop script script.js.common.Heizen.Heizenden alten DP habe ich vorher gelöscht.

ich nehme an, daß da im script ein fehler durch eventuelle änderungen bei JS ist.
kann mich da wer hilfreich sein? -
besagtes script hatte früher funktioniert. allerdings seit langem nicht mehr benutzt.
function listeWerte() { // Liste let werte = getObject("enum.functions.power_consumption").common.members; // Startwert 0 let wert = 0; // Schleife, um die Werte abzufragen for (var i = 0; i < werte.length; i++) { wert += getState(werte[i]).val; } setState("0_userdata.0.Heizen.Heizen", wert); } // Funktionsaufruf fuer das Abonnieren der Datenpunkte $('state(functions=power_consumption)').on(function (obj) { listeWerte(); });hab jetzt in enum was geändert. 3 werte rausgenommen.

wenn ich das script starte, wird nichts angelegt, und eine fehlermeldung ausgegeben.19:08:55.050 info javascript.0 (545) Start javascript script.js.common.Heizen.Heizen 19:08:55.389 info javascript.0 (545) script.js.common.Heizen.Heizen: registered 7 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 19:08:57.933 warn javascript.0 (545) at listeWerte (script.js.common.Heizen.Heizen:13:5) 19:08:57.933 warn javascript.0 (545) at Object.<anonymous> (script.js.common.Heizen.Heizen:17:5) 19:09:00.695 info javascript.0 (545) Stop script script.js.common.Heizen.Heizenden alten DP habe ich vorher gelöscht.

ich nehme an, daß da im script ein fehler durch eventuelle änderungen bei JS ist.
kann mich da wer hilfreich sein? -
@da_woody sagte: wird nichts angelegt, und eine fehlermeldung ausgegeben.
Das Skript erzeugt keinen Datenpunkt, sondern schreibt in den Datenpunkt "0_userdata.0.Heizen.Heizen", der bereits existieren muss.
-
@da_woody sagte: wird nichts angelegt, und eine fehlermeldung ausgegeben.
Das Skript erzeugt keinen Datenpunkt, sondern schreibt in den Datenpunkt "0_userdata.0.Heizen.Heizen", der bereits existieren muss.
-
@paul53 kommando retour!
bißchen logisches denken klappt doch noch manchmal...
ist in iQontrol wieder da...


Naja jeztt hab ich schon gemacht :)
async function listeWerte() { // Liste let werte = getObject("enum.functions.power_consumption").common.members; // Startwert 0 let wert = 0; // Schleife, um die Werte abzufragen for (var i = 0; i < werte.length; i++) { wert += getState(werte[i]).val; } if (existsState("0_userdata.0.Heizen.Heizen")) setState("0_userdata.0.Heizen.Heizen", wert); else await createStateAsync("0_userdata.0.Heizen.Heizen", wert, false, { type: "number", role: "value", name: "user state", // da rein schreiben wie der State heißen soll in der name spalte unit: "W", read: true, write: true } ) } // Funktionsaufruf fuer das Abonnieren der Datenpunkte $('state(functions=power_consumption)').on(function (obj) { listeWerte(); }); -
Naja jeztt hab ich schon gemacht :)
async function listeWerte() { // Liste let werte = getObject("enum.functions.power_consumption").common.members; // Startwert 0 let wert = 0; // Schleife, um die Werte abzufragen for (var i = 0; i < werte.length; i++) { wert += getState(werte[i]).val; } if (existsState("0_userdata.0.Heizen.Heizen")) setState("0_userdata.0.Heizen.Heizen", wert); else await createStateAsync("0_userdata.0.Heizen.Heizen", wert, false, { type: "number", role: "value", name: "user state", // da rein schreiben wie der State heißen soll in der name spalte unit: "W", read: true, write: true } ) } // Funktionsaufruf fuer das Abonnieren der Datenpunkte $('state(functions=power_consumption)').on(function (obj) { listeWerte(); }); -
Naja jeztt hab ich schon gemacht :)
async function listeWerte() { // Liste let werte = getObject("enum.functions.power_consumption").common.members; // Startwert 0 let wert = 0; // Schleife, um die Werte abzufragen for (var i = 0; i < werte.length; i++) { wert += getState(werte[i]).val; } if (existsState("0_userdata.0.Heizen.Heizen")) setState("0_userdata.0.Heizen.Heizen", wert); else await createStateAsync("0_userdata.0.Heizen.Heizen", wert, false, { type: "number", role: "value", name: "user state", // da rein schreiben wie der State heißen soll in der name spalte unit: "W", read: true, write: true } ) } // Funktionsaufruf fuer das Abonnieren der Datenpunkte $('state(functions=power_consumption)').on(function (obj) { listeWerte(); });@ticaki
Ich finde es gut, wie ihr immer mit diesem await, async zeug rum handiert.Ich tue mich da immer noch sehr schwer damit.
Danke für das Beispiel.
-
@ticaki
Ich finde es gut, wie ihr immer mit diesem await, async zeug rum handiert.Ich tue mich da immer noch sehr schwer damit.
Danke für das Beispiel.
-
@ticaki
Ich finde es gut, wie ihr immer mit diesem await, async zeug rum handiert.Ich tue mich da immer noch sehr schwer damit.
Danke für das Beispiel.
@bahnuhr sagte in JS zum anlegen eines DP unter 0_userdata:
@ticaki
Ich finde es gut, wie ihr immer mit diesem await, async zeug rum handiert.Ich tue mich da immer noch sehr schwer damit.
Danke für das Beispiel.
Dann mache ich es aber auch richtig :). Wenn du ein await benutz ist ein
try {} catch(){}zwingend... vergesse ich in Forenbeispielen laufend.Wenn der fehlt beendet der JS-Controller/nodejs im Fehlerfall den ausführenden Prozess, was heißt der Javascript-Adapter wird abgeschaltet.
async function listeWerte() { // Liste let werte = getObject("enum.functions.power_consumption").common.members; // Startwert 0 let wert = 0; // Schleife, um die Werte abzufragen for (var i = 0; i < werte.length; i++) { wert += getState(werte[i]).val; } try { if (existsState("0_userdata.0.Heizen.Heizen")) setState("0_userdata.0.Heizen.Heizen", wert); else await createStateAsync("0_userdata.0.Heizen.Heizen", wert, false, { type: "number", role: "value", name: "user state", unit: "", read: true, write: true } ) } catch (e) { log(e.message); } } // Funktionsaufruf fuer das Abonnieren der Datenpunkte $('state(functions=power_consumption)').on(function (obj) { listeWerte(); });
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

