ich habe mehrere "at"s am laufen.
Die funktionieren auch alle so wie gewollt.
Ich finde aber etwas nervig dass mir das "at" bei jeder Ausführung einen log eintrag erzeugt, kann ich das irgendwie unterbinden?
das ist mein eins von mehreren ATs
+*00:01:00 {
my $s = Value("RM.AKTIV");
if($s eq "on"){
system("sudo tclsh /home/pi/MOWERTEST/automower/automower.tcl W_MODE_AUTO");
}
if($s eq "off"){
system("sudo tclsh /home/pi/MOWERTEST/automower/automower.tcl W_MODE_HOME");
}
}
die log sieht so aus:
.....018.02.01 02:06:50 3: RM.STEUERN: -1
2018.02.01 02:07:50 3: RM.STEUERN: -1
2018.02.01 02:08:50 3: RM.STEUERN: -1
2018.02.01 02:09:50 3: RM.STEUERN: -1
2018.02.01 02:10:50 3: RM.STEUERN: -1
2018.02.01 02:11:50 3: RM.STEUERN: -1
2018.02.01 02:12:50 3: RM.STEUERN: -1
2018.02.01 02:13:50 3: RM.STEUERN: -1
2018.02.01 02:14:50 3: RM.STEUERN: -1
2018.02.01 02:15:50 3: RM.STEUERN: -1
2018.02.01 02:16:50 3: RM.STEUERN: -1
2018.02.01 02:17:50 3: RM.STEUERN: -1
2018.02.01 02:18:50 3: RM.STEUERN: -1
Das ist die Rückmeldung von system(). (-1) bedeutet allerdings, dass die Ausführung gescheitert ist. Da ist also im Aufruf noch etwas falsch.
Grüße Jörg
hmm komisch ich habe mehrere davon .. und die laufen alle durch melden trozdem -1
Natürlich läuft das at durch, aber der Aufruf: "sudo tclsh /home/pi/MOWERTEST/automower/automower.tcl W_MODE_AUTO" scheitert.
jain..
ich habe 3 AT am laufen
der erste "minütlich checkt den Status des Rasenmäher Robboter".. wenn dieser fest gefahren ist bekomme ich eine Push nachricht..
der zweite startet abends um 19 Uhr die Bewässerung (täglich)
der dritte schaut alle 2 stunden auf mein Konto ob lohn eingegangen ist und informiert mich via Push darüber.
alle dinge funktionieren einwandfrei..
abends geht die pumpe an
der Rasenäher beschwert sich wenn er festgefahren ist
um pünktlich gegen ende des Monats bimmelt meine Uhr..
wobei du recht hast .. der Rasenmäher und das Konto script erzeugt den log eintrag
und beide nutzen system()
allerdings "scheitert" der Befehl nicht, denn die scripts welche ich aufrufe tun was sie sollen .. das ist das was mich wundert
Hm, dann ersetz doch mal system() durch qx(). Hier musst Du allerdings die "" weglassen. qx gibt Dir die Rückmeldung von sudo zurück. Vielleicht kommen wir dann mehr Informationen.
danke teste ich mal
einfach am ende des at einreturn undef;
einbauen.
wenn eine funktion nicht explizit etwas zurück gibt ist die rückgabe automatisch der wert des letzen blocks. in einem fall eben das system.
danke wieder etwas gelernt ;)
führe ich den befehl im terminal aus kommt ja auch keine Rückmeldung
habe nun auf qx umgestellt bisher auch keinen neuen störenden Eineintrag mehr bekommen..
return undef
behalte ich aber auf jeden fall im hinterkopf kannte ich noch nicht