FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Kornelius777 am 27 November 2025, 08:32:46

Titel: [GELÖST] Kommando in fhem ausführen nach reboot?
Beitrag von: Kornelius777 am 27 November 2025, 08:32:46
Hallo zusammen,

täglich um 13:00 Uhr läuft bei mir ein at, das tagesaktuell die Rolladensteuerung berechnet (abhängig vom Sonnenstand und mit ein paar Random-Zeiten verändert).
Der at-Befehl generiert dann weitere at-Befehle, die nur an diesem Tag Gültigkeit haben.

Wenn (warum auch immer) nach 13:00 Uhr der fhem-Server neu startet, sind die generierten Rolladen-Runter-Befehle verschwunden.
Welche Möglichkeiten habe ich?
Gibt es eine Möglichkeit, beim Reboot ein Kommando laufen zu lassen? (analog zum "@reboot" in der crontab?)
Kann ich die generierten at-Befehle irgendwie persistieren?
Wie kann ich dafür sorgen, dass die Rolladensteuerung auch nach einem Reboot noch funktioniert?

Danke für eure Hilfe!

Titel: Aw: Kommando in fhem ausführen nach reboot?
Beitrag von: Beta-User am 27 November 2025, 08:53:07
Schau dir das einzige in der Basis-cfg enthaltene notify an und die "set"Befehle für at.
Titel: Aw: Kommando in fhem ausführen nach reboot?
Beitrag von: betateilchen am 27 November 2025, 08:53:30
Zitat von: Kornelius777 am 27 November 2025, 08:32:46Kann ich die generierten at-Befehle irgendwie persistieren?
Wie kann ich dafür sorgen, dass die Rolladensteuerung auch nach einem Reboot noch funktioniert?

Die errechneten zusätzlichen at-devices müssen in der Konfiguration gespeichert werden, damit sie auch nach einem Reboot wieder zur Verfügung stehen. Du musst also am Ende der Berechnung ein "save config" ausführen.
Titel: Aw: Kommando in fhem ausführen nach reboot?
Beitrag von: Kornelius777 am 27 November 2025, 10:40:06
Zitat von: betateilchen am 27 November 2025, 08:53:30Die errechneten zusätzlichen at-devices müssen in der Konfiguration gespeichert werden, damit sie auch nach einem Reboot wieder zur Verfügung stehen. Du musst also am Ende der Berechnung ein "save config" ausführen.

Also innerhalb des Perl-Teils:
fhem("save config");
Richtig?
Titel: Aw: Kommando in fhem ausführen nach reboot?
Beitrag von: JoWiemann am 27 November 2025, 10:50:32
Hallo,

Du könntest auch ein notify auf global:INITIALIZED definieren.

Grüße Jörg
Titel: Aw: Kommando in fhem ausführen nach reboot?
Beitrag von: Beta-User am 27 November 2025, 10:51:54
Zitat von: Kornelius777 am 27 November 2025, 10:40:06
Zitat von: betateilchen am 27 November 2025, 08:53:30Die errechneten zusätzlichen at-devices müssen in der Konfiguration gespeichert werden, damit sie auch nach einem Reboot wieder zur Verfügung stehen. Du musst also am Ende der Berechnung ein "save config" ausführen.

Also innerhalb des Perl-Teils:
fhem("save config");
Richtig?
Das kommt drauf an...
Siehe commandref zu at.

Vielleicht zeigst du das at, dann ist es eventuell einfacher zu helfen.

Das wäre aber nicht die Lösung zu der von dir gestellten Fragen im Thread -Titel😜.

Siehe Antwort von JoWiemann eben und mein Hinweis von vorhin.
Titel: Aw: Kommando in fhem ausführen nach reboot?
Beitrag von: betateilchen am 27 November 2025, 10:57:54
Zitat von: Beta-User am 27 November 2025, 10:51:54Das wäre aber nicht die Lösung zu der von dir gestellten Fragen im Thread -Titel😜.

Siehe Antwort von JoWiemann eben und mein Hinweis von vorhin.

Aber Eure Antworten gehen halt komplett am eigentlichen Problem und an den klar gestellten Fragen vorbei, die im Eingangsbeitrag sehr genau gestellt sind. Man sollte vor dem Antworten nicht nur den Titel gelesen haben, nur um "als Erster" eine Antwort zu schreiben, egal, ob sie passt oder nicht.

