NEWS
Roborock 1x am Tag starten
-
Hallo Jan, ja das kommt dem ganzen schon nahe.
Dann werde ich es auch so über eine Variable lösen.
Ich dachte ich könnte mir die zusätzliche Logik sparen.
Wie man die Millisekunden in Zeit umwandelt, weiß ich nämlich nicht
-
Wie man die Millisekunden in Zeit umwandelt, weiß ich nämlich nicht `
Wie wäre es mit diesem Block? https://github.com/ioBroker/ioBroker.ja … -to-string
In den Ausschnitt fügst du einfach "Letzte Änderung von ... " ein. Dann das Ergebnis davon mit der formatierten aktuellen Zeit (wie du es bereits hast) vergleichen.
P.S. Millisekunden sind Zeit sind Zahlen, du darfst nur nicht Zahlen mit Zeichenketten in einem ganz anderen Format vergleichen
-
Hallo Jan, ja das kommt dem ganzen schon nahe.
Dann werde ich es auch so über eine Variable lösen.
Ich dachte ich könnte mir die zusätzliche Logik sparen.
Wie man die Millisekunden in Zeit umwandelt, weiß ich nämlich nicht `
Warum willst denn überhaupt was mit der Zeit in Deinem Script anstellen? Die Aufgaben Stellung war doch das Ding einmal am Tag los zuschicken, wenn keiner da ist und das kannst doch über den Zeitplan wie in meinem ersten Bild anpassen.
-
Die Aufgaben Stellung war doch das Ding einmal am Tag los zuschicken, wenn keiner da ist […] `
und das Teil noch nicht manuell gestartet wurde!
@maxpd:und dies nur, wenn er noch nicht gelaufen ist. `
Und dafür muss man wissen, ob er am jeweiligen Tag schon gelaufen ist. Deine Lösung ist vermutlich flexibler, über die Zeit ist es aber ein "Einzeiler". -
Ja dass das nix großartiges ist, ist klar. Bei mir frage ich einfach die Action 6 ab, dann weiß ich ob der lief
-
Also mit der Variante funktionierts immer noch nicht.
-
Also die Variante mit Datum der History auslesen bekomme ich nicht hin.
Nun habe ich es versucht mit der Variable, aber auch das funktioniert nicht. Wie kann ich die Variable auslesen, bzw. initial befüllen?
Bis nach der Falls Regel mit der Uhrzeit klappt alles.
-
@Jan1
Gutes, einfaches Skript.
Leider fehlt der der letzte Block (falls manuell gestartet wurde), hier ist ein falsches Bild zugeordnet (BlitzWolf Steckdose). Kannst du das richtige nochmal posten?Danke.
Micha -
@matschkopf
Ist ja lustig, da war mal das richtige drin. Habs geändert und auch gleich noch ein Fehler entfernt. -
@Jan1
Super, vielen Dank.Ich war mir vorher nicht ganz sicher, aber jetzt mit dem Screenshot sehe ich, dass du tatsächlich die Bedingung Action ="6" abfragst.
Habe eben mal eine manuelle Reinigung dgf. und den DP geloggt:
Bei mir geht er auf "4", wenn die Reinigung beendet ist.
Es scheint bei dir ja seit mehr, als einem Jahr zu funktionieren...trotz dessen merkwürdig -
@Night2k5 sagte in Roborock 1x am Tag starten:
Mit diesem Script versucht mein Xiaomi Roboter V1 jeden Tag ( außer Sonntag ) um 13:30 Uhr zu starten.
Falls mein Handy im WLAN ist bekomme ich eine Nachricht auf mein Handy, dass der Staubsauger in 30 minuten nocheinmal versucht zu starten.
Nach 3 Versuchen gibt er dann auf und probiert es den nächsten Tag wieder.
Ich habe oben alle Einstellungen gekennzeichnet und beschrieben. Falls Fragen dazu da sind dann einfach raus damit.
In der ersten Zeile musst du vielleicht noch die Startzeit anpassen.
30 = minuten
13 = stunden
1-6 = tage ( Mo - Sa )
Montag bis Freitag um 16 Uhr wäre dann z.B.: "0 16 * * 1-5"
schedule("30 13 * * 1-6", function () { /* * * Einstellungen * vvvvvvvvvvvvv */ // Handy über das WLAN vom TR64 Adapter checken var aktiv = getState("tr-064.0.devices.OnePlus-6.active").val; // Zeit in Stunden zwischen den Versuchen var zeit = 0.5; // Anzahl der Versuche die durchgeführt werden sollen var versuche = 3; // Staubsauger State var vacuum = "mihome-vacuum.0.control.start"; // Telegram Nachricht aktivieren? dann auf 'true' ändern var telegram = false; /* * ^^^^^^^^^^^^^^^^^^ * Einstellungen Ende * */ // ab hier muss eigentlich nichts geändert werden timeout(versuche, zeit); function timeout(versuche, sec) { retry(1, versuche, sec); } function retry(n,n2,n3){ var sec = n3*1000*3600; if(aktiv){ if(n == n2){ if(telegram){ sendTo("telegram.0", "send", { text: 'Staubsauger konnte nach ' + (n2) + ' Versuchen nicht gestartet werden.' }); } } else { if(telegram){ sendTo("telegram.0", "send", { text: 'Versuch Nr. ' + (n) + ' von ' + n2 + ' den Staubsauger zu starten. Versuche in ' + (n3*60) + ' Min. nochmal.' }); } n++; setTimeout(function () { retry(n, n2, n3); }, sec); } } else { // Staubsauger starten setState(vacuum, true); if(telegram){ sendTo("telegram.0", "send", { text: 'Sir Saug-A-Lot beginnt seinen Dienst.' }); } } } });
Hey Danke für diesen Script. Ich habe das Problem wenn ich ein zweites Gerät hinzufüge das er nur eins von beiden beachtet. Wie füge ich denn eine Regel hinzu, sodass er nur startet wenn beide Personen nicht anwesend sind?
Lg Michel
-
@matschkopf sagte in Roborock 1x am Tag starten:
@Jan1
Super, vielen Dank.Ich war mir vorher nicht ganz sicher, aber jetzt mit dem Screenshot sehe ich, dass du tatsächlich die Bedingung Action ="6" abfragst.
Habe eben mal eine manuelle Reinigung dgf. und den DP geloggt:
Bei mir geht er auf "4", wenn die Reinigung beendet ist.
Es scheint bei dir ja seit mehr, als einem Jahr zu funktionieren...trotz dessen merkwürdigKann sogar sein, dass die 6 bei mir falsch ist, da ich sehr selten manuell starte und das wohl nicht merke. Muss ich mal checken. Irgendwie muss ich ja mal drauf gekommen sein und das ist schon länger her