NEWS
[gelöst]Skript soll nur EINMAL auslösen: wie?
-
Ich habe mir einen Pushover Alarm angelegt, wen mein Staubsauger "hängt". Hier das Skript:
// ################################## // Deklarationen // ################################## var IDxiaomiFehler ="mihome-vacuum.1.info.error"/*Error*/; // ################################## // Programm // ################################## on({id: IDxiaomiFehler}, function (data) { var fehlerWert = getState("mihome-vacuum.1.info.error").val; if (fehlerWert !== 0) { sendTo("pushover.0", { message: 'FEHLER', // mandatory - your text message title: 'Xiaomi UNTEN', // optional - your message's title, otherwise your app's name is used sound: 'spacealarm', // optional - the name of one of the sounds supported by device clients to override the user's default sound choice // pushover, bike, bugle, cashregister, classical, cosmic, falling, // gamelan, incoming, intermission, magic, mechanical, pianobar, siren, // spacealarm, tugboat, alien, climb, persistent, echo, updown, none priority: 1, // optional // -1 to always send as a quiet notification, // 1 to display as high-priority and bypass the user's quiet hours, or // 2 to also require confirmation from the user }); } });
Soweit, so gut.
Allerdings löst es jetzt bei jeder Aktualisierung des Objekts "mihome-vacuum.1.info.error" aus, also quasi alle 30 sec. Das soll so aber nicht sein. EINE pushover Information reicht mir.
Meine Frage: wie löse ich das im Skript, daß ich also nur EINMAL beim ersten Auftritt des Fehlers eine Nachricht erhalte und dann nicht mehr.
Danke für die Hilfe!
-
Hallo Skorpil,
Schnell aus der Kaffeepause vom Usertreffen:
Lass mal var fehlerWert weg und ändere die if Abfrage in
if (data.state.val !==0 && data.oldState.val ===0) {
Also neuer Wert ist Fehler und alter Wert ist kein Fehler.
Gruß
Pix
-
due loest wohl aus bei any, mach mal:
on({id: IDxiaomiFehler, , change: "ne"}, function (data)
dan sollte er es nur bei aenderung machen
Edit: Pix war schneller Nu ausloesen script sollte auch nur bei aenderung variable ?
-
Pix, schneller als der Schall! Vielen Dank! Und, Gruß an alle Beim Usertreffen[emoji23]
-
Dutchman hat natürlich Recht, aber meine Lösung ließ sich besser in tapatalk tippeln…
Wenn du in der on()-Funktion das "id:" weglässt, dann ist die Auslösung auf change ne gestellt.
Also:
on(IDxiaomiFehler, function(data) { ````ist das gleiche wie
on({id:IDxiaomiFehler, change: 'ne'}, function(data) {
Pix
-
Daaanke an alle. Läuft!
-