Wie kann ich Startwert für Aktoren Verriegelungen bei einem Neustart von FHEM definieren?
Möchte beim Neustart von FHEM set Befehle am Anfang der fhem config definieren, damit die Programstarts ausgeführt werden können.
Ohne diese set Befehle werden die Programme mit den Verriegelungen nicht gestartet.
set befehle gehören nicht in die config.
ich glaube nicht das sich irgendjemand vorstellen kannst was du meinst und vor hast.
gruss
andre
ZB:
([06:20|12345] and [Freigabe_Urlaub] eq "Aus" and [WSL] eq "off") (set WSL on) DOELSEIF ([WSL] eq "on")(set WSL off)
Die Verriegelung ist notwendig um kein Senden herzurufen wenn eine Bedingung aktualisiert wird.
Dies ist ein vereinfachtes Beispiel.
Wenn FHEM noch keine Statusinfos gespeichert hat oder aus irgend einem Grund verloren gegangen sind, wird diese Funktion nicht mehr ausgeführt werden.
Erst wenn WSL einen on oder off Zustand zugewiesen wird.
Ich hoffe so ist es verständlich.
Diese Startbedingung kann ich natürlich auch in der *.pm Datei ablegen.
Hmm. Vieleicht habe ich Deine Frage ja überhaupt nicht verstanden aber was fehlte an meinem Hinweis hier https://forum.fhem.de/index.php/topic,53468.msg451899.html#msg451899 (https://forum.fhem.de/index.php/topic,53468.msg451899.html#msg451899) auf INITIALIZED zu triggern? Darin kannst Du doch machen was Du willst?
Gruß, Norbert
Das Problem ist das der Befehl aber bei einem Neustart von FHEM nicht ausgeführt werden.
Die Aktoren werden nicht auf den eingetragenen Wert gesetzt.
global:INITIALIZED {(set Biotop Aus,set BBLD off)}
Bekommst du keine Fehlermeldungen wenn du versuchst
{(set Biotop Aus,set BBLD off)}
auszuführen?
Die geschweiften Klammern geben an, dass es sich um Perl code handelt, aber es sind FHEM Befehle.
Ja ich bekomme eine Fehlermeldung.
Wie muss ich die Definition sonst innerhalb der geschweiften Klammern ausführen?
Entweder du lässt die Klammern weg, da du ja kein Perl brauchst, oder du musst wieder auf die FHEM ebene gehen. Ist in der commandref unter "Perl specials" beschrieben.
Danke für die Info.
Jetzt klappt es.
Nach mehreren Versuchen und löschen der fhem.save Datei musste ich feststellen das trotzdem die Init Werte nicht zugeteilt werden.
define notify_GlobalInitialized notify global:INITIALIZED set Sun_RiseSet_Timer
Es werden aber auch keine Fehlermeldungen im LOG ausgegeben.
Habe das global:INITIALIZED als letzten Teil definiert, damit die vorgelagerten Programmschritte dies auch mit bekommen.
Ist hierzu noch eine Verzögerung notwendig damit die vorgelagerten Programmschritte das mit bekommen?
Was ist
Sun_RiseSet_Timer denn für ein Objekt? Worauf soll es denn gesetzt werden?
Ich verstehe auch nicht was du meinst mit
Zitatdamit die vorgelagerten Programmschritte dies auch mit bekommen
Das INITIALIZED Event wird vor allen anderen Events ausgelöst.
Gruß, Norbert
Bitte die Grundlagen lernen, set in der commandref studieren, das Einsteiger-PDF lesen und dann ncoh mal probieren. Du musst schon wissen auf welchen Wert das Device gesetzt werden soll und vor allem, was du da tust. Damit man dir helfen kann, musst du dein Problem besser beschreiben. Wie du siehst, wird hier ziemlich viel geraten. Das liegt meistens an der Fragestellung.