FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: Jörg am 22 Januar 2017, 10:50:12

Titel: feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: Jörg am 22 Januar 2017, 10:50:12
Hallo zusammen,
da ich im Betrieb von FHEM mehrere Notifys und Dummys dirch ein Modul erstelle, gibt es nach einem Neustart von FHEM im Log immer Fehlermeldungen, dass das Dummy nicht existiert:

Please define SolarSun first
Please define SolarSwitch1 first
Please define SolarSwitch2 first
Please define SolarSwitch3 first

Die sollten also vor dem Beenden gelöscht werden.
Das ist jetzt nichts schlimmes, was den Betrieb von FHEM stört, aber muß nicht sein.


Daher habe ich ein Modul mit einer Funktion geschrieben, die das erledigt. Das Modul habe ich "99_exit_command.pm" getauft und wird mit "FhemLastCommand();" in der fhem.pl aufgerufen.

In dem Modul braucht man nur

   fhem ("delete SolarSun") if($defs{"SolarSun"});
   fhem ("delete SolarSwitch1") if($defs{"SolarSwitch1"});
   fhem ("delete SolarSwitch2") if($defs{"SolarSwitch2"});
   fhem ("delete SolarSwitch3") if($defs{"SolarSwitch3"});

eintragen, dann werden nach jedem Neustart von FHEM, oder des Rechners die Dummys vorher noch gelöscht.


Ich habe das Modul seit anfang Dezember in Gebrauch und getestet. Wenn da Interesse besteht, stelle ch es gerne zu verfügung.


LG
Jörg
Titel: Antw:feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: igami am 22 Januar 2017, 10:57:58
Für das automatische erstellen von Devices habe ich auch ein Modul geschrieben: archetype (https://forum.fhem.de/index.php/topic,53402.0.html)
Titel: Antw:feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: justme1968 am 22 Januar 2017, 11:08:10
ein modul kann eine ShutdownFn implementieren und user code kann ein notify auf global:SHUTDOWN implementieren. beides wird vor einem shutdown aufgerufen.

gruss
  andre
Titel: Antw:feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: betateilchen am 22 Januar 2017, 12:31:15
Devices, die man nur während der Laufzeit braucht, kann man nach ihrer Erzeugung auch einfach als VOLATILE TEMPORARY kennzeichnen, dann werden weder das device noch seine Attribute abgespeichert.

Titel: Antw:feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: Amenophis86 am 26 Januar 2017, 08:22:38
Zitat von: betateilchen am 22 Januar 2017, 12:31:15
Devices, die man nur während der Laufzeit braucht, kann man nach ihrer Erzeugung auch einfach als VOLATILE kennzeichnen, dann werden weder das device noch seine Attribute abgespeichert.

Meinst du damit das hier: https://fhem.de/commandref.html#mark ?? Kannte ich auch noch nicht. Gut zu wissen :)
Titel: Antw:feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: betateilchen am 26 Januar 2017, 08:37:41
Ja, das meinte ich. Und das konntest Du auch noch nicht kenne, weil ich das Modul erst nach meinem Hinweis hier im Thread geschrieben und bereitgestellt habe  8)

Es war damit zu rechnen, dass irgendjemand danach fragt, wie man das macht, deshalb wollte ich es so einfach wie möglich (quick&dirty) gestalten.
Es gibt übrigens auch das Gegenstück "unmark" ;)
Titel: Antw:feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: Benni am 26 Januar 2017, 09:13:27
Zitat von: betateilchen am 26 Januar 2017, 08:37:41
Es gibt übrigens auch das Gegenstück "unmark" ;)

In der Commandref wird für unmark folgendes angezeigt:


mark

unmark <devspec> <TEMPORARY|VOLATILE>


sollten die beiden eigentlich nicht unter Befehle aufgelistet werden?

Und was ist der unterschied zwischen VOLATILE und TEMPORARY?

Titel: Antw:feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: betateilchen am 26 Januar 2017, 09:27:03
Zitat von: Benni am 26 Januar 2017, 09:13:27
In der Commandref wird für unmark folgendes angezeigt:

Wahrscheinlich beim Kopieren passiert, schau ich mir heute abend an.

Zitat von: Benni am 26 Januar 2017, 09:13:27
Und was ist der unterschied zwischen VOLATILE und TEMPORARY?

VOLATILE wird in das statefile gespeichert (z.B. einmal auszuführende at)
TEMPORARY wird gar nicht gespeichert (z.B. die im laufenden Betrieb entstehenden FHEMWEB Instanzen)

Titel: Antw:feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: Amenophis86 am 26 Januar 2017, 10:27:41
Zitat von: betateilchen am 26 Januar 2017, 08:37:41
Ja, das meinte ich. Und das konntest Du auch noch nicht kenne, weil ich das Modul erst nach meinem Hinweis hier im Thread geschrieben und bereitgestellt habe  8)

Das erklärt es. :)

unmark hatte ich dann auch gesehen. Ich würde vielleicht noch bei mark auf unmark hinweisen, nicht jeder der User schafft vermutlich es zu finden :D Weiterhin fänd ich den Hinweis bezüglich der Unterschiede auch im der Commandref hilfreich. Hatte ihn auch bis zu dem Post von dir gesucht, aber nicht gefunden.

Ansonsten top für die Umsetzung. Vielen Dank.
Titel: Antw:feature request: Letzte Kommandos beim beenden von FHEM
Beitrag von: betateilchen am 26 Januar 2017, 10:31:42
Ich will um diese Funktionalität eigentlich gar keinen großen Wirbel machen, die Anwendung kann in bestimmten Fällen das gesamte Speicherkonzept von fhem kontrakarieren. Eigentlich ist es ein Feature für Leute, die 100% wissen, was sie tun. Und diese Leute bräuchten das Modul eigentlich gar nicht, um das umzusetzen.