NEWS
Tage bestimmen an dem man Frei hat
-
Hallo,
bin gerade dabei mich mit dem ioBroker anzufreunden, komme soweit auch mit den Adaptern klar.
Leider habe ich leichte Schwierigkeiten mit den schreiben von Skripten. Habe bis jetzt zwei kleinere geschrieben, die auch Wunderbar klappen.
Jetzt möchte ich eins erstellen, womit ich eine Variable in der HM setzte. Die alle 4 Wochen nur "WAHR" ist (z.B. jeden 4ten Montag und jeden 4ten Mittwoch).
Ich danke schon mal im Voraus.
-
Vorschlag:
const idSV = 'hm-rega.0.7868'; function woche4(compare) { var weeks = new Date().getTime() / (7 * 24 * 3600 * 1000); if(Math.floor(weeks % 4) == compare) setState(idSV, true); else setSate(idSV, false); } schedule('0 0 * * 1', function() { // montags woche4(3); // Vergleichswert (0, 1, 2, 3) anpassen ! }); schedule('0 0 * * 3', function() { // mittwochs woche4(2); // Vergleichswert anpassen ! });
EDIT: Schedule und Vertipper korrigiert.
-
Danke für deine Antwort, würde es gerne Testen, aber leider bekomme ich eine Fehlermeldung in den Zeilen 11, 13 ,15.
Ich habe auch die Variablen ID eingetragen, denke das dies so richtig ist.
Bin mich leider erst am einarbeiten in Sachen Scripte.
const idSV = 'hm-rega.0.7868'; function woche4(compare) { var weeks = new Date().getTime() / (7 * 24 * 3600 * 1000); if(Math.floor(weeks % 4) == compare) setState(idSV, true); else setSate(idSV, false); } schedule('0 0 0 * 1', function() { // montags woche4(3); // Vergleichswert (0, 1, 2, 3) anpassen ! )); schedule('0 0 0 * 3', function() { // mittwochs woche4(2); // Vergleichswert anpassen ! ));
-
const idSV = 'hm-rega.0.7868'; function woche4(compare) { var weeks = new Date().getTime() / (7 * 24 * 3600 * 1000); if(Math.floor(weeks % 4) == compare) setState(idSV, true); else setSate(idSV, false); } schedule('0 0 0 * 1', function() { // montags woche4(3); // Vergleichswert (0, 1, 2, 3) anpassen ! }); schedule('0 0 0 * 3', function() { // mittwochs woche4(2); // Vergleichswert anpassen ! });
waren nur zwei Vertipper
-
Leider klappt das nicht so ganz.
Es wird mir immer wieder die Variable auf "true" gesetzt. Wofür ist dieser````
woche4(3) -
Wofür ist dieser
woche4(3) ```` `
An die Funktion wird der Vergleichswert (0 bis 3) für die Woche übergeben, in der die SV am entsprechenden Wochentag true wird (jede 4. Woche).
-
Sorry, das Schedule ist falsch. Richtig:
schedule('0 0 * * 1', function() { // montags woche4(3); // Vergleichswert (0, 1, 2, 3) anpassen ! }); schedule('0 0 * * 3', function() { // mittwochs woche4(2); // Vergleichswert anpassen ! });
Für diese Woche ist der Vergleichswert 0 passend. Alle anderen Werte müssen false liefern.