FHEM Forum

FHEM => Automatisierung => Thema gestartet von: t0m am 27 September 2017, 19:43:13

Titel: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: t0m am 27 September 2017, 19:43:13
Hi,


ich habe hier ein sehr seltsames Verhalten. Ich habe folgendes AT definiert:

./fhem.cfg:362:define AtGarbageOut at *10:00:00 {GarbageOutAt();;}

Also: Jeden Tag um 10:00 Uhr soll GarbageOutAt() aufgerufen werden. GarbageOutAt() hatte ich in 99_myUtils.pm
definiert. Da werden Mails an zwei Personen geschickt.  :)

Ich wollte nun eine weitere Person, an die diese Mail auch gehen soll, aufnehmen. Seltsamerweise finde ich
GarbageOutAt() nicht mehr. Ich habe mal einen grep gemacht:

pi@raspberrypi:/opt/fhem $ grep -rin '.' -e 'GarbageOutAt('
./restoreDir/2017-09-08/fhem.cfg:357:define AtGarbageOut at *10:00:00 {GarbageOutAt();;}
./fhem.cfg:362:define AtGarbageOut at *10:00:00 {GarbageOutAt();;}
pi@raspberrypi:/opt/fhem $ pwd
/opt/fhem
pi@raspberrypi:/opt/fhem $


Man sieht also die Stellen des Aufrufs, aber da scheint keine Definition vorhanden zu sein.

:o Und jetzt kommt der Fehler in der Matrix (anders kann ich mir es derzeit nicht erklären): Ich habe mir das heutige
Log um 10:00 Uhr angesehen. Der Aufruf von GarbageOutAt() findet statt. Naja, sagt man sich, im Log kann ja
viel stehen. Aber, und nun kommt das Matrix-Problem, die beiden Personen (inkl. mir) haben die eMail erhalten.

So, nun meine Frage an die Matrix- bzw. FHEM-Spezialisten: Was läut hier in meinem Weltbild total aus der Spur?

Danke schon mal für's Anders-Analysieren-Als-Ich-Es-Tat! Falls noch mehr Infos benötigt werden -> immer her damit -
ich kann alles grep'pen. ;-)


Cheers,
tom   
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: CoolTux am 27 September 2017, 20:11:49
Die 99_myUtils befindet sich unter /opt/fhem/FHEM

Und wenn du in FHEMWEB mal auf die Line Seite schaust unter Edition Files hättest Du se auch gefunden.
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: t0m am 27 September 2017, 20:19:39

Hi CoolTux,

die Suche (grep) war in /opt/fhem (deswegen habe ich das das 'pwd' dringelassen) und rekursiv. Hätte die Definition also finden müssen. Oder habe ich jetzt in deiner Antwort etwas falsch verstanden?

Danke und Grüße
t0m
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: CoolTux am 27 September 2017, 20:23:00
grep -R "GarbageOutAt" /opt/fhem/

Mach mal das bitte
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: t0m am 27 September 2017, 20:28:23
Hi CoolTux,

das hatte ich oben ja schon gepostet - aber ok:

pi@raspberrypi:/opt/fhem $ grep -R "GarbageOutAt" /opt/fhem/
/opt/fhem/restoreDir/2017-09-08/fhem.cfg:define AtGarbageOut at *10:00:00 {GarbageOutAt();;}
/opt/fhem/fhem.cfg:define AtGarbageOut at *10:00:00 {GarbageOutAt();;}


Diese (relativ simplen) Analysen habe ich ja schon durch.  ;)


Regards,
t0m
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: CoolTux am 27 September 2017, 20:33:53
Kannst Du mal bitte in FHEMWEB in der Kommandozeile folgendes eingeben
{ GarbageOutAt() }
Sollte die Funktion ausführen.
Wann hast Du mal neu gestartet. Wenn man eine Funktion löscht bleibt sie ja erstmal im Speicher geladen.
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: t0m am 27 September 2017, 21:21:06
Zitat von: CoolTux am 27 September 2017, 20:33:53
Kannst Du mal bitte in FHEMWEB in der Kommandozeile folgendes eingeben
{ GarbageOutAt() }
Sollte die Funktion ausführen.
Wann hast Du mal neu gestartet. Wenn man eine Funktion löscht bleibt sie ja erstmal im Speicher geladen.

Hi CoolTux,

yup, { GarbageOutAt() } versendet die Mails wie erwartet. Neu gestartet habe ich nicht mehr, als ich bemerkte, dass die Funktion nicht mehr aufzufinden war. Darauf zielte meine Frage ja ab -> kann ich das, was FHEM jetzt gerade im Speicher hat, wieder irgendwie herstellen?

