@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();
});