FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: thommythekid am 14 November 2021, 17:53:55

Titel: kann es sein dass ein AT +*00:05 manchmal nicht ausgeführt wird
Beitrag von: thommythekid am 14 November 2021, 17:53:55
Hallo,

ich habe nun seit einigen Wochen ein regelmäßiges Auslesen meines digitalen Stromzählers 
am laufen, und dieses mit FHEM automatisiert.

Nun stelle ich aber fest, dass manchmal (unterschiedlich oft, unterschiedlich verteilt) einzelne
Instanzen scheinbar nicht ausgeführt werden.

Ich rufe alle 5 min mit AT +*00:05 folgendes Coding auf:

my $val = qx(/usr/bin/python /home/pi/thomas_elec/new_soft/current.py);
fhem("setreading Zaehlerwerte_ISKRA counter_current_iskra $val");


current.py liefert eine Ausgabe und die wird in zunächst in $val gespeichert und dann
in das Reading counter_current_iskra der Readingsgroup Zählerwerte_ISKRA gespeichert.

Zählerwerte_ISKRA ist mit einem Filelog assoziiert (ist als NOTIFYDEV des Filellog eingetragen)
und normalerweise funktioniert es auch gut, also werden die Änderungen im Reading
counter_current_iskra automatisch im Filellog gespeichert.

Wenn es gut läuft klappe alles:

2021-11-14_03:10:01 Zaehlerwerte_ISKRA counter_current_iskra: 1386.9823
2021-11-14_03:15:02 Zaehlerwerte_ISKRA counter_current_iskra: 1386.9953
2021-11-14_03:20:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.0083
2021-11-14_03:30:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.0339
2021-11-14_03:35:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.0478
2021-11-14_03:40:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.0659
2021-11-14_03:45:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.0891
2021-11-14_03:50:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.1099
2021-11-14_03:55:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.1303
2021-11-14_04:00:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.1505
2021-11-14_04:05:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.1708
2021-11-14_04:10:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.1909
2021-11-14_04:20:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.2364
2021-11-14_04:25:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.2606
2021-11-14_04:30:01 Zaehlerwerte_ISKRA counter_current_iskra: 1387.2733


aber manchmal fehlen ganze Zeitbereiche:

2021-11-14_00:35:02 Zaehlerwerte_ISKRA counter_current_iskra: 1386.0605
2021-11-14_01:10:02 Zaehlerwerte_ISKRA counter_current_iskra: 1386.4172
2021-11-14_03:10:01 Zaehlerwerte_ISKRA counter_current_iskra: 1386.9823


Ich hab in einem anderen Fall, als das Problem auftrat auch mal live draufgeschaut und
gesehen, dass in meinem Raum, in dem die Readingsgroup Zaehlerwerte_ISKRA mit dem
Reading counter_current_iskra dargestellt wird, der letzte Aktualisierungszeitpunkt des
Readings nicht in den letzten 5 Minuten sondern viel länger her war.

Daher meine Frage: wie kann das sein, dass AT manchmal ausgeführt wird und manchmal nicht ?

P.S. im Logfile finde ich bezüglich des genauen Zeitpunkts zu dem die Readings fehlen nichts.
Allerdings habe ich ab und zu folgenden Eintrag, der von meinem SetReading kommen muss
aber ich verstehe ihn nicht. Der Befehl kann ja nicht falsch sein, denn er funktioniert ja oft genug.

2021.11.14 00:00:01 3: setreading Zaehlerwerte_ISKRA counter_current_iskra  : Usage: setreading <name> [YYYY-MM-DD HH:MM:SS] <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.


Hat jemand eine Idee ?

viele Grüße
Thommy



Titel: Antw:kann es sein dass ein AT +*00:05 manchmal nicht ausgeführt wird
Beitrag von: Otto123 am 14 November 2021, 18:25:37
Hallo Tommy,

ich denke es wird immer ausgeführt, aber es gibt Fälle wo qx() nichts zurückliefert bzw das qx() sogar längere Zeit blockiert? Du müsstest dort eine Fehlerbehandlung einbauen bzw. besser den Wert aus python heraus direkt in FHEM setzen. Das würde dann nämlich nicht blockieren.
Ein Ansatz dazu: https://wiki.fhem.de/wiki/CsrfToken-HowTo#Python

Gruß Otto
Titel: Antw:kann es sein dass ein AT +*00:05 manchmal nicht ausgeführt wird
Beitrag von: bartman121 am 14 November 2021, 19:06:15
Edit: Das könnte die Ursache sein, hab aber gerade gesehen,dass das nicht zum Log passt....
 
Poste Mal ein 'list Zaehlerwerte_ISKRA'

Ich vermute das Attribut event-on-change-reading

Titel: Antw:kann es sein dass ein AT +*00:05 manchmal nicht ausgeführt wird
Beitrag von: thommythekid am 14 November 2021, 23:40:26
Hallo,

hier der Output von "list Zaehlerwerte_ISKRA" :

Internals:
   FUUID      611faad7-f33f-5209-08fc-d952c394edf40038
   NAME       Zaehlerwerte_ISKRA
   NR         25
   STATE      ???
   TYPE       dummy
   OLDREADINGS:
   READINGS:
     2021-11-14 23:35:02   counter_current_iskra 1398.0484

     2021-11-14 00:00:10   start_day       1385.5628

Attributes:


Ich glaube ich hatte zuvor mit event_on_change_reading und event_on_update_reading rumgespielt aber es dann wieder rausgenommen,
da damit eher weniger events ankamen...

Wie müsste ich das Setzen des Readings aus dem externen Python Script denn machen ?
Hast du eine Idee zu der komischen Usage des setreading Befehls, die manchmal
im Log steht, aber auch nicht immer ? Und das wo der SetReading Befehl ja (fast) immer funktioniert...

Gruß
Thommy
Titel: Antw:kann es sein dass ein AT +*00:05 manchmal nicht ausgeführt wird
Beitrag von: Benni am 15 November 2021, 07:48:30
Zitat von: thommythekid am 14 November 2021, 17:53:55
P.S. im Logfile finde ich bezüglich des genauen Zeitpunkts zu dem die Readings fehlen nichts.
Allerdings habe ich ab und zu folgenden Eintrag, der von meinem SetReading kommen muss
aber ich verstehe ihn nicht. Der Befehl kann ja nicht falsch sein, denn er funktioniert ja oft genug.

2021.11.14 00:00:01 3: setreading Zaehlerwerte_ISKRA counter_current_iskra  : Usage: setreading <name> [YYYY-MM-DD HH:MM:SS] <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.


Hallo Thommy,

wenn $val in deinem setreading leer ist, sprich wenn qx(...) nichts zurückliefert, dann dürfte das genau diese Log-Meldung produzieren.

Wenn das allerdings nicht mit den Zeiten zusammenpasst zu denen Werte fehlen, dann weiß ich auch erst mal nicht weiter.

gb#
Titel: Antw:kann es sein dass ein AT +*00:05 manchmal nicht ausgeführt wird
Beitrag von: Wernieman am 15 November 2021, 10:18:19
Ich würde auch erstmal auf das externe Script tippen. mehr Debugausgabe dort einbauen.

Aber .. grundsätzlich würde ich bei solchen Scripten, wie von Otto geschrieben, diese direkt in FHEM pushen, anstatt des Umweges über die Ausgabe. Otto hatte dazu auch schon einen Link geschickt .... ansonsten bitte Forumssuche