Wie startet man ein eigenes perl Skript gleich nach dem Start von FHEM

Begonnen von boeho, 02 April 2014, 11:59:59

Vorheriges Thema - Nächstes Thema

boeho

 Hallo,
ich starte kurz nach Mitternacht einen  at, der bestimmte dummy auswertet und daraus bestimmte andere dummy setzt. Das ist weg, wenn ich danach shutdown+restart mache. Wie kann ich das zB in die ,startfhem' einbinden?  Oder hat jemand eine andere Idee?
(auf Ftritzbox)

Danke schon mal vorab

marvin78


betateilchen

#2
noch einfacher: nach dem Setzen der dummy-Werte im at einfach die Funktion "WriteStatefile" aufrufen.

ZitatDas ist weg, wenn ich danach shutdown+restart mache.

Was genau ist weg?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

det.

Hallo boeho,
so Sachen sind wirklich weg nach einmaliger Ausführung. Das ging mir beim Initialisieren meiner 1-wire LCD auch so. Dauerhafte Abhilfe: diesen Teil des Code in eine z.B. myfhem.cfg auslagern und diese mit include in der fhem.cfg aufrufen. Schon gehts.
LG
det.

marvin78

Was sind "so Sachen"? Weg sind ats nach einmaliger Ausführung nur, wenn man sie nicht richtig definiert hat.

boeho

Erst einmal Dank für die schnellen Antworten.
Ein erster Teil geht schon mal, die Dummys. Habe mir mit festen Namen neue Dummy für die Zwischenspeicherung angelegt.
Nur meine AT werden gelöscht.
Habe folgendes Szenario: Kurz nach Mitternacht (zu fester Zeit) wird ein at gestartet, der tages-, kalender- und temperaturabhängig Heizungsintervalle liest, deren Startzeitpunkt bestimmt und dann zu genau diesen Zeitpunkten die entsprechenden Heizungsaktoren anschaltet/kontrolliert.
Diese neuen at sind nur für diesen einen Zeitpunkt gedacht. Am nächsten Tag kann das scho anders sein.
Das soll vermeiden, dass wenn etwa alle 15 Minuten die Heizung mit einem at kontrolliert wird, die ersten (bis zu 14) Minuten keine Reaktion erfolgen kann. Ich denke man kann dann den Vorlauf besser planen. Es sind 7 Heizkreise mit 2 bis 5 Heizperioden. deshalb die Variabilität.
Ich muss einen Weg finden den ersten at nach einem shutdown neu zu starten, der Rest geht dann wie geplant.
Ich hatte gehofft das in der startfhem ein 'callback' enthalten ist, was man nach dem Start benutzen kann. Oder kann das eine Anregung sein?
So etwas wie my_99Start.pl ? Das wäre aus meiner Sicht ideal.

boeho

Hallo det.
kannst du mal ein Beispiel für eine solche cfg und das INclude-Statement hir einstellen? Danke.
Hat die my.cfg das Format der fhem.cfg (also ;; und Backslash) oder Perl?
Danke schon mal vorab.

det.

Zitat von: marvin78 am 02 April 2014, 12:27:19
Was sind "so Sachen"? Weg sind ats nach einmaliger Ausführung nur, wenn man sie nicht richtig definiert hat.
Schlauberger?


@ boeho
Schau mal da: http://forum.fhem.de/index.php/topic,9124.msg49576.html#msg49576
LG
det.

marvin78

@det.: Da ich annehme, dass die ats beim FHEM-Start ausgeführt werden sollten (in deinem alten Beitrag), ist sowas wie folgendes wohl sinnvoller, als so einen Klimmzug zu machen, wie eine cfg-Datei zu includen:


define notify_global notify global:INITIALIZED {
fhem("define LCD_off at +00:00:01 set OWX_LCD lcd off");
fhem("define LCD_on at +00:00:02 set OWX_LCD lcd on");
}


Nach Ausführung wird hierbei das at zwar auch "gelöscht" aber auch bei jedem Start neu ausgeführt. Falls es als Kommando gemacht werden soll, würde ich eine Funktion in der myUtils bauen -> Dummy -> notify...

det.

@ marvin78
Wirklich schlau, da hast du Recht! Soweit war ich damals noch nicht in der Materie und mit dem include hat es bis heute perfekt funktioniert. Ist aber sicher für boeho einen Versuch wert.
LG
det.