NEWS
Aktion bei bedarf verzögert auslösen
-
Hallo,
bin mir sicher das es sehr einfach umzusetzen ist, aber ich komme nicht drauf:
Ich möchte gerne eine Aktion (Saugroboter starten) verzögert ausführen. Es soll erst ausgeführt werden, wenn der Adapter "Online" ist.
Hintergrund:
Der Roboter wird automatisch gestartet wenn alle das Haus verlassen haben. Wenn allerdings zum Zeitpunkt des Startens, der Adapter die Verbindung zum Roboter verloren hat, geht der Befehl ins leere..Leider ist die Verbindung recht instabil.
(Ansonsten funktioniert der Adapter übrigens sehr gut)
Hat da jemand einen Rat für mich?
-
Hi,
da ich nicht weis welchen Sauger / Adapter du hast kann ich dir nur zeigen wie ich das mache.
Ich habe mein Script nun ein bisschen umgeschrieben um die Verbindungsabfrage zum Sauger zu realisieren, habe dieses jedoch nicht getestet.
Ich verwende zudem zusätzlich zwei weitere Abfragen, zum einen frage ich ab wann der Sauger das letzte mal gelaufen ist, zum anderen ob die "Saugautomatik" eingeschalten ist (Da ich generell alle Automatikfunktionen auch gerne einfach abschalten können möchte).
Zur Funktion:
1. Ich nutze als Trigger den Datenpunkt Anwesenheit Status, der bei mir durch den Pingadapter beschrieben wird.
2. Ich starte die Funktion saugen_automatischer_start und frage die o.g. Datenpunkte ab.
3. Treffen diese zu frage ich wie du es möchtest die Verbindung ab.
3. Ist auch diese vorhanden wird der Saugvorgang gestartet und wenn nicht sollte die Funktion in 5 Minuten erneut aufgerufen werden.
function saugen_automatischer_start() { if(getState("javascript.0.Automation.Saugautomatik").val && ((getState("javascript.0.Automation.Saugautomatik_zuletzt_aktiv").val + 172800000) < Date.now()) ) { if(getState("mihome-vacuum.0.info.connection").val){ log('Sauger aktiviert durch Automatik'); setState("javascript.0.Saugroboter.Ein-Aus-Schalter", true); setState("javascript.0.Automation.Saugautomatik_zuletzt_aktiv", Date.now()); } else{ setTimeout(function () { saugen_automatischer_start(); }, 5 * 60000); } } } on("javascript.0.Anwesenheit.Status"/*Anwesenheit Bewohner*/, function (dp) { if(!dp.state.val) saugen_automatischer_start(); });
Den Datenpunkt der Verbindung habe ich bei meinem Xiaomi Vacuum Cleaner unter mihome-vacuum.0 -> info -> connection gefunden.
Hoffe es klappt / funktioniert
Gruß
Steffen
-
Hallo peoples,
ist genau für diesen Sauger und dieser Adapter
Ich werde dein Beispiel mal anpassen und übernehmen. Sieht sehr gut aus. Danke dafür.
Hast du wirklich 48h Versatz in deinem Script? Wir haben einen Hund…da fährt das Ding 3 mal am Tag durch
Gruß
Thomas
-
Ja ich habe tatsächlich 48 Stunden Versatz, in der Automatik.
Diese greift jedoch seltenst, da ich zwei kleine Kinder habe die sich einen Spaß daraus machen auf dem Sauger rum zu drücken :lol:
Gruß
Steffen