Zur besten Antwort gewählt
Mrz 28, 2024 - 08:23
getDeviceStatus(
"AIO GATEWAY (CA)",
"Test-count",
{"value":"state","extMeta":"-21474836.48-21474836.47","scale":"0.01"},
function(err, status) {
if(err) {
console.error(err.message);
return; // Verhindere weitere Ausführung im Fehlerfall
}
console.log(status);
var status_1 = status + 1;
console.log("Erhöht um 1:", status);
executeDeviceCommand(
"AIO GATEWAY (CA)",
"Test-count",
{"value":"setValue","ext":status_1,"scale":"0.01"},
function(err) {
if(err) {
console.error(err.message);
}
}
);
}
);
Von
Auf den ersten Blick würde ich sagen, das sollte so gehen. Der Unterschied ist, dass Du in Deinem vorherigen script die Test-count Variable ausgeben wolltest, das laden der Variable aber nicht in der callback hattest. Somit läuft das script einfach weiter und wartet nicht auf die Rückmeldung, dass die Variable auch beschrieben wurde. Jetzt gibst Du aber die "status" Variable aus welche innerhalb des scirpt beschrieben wurde. Funktioniert?
Von
Hier hat sich ein Fehler eingeschlichen in der Log Ausgabe:
console.log("Erhöht um 1:", status);
console.log("Erhöht um 1:", status_1);
Von
Vielen Danke Eric!
Dein Skript hat funktioniert als ich meine Variable auf eine Ganzzahl (INT) umgestellt habe 😉, mit Gleitkommazahl (FLOAT) geht es nicht. Das war auch das Problem in meinem Skript.
Wahrscheinlich liegt es daran: „Javascript Pluszeichen: Ausgerechnet das Pluszeichen ist belastet: Mit dem Pluszeichen werden Zahlen addiert, aber das Plus verbindet auch Strings aneinander (die Konkatenation). Diese Zweifachbelegung wird als Overloading bezeichnet.“ Quelle: https://www.mediaevent.de/javascript/berechnung.html
Darum ging es auch mit allen anderen Mathe-Operatoren Subtraktion, Multiplikation und Division aber nicht mit der Addition 😉
Danke und Gruß Markus
Neuen Kommentar hinzufügen