NEWS
On-Funktion: Brauche Hilfe
-
Hallo,
es ist ein altes Thema. Ich habe jedoch auch nach langem Suchen hier keine Lösung für mich gefunden. Deshalb mal wieder eine Frage an die Experten:
Ich habe den Adapter "Worx Landroid S 2017" von MeisterTR installiert. Dieser gibt mir in einem seiner Objekte den Status meines Rasenroboters ("Otto") an. Den Status kann ich mit dem Befehl
activity = getState("landroid-s.0.mower.status").val;korrekt auslesen. Soweit so gut. Ich möchte nun bei bestimmten Statusmeldungen eine Pushover auf meine Handi bzw. (bei Diebstahl) einen Alarm auslösen. Dazu habe ich mir folgens Script gebastelt:
//Programm wertet den Status des Objektes "landroid-s.0.mower.status" aus und sendet entsprechende Pushover-Mitteilung //var activity = getState("landroid-s.0.mower.status").val; var activity = ("landroid-s.0.mower.status"); console.log(activity); function Meldung() { switch (activity) { case 0: sendTo('pushover.1', 'Otto ist zu Hause und ruht'); break; case 1: sendTo('pushover.1', 'Otto ist zu Hause'); break; case 2: sendTo('pushover.1', 'Otto startet'); break; case 3: sendTo('pushover.1', 'Otto verlässt die Ladestation'); break; case 4: sendTo('pushover.1', 'Otto fährt am Draht entlang'); break; case 5: sendTo('pushover.1', 'Otto sucht sein Zuhause'); break; case 6: sendTo('pushover.1', 'Otto sucht den Draht'); break; case 7: sendTo('pushover.1', {message: 'Otto mäht',sound: 'spacealarm', priority: 1}); break; case 8: sendTo('pushover.1', 'Achtung! Otto wurde hochgehoben'); break; case 9: sendTo('pushover.1', 'Otto hat ein dickes Problem'); break; case 10: sendTo('pushover.1', 'Otto: Mähwerk blockiert'); break; case 11: sendTo('pushover.1', 'Debug'); break; case 12: sendTo('pushover.1', 'Fernbedienung'); break; default: sendTo('pushover.1', 'Der Empfangsstatus ist unbekannt'); break; }} on(activity, Meldung());Die Zuweisung
var activity = ("landroid-s.0.mower.status");scheint nicht korrekt zu sein. Denn ich erhalte nur eine Pushover mit der Meldung: "Der Empfangsstauts ist unbekannt". Der Programm funktioniert mit der Zeile
activity = getState("landroid-s.0.mower.status").val;Allerdings nur einmal beim Start.
Kann mit jemand auf die Sprünge helfen und zeigen wie die Zuweisung für activity korrekt aussehen muss? Alle meine Versuche, etwa
var activity = ("landroid-s.0.mower.status").val;sind bisher gescheitert.
Gruß
Strizz
-
Hallo,
probier es mal so:
//Programm wertet den Status des Objektes "landroid-s.0.mower.status" aus und sendet entsprechende Pushover-Mitteilung on({id: "landroid-s.0.mower.status"}, function(obj) { var activity = getState("landroid-s.0.mower.status").val; switch(String(activity)) { case "0": sendTo('pushover.1', 'Otto ist zu Hause und ruht'); break; case "1": sendTo('pushover.1', 'Otto ist zu Hause'); break; case "2": sendTo('pushover.1', 'Otto startet'); break; case "3": sendTo('pushover.1', 'Otto verlässt die Ladestation'); break; case "4": sendTo('pushover.1', 'Otto fährt am Draht entlang'); break; case "5": sendTo('pushover.1', 'Otto sucht sein Zuhause'); break; case "6": sendTo('pushover.1', 'Otto sucht den Draht'); break; case "7": sendTo('pushover.1', {message: 'Otto mäht',sound: 'spacealarm', priority: 1}); break; case "8": sendTo('pushover.1', 'Achtung! Otto wurde hochgehoben'); break; case "9": sendTo('pushover.1', 'Otto hat ein dickes Problem'); break; case "10": sendTo('pushover.1', 'Otto: Mähwerk blockiert'); break; case "11": sendTo('pushover.1', 'Debug'); break; case "12": sendTo('pushover.1', 'Fernbedienung'); break; default: sendTo('pushover.1', 'Der Empfangsstatus ist unbekannt'); break; } }); -
Danke für die schnelle Antwort. Habe eine Zeile geändert in
on("landroid-s.0.mower.status", function(objweil er mir sonst im Minutentakt die Pushover geschickt hat. Jetzt erhalte ich sie nur bei einer Änderung des Status.
Noch mal besten Dank
Strizz
-
Ach verdammt. Sorry, mein Fehler :)
Aber super, wenn es jetzt funktioniert!
-
! ````
//Programm wertet den Status des Objektes "landroid-s.0.mower.status" aus und sendet entsprechende Pushover-Mitteilung
! var idactivity = "landroid-s.0.mower.status";
! function Meldung(activity) {
switch (activity) {
case 0: sendTo('pushover.1', 'Otto ist zu Hause und ruht');
break;
case 1: sendTo('pushover.1', 'Otto ist zu Hause');
break;
case 2: sendTo('pushover.1', 'Otto startet');
break;
case 3: sendTo('pushover.1', 'Otto verlässt die Ladestation');
break;
case 4: sendTo('pushover.1', 'Otto fährt am Draht entlang');
break;
case 5: sendTo('pushover.1', 'Otto sucht sein Zuhause');
break;
case 6: sendTo('pushover.1', 'Otto sucht den Draht');
break;
case 7: sendTo('pushover.1', {message: 'Otto mäht',sound: 'spacealarm', priority: 1});
break;
case 8: sendTo('pushover.1', 'Achtung! Otto wurde hochgehoben');
break;
case 9: sendTo('pushover.1', 'Otto hat ein dickes Problem');
break;
case 10: sendTo('pushover.1', 'Otto: Mähwerk blockiert');
break;
case 11: sendTo('pushover.1', 'Debug');
break;
case 12: sendTo('pushover.1', 'Fernbedienung');
break;
default: sendTo('pushover.1', 'Der Empfangsstatus ist unbekannt');
break;
}
}
! Meldung(getState(idactivity).val); // Script starton(idactivity, function(dp) { // Triggern bei Wertänderung
Meldung(dp.state.val);
});
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden