[gelöst] FileLog registriert nach Update bestimmten Wert nicht.

Begonnen von HomeAuto_User, 16 November 2020, 13:46:28

Vorheriges Thema - Nächstes Thema

HomeAuto_User

Hallo,
seit der Nacht wo ich ein Update von FHEM durchlaufen lies habe ich ein sehr eigenartiges Phänomen.

Ich habe ein Device
Internals:
   DEF        192.168.1.10 80 ESPEasy PuWa_2020_Wasseruhr
   ESPEasy_MSGCNT 70
   ESPEasy_TIME 2020-11-16 13:40:55
   ESP_BUILD  20111
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 2
   FUUID      5faad607-f33f-06c8-4622-9876bed2f91588dd
   HOST       192.168.1.10
   IDENT      PuWa_2020_Wasseruhr
   INTERVAL   300
   IODev      ESPEasy
   LASTInputDev ESPEasy
   MAX_CMD_DURATION 1
   MSGCNT     70
   NAME       ESPEasy_PuWa_2020_Wasseruhr
   NOTIFYDEV  global
   NR         252
   NTFY_ORDER 50-ESPEasy_PuWa_2020_Wasseruhr
   PORT       80
   STATE      <div style="padding: 0px 5px 0px 5px;;;; text-align: left;;;;"> Verbrauch: 118,459m³</div>
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.18
   OLDREADINGS:
   READINGS:
     2020-11-16 13:40:55   Pulse_Count     489
     2020-11-16 13:40:55   Pulse_Total     489
     2020-11-16 13:40:55   Time            7153.00
     2020-11-16 13:40:55   Total_Value     118459
     2020-11-16 13:36:33   presence        present
     2020-11-16 13:40:55   state           Pul: 489 Pul: 489 Tim: 7153.00
     2020-11-16 13:40:55   value           118459
   helper:
     fpc        1605528379
     pm:
       Encode     1
       JSON       1
     received:
       Pulse_Count 1605530455
       Pulse_Total 1605530455
       Time       1605530455
   sec:
     admpwd     
Attributes:
   IODev      ESPEasy
   Interval   300
   alias      Wasseruhr
   group      0_Verbrauchsdaten
   presenceCheck 1
   readingSwitchText 1
   room       23_Wasser
   setState   3
   startvalue 117970
   stateFormat {
my $val = ReadingsVal($name,"Total_Value",0) / 1000;
$val = sprintf("%.3f",$val);
$val =~ s/\./,/;

'<div style="padding: 0px 5px 0px 5px;;;; text-align: left;;;;"> Verbrauch: '.$val."m³".'</div>'
}
   userattr   startvalue
   verbose    2


welches auf einmal die Readings, welche via notify geschrieben werden, nicht mehr ins Logfile überträgt obwohl ein Event generiert wird.

Internals:
   DEF        ESPEasy_PuWa_2020_Wasseruhr:Pulse_Total.* {
my $val = ReadingsVal("ESPEasy_PuWa_2020_Wasseruhr","Pulse_Total",0);
my $attrval = AttrVal("ESPEasy_PuWa_2020_Wasseruhr","startvalue",0);
#Log 1, "NOTIFY_ESPEasy_Wasserzaehlerberechnung: startvalue=$attrval val=$val";
my $resulat = $attrval + $val;
if ($val > 0) {
  CommandSetReading(undef, "ESPEasy_PuWa_2020_Wasseruhr Total_Value $resulat");
  CommandSetReading(undef, "ESPEasy_PuWa_2020_Wasseruhr value $resulat");
  CommandSet($defs{ESPEasy_PuWa_2020_Wasseruhr},"ESPEasy_PuWa_2020_Wasseruhr taskvalueset 1 1 ".$resulat/1000);
}
}
   FUUID      5fabe74b-f33f-06c8-37f4-b483f8016cfd4631
   NAME       Wasserzaehlerberechnung
   NOTIFYDEV  ESPEasy_PuWa_2020_Wasseruhr
   NR         261
   NTFY_ORDER 50-Wasserzaehlerberechnung
   REGEXP     ESPEasy_PuWa_2020_Wasseruhr:Pulse_Total.*
   STATE      2020-11-16 13:42:55
   TRIGGERTIME 1605530575.18155
   TYPE       notify
   READINGS:
     2020-11-16 13:28:11   state           active
Attributes:
   group      3_Automatik
   room       23_Wasser


Definition des Logfiles:
Internals:
   CFGFN     
   DEF        ./log/ESPEasy_PuWa_2020_Wasseruhr-%Y-%m.log ESPEasy_PuWa_2020_Wasseruhr:.*
   FD         57
   FUUID      5fb2720f-f33f-06c8-8f30-489d29354220d973
   NAME       FileLog_ESPEasy_PuWa_2020_Wasseruhr
   NOTIFYDEV  ESPEasy_PuWa_2020_Wasseruhr
   NR         605
   NTFY_ORDER 50-FileLog_ESPEasy_PuWa_2020_Wasseruhr
   REGEXP     ESPEasy_PuWa_2020_Wasseruhr:.*
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/ESPEasy_PuWa_2020_Wasseruhr-2020-11.log
   logfile    ./log/ESPEasy_PuWa_2020_Wasseruhr-%Y-%m.log
   READINGS:
     2020-11-16 13:43:55   linesInTheFile  72
Attributes:
   room       23_Wasser


Die Readings Total_Value & value gehen verlustig. Wieso?
Ich erbitte Mithilfe.

MfG Marco
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

rudolfkoenig

ZitatDie Readings Total_Value & value gehen verlustig. Wieso?
Weil die Methode, mit notify (oder DOIF,etc) Events zu "bereichern" nur zufaellig funktioniert, da spielt mindestens die Reihenfolge der Auswertung eine Rolle, evtl. auch andere Aspekte. Fuer diese Aufgabe sollte man userReadings verwenden.
Ein Umweg ist die Events mit sleep/InternalTimer/etc entkoppelt zu setzen.

HomeAuto_User

Vielen Dank Rudi für die schnelle Antwort.

Ich hatte mir schon so etwas gedacht, das da ggf. eine Reihenfolge einwirkt.
Es wird sich also im Hintergrund etwas an Performence oder der abzuwicklenden Prozesse geändert haben.

Meine jetzige Lösung, userReadings:
userReadings value_liter {
my $val = ReadingsVal("ESPEasy_PuWa_2020_Wasseruhr","Pulse_Total",0);
my $attrval = AttrVal("ESPEasy_PuWa_2020_Wasseruhr","startvalue",0);

#Log 1, "NOTIFY_ESPEasy_Wasserzaehlerberechnung: startvalue=$attrval val=$val";
my $resulat = $attrval + $val;
if ($val > 0) {
  $resulat
};
},
value_cubic_meter {
my $val = ReadingsVal("ESPEasy_PuWa_2020_Wasseruhr","value_liter",0) / 1000;
#$val = sprintf("%.3f",$val);
#$val =~ s/\./,/;
}


Danke!
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet