FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: reuter14 am 18 Dezember 2022, 17:18:46

Titel: Departure und (fehlendes) oldreadings
Beitrag von: reuter14 am 18 Dezember 2022, 17:18:46
Hallo,

ich versuche nun schon einige Zeit, dem Departure-Modul oldreading-Werte zu entlocken. Das Forum habe ich nun schon intensiv durchsucht, bin aber noch nicht fündig geworden.
Das Attribut oldreadings habe ich definiert, im List erscheint der OLDREADINGS-Abschnitt, es erscheint dort aber kein Reading, geschweige denn ein Wert.

Internals:
   BASE_URL   https://transport.stefan-biermann.de/publictransportapi/rest
   DEF        300
   FUUID      63982479-f33f-1769-13c1-25bc5829ea988518
   Interval   300
   NAME       Departure_BRB
   NR         1061
   STATE      RE 73769 Brandenburg Hbf 2022-12-18T11:21+0100 (0)
   TRIGGERTIME 1671358983.9801
   TRIGGERTIME_FMT 2022-12-18 11:23:03
   TYPE       Departure
   eventCount 1932
   OLDREADINGS:
   READINGS:
     2022-12-18 11:18:09   departure_0_delay 0
     2022-12-18 11:18:09   departure_0_number RE 73769
     2022-12-18 11:18:09   departure_0_text Brandenburg Hbf
     2022-12-18 11:18:09   departure_0_time 2022-12-18T11:21+0100
     2022-12-18 11:18:09   departure_0_timeInMinutes 3
     2022-12-18 11:18:09   departure_0_time_human_readable 18.12.2022, 10:21 Uhr
...

Wenn ich das Reading mit setreading verändere, wird auch OldReadings gesetzt.

OLDREADINGS:
     2022-12-18 17:13:28   departure_0_delay 0
   READINGS:
     2022-12-18 17:15:18   departure_0_delay 11

Sobald das Modul die Daten aber wieder auf normalem Weg aktualisiert, ist der OLDREADINGS-Wert wieder weg.

OLDREADINGS:
   READINGS:
     2022-12-18 17:16:27   departure_0_delay 1


Was läuft hier verkehrt? Ich stehe vor einem Rätsel...

Grüße
Titel: Antw:Departure und (fehlendes) oldreading
Beitrag von: TomLee am 18 Dezember 2022, 17:33:01

Zitat von: commandrefoldreadings
Dieses Attribut enthält eine durch Kommata getrennte Liste von Readings. regex sind erlaubt. Für jedes Reading aus der Liste speichert FHEM intern den vorherigen Wert wenn sich das Reading ändert. Zum Zugriff auf die Werte gibt es die OldReadings.* Routinen.

https://fhem.de/commandref_modular_DE.html#perl :
Zitat von: commandref
OldReadingsVal(<devicename>,<reading> ,<defaultvalue>)
OldReadingsNum(<devicename>,<reading>, <defaultvalue>,<round>)
OldReadingsTimestamp(<devicename>,<reading> ,<defaultvalue>)
OldReadingsAge(<devicename>,<reading>,< defaultvalue>)
analog zu den Routinen oben, aber zum Zugriff auf die vorherigen Werte. siehe: oldreadings
Titel: Antw:Departure und (fehlendes) oldreadings
Beitrag von: reuter14 am 18 Dezember 2022, 18:10:26
Hallo,

die commandref dazu habe ich gelesen.
OldReadingsVal liefert immer nur den Standardwert. Außer, ich setze das Reading mit setreading manuell, dann kommt auch bei OldReadingsVal as an.

setreading departure_BRB departure_0_text Ziel1
liefert
OldReadingsVal("departure_BRB", "departure_0_text", "leer")
Brandenburg Hbf

setreading departure_BRB departure_0_text Ziel2
liefert
OldReadingsVal("departure_BRB", "departure_0_text", "leer")
Ziel1

set departure_BRB update
liefert
OldReadingsVal("departure_BRB", "departure_0_text", "leer")
leer

Nach den setreadings gibt es im List bei OLDREADINGS eine Zeile "departure_BRB" mit dem entsprechenden Wert. Nach dem "set departure_BRB update" ist der Eintrag wieder weg, siehe erster Beitrag.

Was habe ich in der commandref übersehen?

Grüße


Titel: Antw:Departure und (fehlendes) oldreadings
Beitrag von: TomLee am 18 Dezember 2022, 18:29:46
Weil im Anschluss des "set departure_BRB update" irgendwann mal die Funktion Departure_ParseDeparture aufgerufen wird und damit alle Readings gelöscht werden ? Ich weiß es nicht, zu wenig Verständnis und beschäftigt damit.

sub Departure_ParseDeparture(@) {
my ($param, $err, $data) = @_;
my $hash = $param->{hash};
my $name = $hash->{NAME};
my $timeoffset = AttrVal($name, "departure_time_to_go_to_station",undef);
my $res;
fhem("deletereading $name departure.*", 1);
...


https://github.com/uniqueck/fhem-departure/blob/develop/FHEM/98_Departure.pm