NEWS
Befehl wird im Skript nicht ausgeführt
-
Der Trigger ist in Orndung, wenn man ohne das "id:" schreibt, wird auf change: ne geprüft meine ich.
Das Problem dürfte sein, dass der hm-rega nicht ienen String wiedrgibt sondern einen boolschen Ausdruck.
Daher rate ich mal, dass
=== truegeht. Also keine Anführungszeichen, drei Gleichzeichen
-
on('hm-rega.0.2764', function (obj) { current_state = getState("hm-rega.0.2764").val; log(current_state) if (current_state == "true") { exec('sudo /raspberry-remote/./send 11101 1 1'); } else { exec('sudo /raspberry-remote/./send 11101 1 0'); } }); ```` `dien script geht kuerzer da das geraet bereits durch die function obj weitergegeben wird:
on('hm-rega.0.2764', function (obj) { current_state = obj.val; log(current_state) });was sagt dein log wen du das probierst
-
Daher rate ich mal, dass
=== truegeht. Also keine Anführungszeichen, drei Gleichzeichen `
Danke für den Hinweis, ist möglicherweise richtig, habe ich mal geändert.
Wenn die Bedingung nicht erfüllt ist müsste er allerdings in den Else-Teil springen und trotzdem die Funktion send ausführen. Macht er leider nicht…
-
Hallo,
Um es weiter abzukürzen, kannst du die Abfrage auf true dann so einbauen:
on('hm-rega.0.2764', function (obj) { log(obj.state.val) if (obj.state.val) exec('sudo /raspberry-remote/./send 11101 1 1'); else exec('sudo /raspberry-remote/./send 11101 1 0'); });Gruß
Pix
-
-
Also die Datei liegt in /raspberry-remote/. Die Syntax mit ./send habe ich aus mehreren Tutorien so übernommen, funktioniert übrigens genau so in der Konsole nicht: Da muss der . vor den Anfang, also ./raspberry-remote/send/
Ich sehe auch keine Fehlermeldung. Kann ich Bei Skriptausführung entstehende Fehler sichtbar machen?
-
Also die Datei liegt in /raspberry-remote/. Die Syntax mit ./send habe ich aus mehreren Tutorien so übernommen, funktioniert übrigens genau so in der Konsole nicht: Da muss der . vor den Anfang, also ./raspberry-remote/send/
Ich sehe auch keine Fehlermeldung. Kann ich Bei Skriptausführung entstehende Fehler sichtbar machen? `
Ja, das geht.Du müsstest der exec-Ausführung einen callback verpassen. Hier ist ein Beispiel von ruhr70: http://forum.iobroker.net/viewtopic.php … 935#p26547
! Auszug aus dem Code:````
function abfrageConsole() {
exec(abfrage, function(err, stdout, stderr) { // <--------DAS IST DIE RELEVANTE ZEILE
if (err) {
log(err,"error");
return;
}
stdout = stdout.replace(/\n+/g, " "); // neue Zeile gegen Leerzeichen ersetzen
stdout = stdout.split(/ +/g); // array erstellen, Lerzeichen als Trennervar anzProzesse = (stdout.length-1) / 11; //log(stdout); //log("Anzahl laufender ioBroker Prozesse: " + anzProzesse); var jsonArr = createArrayJson(stdout); var mem = Math.floor(getMemAbsolut(jsonArr)/1024); var cpu = Math.floor(getCpu(jsonArr)*10)/10; var memPercent = Math.floor(getMem(jsonArr)*10)/10;! setState(idProzesse ,writeJson(jsonArr));
setState(idMemAll ,mem);
setState(idAnzProzesse ,anzProzesse);
setState(idCpuAll ,cpu);
setState(idMemPercent ,memPercent);
});
}Gruß Pix
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