FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: thommythekid am 06 Juli 2022, 23:03:35

Titel: wie kann ich monitoren, ob ein AT ausgeführt wurde
Beitrag von: thommythekid am 06 Juli 2022, 23:03:35
Hallo,

ich habe seit 1,5 Jahren ein automatisches Auslesen meines Digitalen Stromzählers mit FHEM am Laufen.
Hat ganz lange sehr gut funktioniert. Es gibt eine Readingsgroup Zaehlerwerte_ISKRA, unter der ich
2 Readings definiert habe: Counter_Current_ISKRA und start_day.
Jeden Tag um 10 Min nach Mitternacht wird der aktuelle Zaehlerstand gelesen, die Differenz zum
letzten Tag 10 Min nach Mitternacht gebildet (damit der Tagesverbrauch berechnet und weggeschrieben)
und der neue start_day gesetzt.

Nun habe ich seit dem 28.6.22 das Problem, dass dies einfach nicht mehr funktioniert. Die Datei mit
den Tageswerten (days_hist.js) wird nicht mehr vergrößert und auch das Reading start_day wird nicht upgedatet.

Hat jemand einen Tip an was das liegen kann ?

at *00:00:10 {
my $fileName_diff  = "days_hist.js";

my $pathName = "/home/pi/elec/data";
my $fullname_diff = "$pathName/$fileName_diff";

my $last = ReadingsVal( "Zaehlerwerte_ISKRA", "start_day", 0);
my $val = ReadingsVal( "Zaehlerwerte_ISKRA", "counter_current_iskra", 0);
my $diff = sprintf("%i",($val - $last)*1000) ;

fhem ("setreading Zaehlerwerte_ISKRA start_day $val");

my $beginn = "da[dx++]=\"" ;
my $ende = "\"" ;
my $ts = POSIX::strftime("%d.%m.%y",localtime(time-60*60));
my $line = "$beginn$ts|$diff$ende";
my ($err, @content) = FileRead($fullname_diff);
push(@content, $line);
my $error = FileWrite($fullname_diff, @content);

}


Wie gesagt, das Ganze lief bis vor kurzem, Neustart etc. hat nichts gebracht. Ich hab auch schon
mal das Setreading über die FHEM Oberfläche eingegeben, das hat geklappt, aber am nächsten
Tag um 00:00:10 hat er wieder nichts gemacht. Also gehe ich davon aus, dass der AT gar nicht
aufgerufen wird.

Gruß
ThommyTheKid
Titel: Antw:wie kann ich monitoren, ob ein AT ausgeführt wurde
Beitrag von: Otto123 am 06 Juli 2022, 23:08:05
Hi,

einfach einen Log Eintrag einbauen?
Ähnlich wie hier https://wiki.fhem.de/wiki/Notify#Anweisung

Gruß Otto
Titel: Antw:wie kann ich monitoren, ob ein AT ausgeführt wurde
Beitrag von: thommythekid am 06 Juli 2022, 23:13:23
Um die Frage etwas präziser zu formulieren (weil ich mir in der Zwischenzeit recht sicher bin, dass AT nicht gerufen wird).
Was kann der Grund sein, dass das AT nicht mehr aufgerufen wird ? Bzw. wie kann ich es wieder zum Laufen bringen ?

Gruß
Titel: Antw:wie kann ich monitoren, ob ein AT ausgeführt wurde
Beitrag von: Otto123 am 06 Juli 2022, 23:19:04
das at wird schon ausgeführt, Dein Code darin macht vielleicht nichts. Bau doch statt Deinem Code einfach mal einen Logeintrag ein, dann siehst das es ausgeführt wird.
Ansonsten könntest Du das at mit attr verbose 5 konfigurieren - habe ich bei einem at noch nie gemacht :)
Titel: Antw:wie kann ich monitoren, ob ein AT ausgeführt wurde
Beitrag von: betateilchen am 07 Juli 2022, 01:31:04
Zitat von: thommythekid am 06 Juli 2022, 23:03:35
Jeden Tag um 10 Min nach Mitternacht wird

Aber nicht damit:

Zitat von: thommythekid am 06 Juli 2022, 23:03:35
at *00:00:10

Da steht nämlich nix von 10 Minuten.

Was steht im Log zum Ausführungszeitpunkt?
Hat der user fhem Schreibrechte im Verzeichnis /home/pi ?

Wann ein at zuletzt ausgeführt wurde, erkenne ich in meinem FHEM am timestamp des reading state.


--
Titel: Antw:wie kann ich monitoren, ob ein AT ausgeführt wurde
Beitrag von: frank am 07 Juli 2022, 09:34:48
ein manuelles "set my_at execNow" hilft beim testen wartezeiten zu verkürzen.