GarbageOutAt() ist nicht ein Riesen-Ding - aber wenn ich nicht alles wieder neu schreiben müsste, wäre schon cool. Ausserdem hätte ich dann eine Lösung, falls das mal wieder passiert... vorallem für grössere Sache, die plötzlich verschwinden.  :(


Grüße
t0m
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: CoolTux am 27 September 2017, 21:32:17
ich glaube nicht das man das wieder herstellen kann aus dem speicher, weiß es aber auch nicht genau. wüsste gerade nicht wie
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler i
Beitrag von: Thorsten Pferdekaemper am 27 September 2017, 22:14:41
Hi,
gib mal das hier im Kommandofeld ein:

{use B::Deparse;; my $d = B::Deparse->new();; return $d->coderef2text(\&GarbageOutAt)}

Gruß,
   Thorsten
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: viegener am 27 September 2017, 23:26:37
Zitat von: t0m am 27 September 2017, 21:21:06
GarbageOutAt() ist nicht ein Riesen-Ding - aber wenn ich nicht alles wieder neu schreiben müsste, wäre schon cool. Ausserdem hätte ich dann eine Lösung, falls das mal wieder passiert... vorallem für grössere Sache, die plötzlich verschwinden.  :(

Falls das mal wieder passiert würde ich zu backups raten, wenn man das vorher gemacht hat soll das schon geholfen haben etwas wiederherzustellen, dass unabsichtlich überschrieben wurde  ;)
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler i
Beitrag von: t0m am 29 September 2017, 18:51:34
Zitat von: Thorsten Pferdekaemper am 27 September 2017, 22:14:41
Hi,
gib mal das hier im Kommandofeld ein:

{use B::Deparse;; my $d = B::Deparse->new();; return $d->coderef2text(\&GarbageOutAt)}


Hi Thorsten,

Sorry, dass es so lange mit meiner Antwort gedauert hat, aber unter der Woche habe ich immer recht wenig Zeit für FHEM, Postings, etc.

Ich habe das Statement von dir ausprobiert. Wie kommt man denn auf sowas? Ich war mir ja ziemlich sicher, dass mein Code im Daten-Nirwana verblichen ist. Und wenn man sich ziemlich sicher ist, dass etwas nicht geht und dann erscheinen die verschwundenen Zeilen plötzlich auf dem Bildschirm, dann ist das wie - ein Wunder.  :D

Ich weiß gar nicht, wie ich dir danken soll! Du bist mein persönlicher FHEM-Held.  ;)


I owe you more than ONE beer,
t0m
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: CoolTux am 29 September 2017, 19:02:27
Klasse. Gleich mal den Code Dokumentiert.
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler i
Beitrag von: Thorsten Pferdekaemper am 29 September 2017, 21:44:18
Zitat von: t0m am 29 September 2017, 18:51:34
Ich habe das Statement von dir ausprobiert. Wie kommt man denn auf sowas?
Im Gegensatz zu Dir habe ich vermutet, dass das gehen könnte. Der Rest war ein bisschen <hier Suchmaschine Deiner Wahl einsetzen>, gut geraten und ausprobiert.

Zitat
Ich war mir ja ziemlich sicher, dass mein Code im Daten-Nirwana verblichen ist. Und wenn man sich ziemlich sicher ist, dass etwas nicht geht und dann erscheinen die verschwundenen Zeilen plötzlich auf dem Bildschirm, dann ist das wie - ein Wunder.  :D
https://de.wikipedia.org/wiki/Clarkesche_Gesetze
SCNR

Zitat
Ich weiß gar nicht, wie ich dir danken soll! Du bist mein persönlicher FHEM-Held.  ;)
I owe you more than ONE beer,
Danke.
https://forum.fhem.de/index.php/topic,74527.0.html

Gruß,
   Thorsten
Titel: Antw: (Angeblich?) Nicht vorhandene Funktion wird ausgeführt | Fehler in der Matrix?
Beitrag von: t0m am 29 September 2017, 22:22:49
Hi Thorsten,

RNK werde ich vermutlich eher nicht schaffen. Solltest du dich aber mal in Oberfranken aufhalten, dann gib mir Bescheid. Bierauswahl hätten wir hier genug -> http://www.bierland-oberfranken.de/deutsch/brauereien/brauereiportraits_46.html . ;)

Grüße
t0m