Zitat von: Kornelius777 am 27 November 2025, 10:40:06Also innerhalb des Perl-Teils:
fhem("save config");
Richtig?

Ja, so kannst Du das machen.

(Für die hier zu erwartenden, üblichen 2-3 Klugscheißer:
ja, es würde bei einmalig auszuführenden at-devices auch ausreichen, das statefile zu sichern. Aber für Anfänger bevorzuge ich Standardverfahren.)
Titel: Aw: Kommando in fhem ausführen nach reboot?
Beitrag von: Beta-User am 27 November 2025, 11:26:02
Hmm, mal abgesehen von den im Detail unbekannten Wirkungen des initialen at sollte der Weg über das global-notify und damit ausgeführte at-execNow auch zum Ziel führen.
Titel: Aw: Kommando in fhem ausführen nach reboot?
Beitrag von: Kornelius777 am 27 November 2025, 11:33:39
Zitat von: Beta-User am 27 November 2025, 11:26:02Hmm, mal abgesehen von den im Detail unbekannten Wirkungen des initialen at sollte der Weg über das global-notify und damit ausgeführte at-execNow auch zum Ziel führen.

Ja - das käme meiner ursprünglichen Frage nach einem "Autostart" tatsächlich am Nächsten.
Aber auch der Hinweis mit dem "save config" war hilfreich.

Danke euch allen für die schnelle und kompetente Beantwortung!
Titel: Aw: Kommando in fhem ausführen nach reboot?
Beitrag von: betateilchen am 27 November 2025, 11:34:31
ZitatWenn (warum auch immer) nach 13:00 Uhr der fhem-Server neu startet, sind die generierten Rolladen-Runter-Befehle verschwunden.

Die Befehle (aka at-devices) verschwinden, wenn/weil sie vor dem Neustart nicht in der Konfiguration gespeichert wurden.

Und WENN sie gesichert sind, braucht es weder ein notify noch ein execNow.
Titel: Aw: [GELÖST] Kommando in fhem ausführen nach reboot?
Beitrag von: Beta-User am 27 November 2025, 11:39:12
...dieses at:
Zitattäglich um 13:00 Uhr läuft bei mir ein at,
Titel: Aw: [GELÖST] Kommando in fhem ausführen nach reboot?
Beitrag von: Kornelius777 am 27 November 2025, 11:51:09
Ich habe jetzt ganz einfach Gürtel UND Hosenträger genommen:
Das at, das die täglichen Rolladen-Bewegungen definiert (also all die anderen at herstellt), hat jetzt ein "save config" am Ende, und zusätzlich habe ich das notify auf global:INITIALIZED eingerichtet.
Da im "übergeordneten" at pro Rolladen folgendes drinsteht:
if(exists($defs{'at_Jalousie_Kueche_Runter'})) {
 fhem("delete at_Jalousie_Kueche_Runter");
 }
ist das Ganze auch unschädlich.

Nochmal: Danke für eure Hilfe!
Titel: Aw: [GELÖST] Kommando in fhem ausführen nach reboot?
Beitrag von: Beta-User am 27 November 2025, 11:54:40
Zitat von: Kornelius777 am 27 November 2025, 11:51:09 if(exists($defs{'at_Jalousie_Kueche_Runter'})) {
 fhem("delete at_Jalousie_Kueche_Runter");
 }
ist das Ganze auch unschädlich.

Nochmal: Danke für eure Hilfe!
"defmod at_Jalousie_Kueche_Runter at ..."
als besser lesbare Alternative ist bekannt?
Titel: Aw: [GELÖST] Kommando in fhem ausführen nach reboot?
Beitrag von: Kornelius777 am 27 November 2025, 11:58:10
Zitat von: Beta-User am 27 November 2025, 11:54:40"defmod at_Jalousie_Kueche_Runter at ..."
als besser lesbare Alternative ist bekannt?

Huch? Jetzt komme ich nicht ganz mit.

Meine Zeile LÖSCHT ein "at", falls es bereits definiert ist.
Dein Vorschlag DEFINIERT das at.

...oder habe ich jetzt irgendwas komplett falsch verstanden?
Titel: Aw: [GELÖST] Kommando in fhem ausführen nach reboot?
Beitrag von: Kornelius777 am 27 November 2025, 12:01:01
Ah - habe verstanden.
define vs defmod.

Nee - hatte ich noch nicht auf dem Schirm.
Danke!