NEWS
Javscript mehrere Objekte auslesen und verarbeiten
-
Hallo Zusammen,
ich würde gerne mehrere Zustände auf einmal auslesen und verarbeiten.
Das Script soll mit einer gewissen Verzögerung meine 433Mhz Steckdosen schalten.
Das brauche ich, da manchmal das Signal nicht korrekt ankommt und ich es so einfach wiederholt sende.
Nun habe ich ein Array mit den aktuellen Steckdosen definiert.
Das funktioniert soweit auch.
Ich würde das ganze aber gerne dynamischen machen und nicht jede neue Steckdose immer hinzufügen müssen. (Fehlerquellen minimieren)
Also möchte ich einfach ein Array erzeugen welches alle States beinhaltet die unter dem Ordner "OwnDevices.0.433mhzPlugs." liegen.So sieht meine aktuelle Struktur aus.

Diese kann aber nach belieben angepasst werden.
Und so sieht mein aktuelles Script aus.
Gibt es außerdem eine Möglichkeit den Pfad des aktuellen Scriptes auszulesen?Danke und Gruß
T
var ThisScript = "javascript.0.scriptEnabled.Licht.433Mhz.433MhzRetrigger"; var StartTime = getState(ThisScript).lc; var Duration = 20000; //20 Sekunden var EndTime = StartTime + Duration; var PlugRootFolder = "OwnDevices.0.433mhzPlugs."; var Plugspathes = ["10011.PlugA", "10011.PlugB", "10011.PlugC"]; var delay = 0; for (var i = 0; i <= 3; i++) { Plugspathes.forEach(function (Plugpath) { var PlugId = PlugRootFolder + Plugpath; var PlugState = getState(PlugId).val; setTimeout(function () { SendCommand(PlugId, PlugState); }, delay); delay += 1000; }); }; setTimeout(function () { stopScript(); //No Error, it stops this script }, delay); //************************ Functions ********************* function SendCommand(PlugId, state) { var ssh = 'ssh pi@****************** "'; var path = '/home/pi/programs/433Utils/RPi_utils/./codesend '; if (state) { var Code = getState(PlugId + '.CodeOn').val; } else { var Code = getState(PlugId + '.CodeOff').val; }; var command = ssh + path + Code + '"'; log ("Send Command: " + command) exec(command); }; //************************ Functions ********************* -
Hallo Zusammen,
ich würde gerne mehrere Zustände auf einmal auslesen und verarbeiten.
Das Script soll mit einer gewissen Verzögerung meine 433Mhz Steckdosen schalten.
Das brauche ich, da manchmal das Signal nicht korrekt ankommt und ich es so einfach wiederholt sende.
Nun habe ich ein Array mit den aktuellen Steckdosen definiert.
Das funktioniert soweit auch.
Ich würde das ganze aber gerne dynamischen machen und nicht jede neue Steckdose immer hinzufügen müssen. (Fehlerquellen minimieren)
Also möchte ich einfach ein Array erzeugen welches alle States beinhaltet die unter dem Ordner "OwnDevices.0.433mhzPlugs." liegen.So sieht meine aktuelle Struktur aus.

Diese kann aber nach belieben angepasst werden.
Und so sieht mein aktuelles Script aus.
Gibt es außerdem eine Möglichkeit den Pfad des aktuellen Scriptes auszulesen?Danke und Gruß
T
var ThisScript = "javascript.0.scriptEnabled.Licht.433Mhz.433MhzRetrigger"; var StartTime = getState(ThisScript).lc; var Duration = 20000; //20 Sekunden var EndTime = StartTime + Duration; var PlugRootFolder = "OwnDevices.0.433mhzPlugs."; var Plugspathes = ["10011.PlugA", "10011.PlugB", "10011.PlugC"]; var delay = 0; for (var i = 0; i <= 3; i++) { Plugspathes.forEach(function (Plugpath) { var PlugId = PlugRootFolder + Plugpath; var PlugState = getState(PlugId).val; setTimeout(function () { SendCommand(PlugId, PlugState); }, delay); delay += 1000; }); }; setTimeout(function () { stopScript(); //No Error, it stops this script }, delay); //************************ Functions ********************* function SendCommand(PlugId, state) { var ssh = 'ssh pi@****************** "'; var path = '/home/pi/programs/433Utils/RPi_utils/./codesend '; if (state) { var Code = getState(PlugId + '.CodeOn').val; } else { var Code = getState(PlugId + '.CodeOff').val; }; var command = ssh + path + Code + '"'; log ("Send Command: " + command) exec(command); }; //************************ Functions *********************
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