NEWS
[gelöst] Manchmal geht es, manchmal nicht???
-
Ich habe noch weitere Ereignisse/ Programmteile, die ich über den gleichen Trigger (Bewegungsmelder) im gleichen Zeitraum hintereinander auslösen möchte.
Ist es klug, diese ganzen Teile in ein Programm zu packen (unübersichtlich!) ? Oder ist es sinnvoller, neue Programme mit dem gleichen Trigger zu schreiben (funktioniert das) ?
-
@skorpil sagte:
Ist es klug, diese ganzen Teile in ein Programm zu packen
Vom Ressourcen-Verbrauch her gesehen: Ja.
@skorpil sagte in [gelöst] Manchmal geht es, manchmal nicht???:
neue Programme mit dem gleichen Trigger zu schreiben (funktioniert das) ?
Ja, das funktioniert, wenn man die Übersicht über mehrere Skripte behält.
-
@paul53 Empfehlung? Wie würdest Du es machen?
-
-
ich schon wieder... Folgende Frage:
ich habe einen Datenpunkt, Typ String aus openweathermap
var idWindGeschw = 'openweathermap.0.forecast.current.windSpeed'/*Forecast for wind speed*/; var idWindGeschwWert = idWindGeschw.state;
Ich möchte in der Variablen"idWindGeschwWert " den INHALT des Datenpunktes, also den Wert, zuweisen. Und daran scheitere ich immer wieder. Weder mit ".state" noch mit ".val" noch mit ".state.val" bekomme ich das gewünschte Ergebnis. Ich produziere Fehlermeldungen.
Was mache ich falsch? Das Problem habe ich quasi immer wieder. Ich begreife einfach nicht, wie ich der Variablen "idWindGeschwWert "den Inhalt/ Wert zuweise. Bitte um Erklärung.
Dankeschön.
-
@skorpil sagte:
wie ich der Variablen "idWindGeschwWert "den Inhalt/ Wert zuweise.
const idWindGeschw = 'openweathermap.0.forecast.current.windSpeed'/*Forecast for wind speed*/; var WindGeschwWert = getState(idWindGeschw).val; // Initialisierung bei Script start on(idWindGeschw, function(dp) { // triggert bei Wertänderung WindGeschwWert = dp.state.val; // Auswertung der Variablen });
-
Danke. getState. Klar Ich hätte es wissen müssen.
-
...und nochmal ich...
In dem schon mehrfach diskutierten Skript habe ich mir timeouts eingebaut. Was ich erreichen will:
die drei Teile des Skripts sollen in einer bestimmten zeitlichen Reihenfolge ausgeführt werden:
on(idBM, function(dp) { if(dp.state.val && compareTime('6:00', '10:00', 'between') && !aufstehen) { aufstehen = true; setTimeout(function() { // ************************************************ // nach 12 Sekunden starten // ************************************************ Script Teil 1 }, 12000); // Ende timeout/ Verzögerung setTimeout(function() { // ************************************************ // nach 45 Sekunden starten // ************************************************ Script Teil 2 }, 45000); // Ende timeout für Start setTimeout(function() { // ************************************************ // Befehl zum stop nach 45 Minuten // ************************************************ Script Teil 3 }, 2700000); // Ende timeout für Stop } // Ende If });
Der erste Teil nach 12 Sekunden, der zweite Teil des Skripts nach 45 Sekunden, der dritte Teil nach 45 Minuten.
Ich kann das ja wg. der On Anweisung immer nur einmal morgens testen. Und heute morgen mindestens klappte Teil 1 des Skripts nicht.
Ist das so richtig?
Oder sollte ich das besser in drei verschiedenen Skripten abbilden? -
@skorpil
Das Rücksetzen der Variable aufstehen ist vorhanden ?schedule('0 3 * * *', function() { aufstehen = false; });
-
@paul53 ja
-
Nochmal zurück zu meiner Frage: ist das Skript von Grundsatz her so richtig?
-
@skorpil sagte:
ist das Skript von Grundsatz her so richtig?
Ja, zusammen mit dem Rücksetzen von aufstehen.
-