Hallo zusammen.
Jetzt hab ich auch mal ein Problem wo ich auf der Leitung stehe.
Ich bekomme es einfach nicht hin per notify, welches später mal auf einen dummy lauschen soll, den save Befehl von fhem abzusetzen.
Zum Testen hab ich mir vorerst folgendes angelegt.
define test_schalter dummy
attr test_schalter webCmd on:off
define nt_save_config notify test_schalter.* {fhem("save")}
Der notify reagiert auf das Schalten des test_schalters nur der "save" wird leider nicht abgesetzt.
Testhalber hab ich den notify mal nach
define test_schalter dummy
attr test_schalter webCmd on:off
define nt_save_config notify test_schalter.* {fhem("set test_schalter off")}
umgebaut um zu schauen ob ich nicht etwas an fhem("BEFEHL") falschgemacht habe.
Aber der funktioniert sauber. Kaum ist der Schalter an reagiert der notify und knippst ihn wieder aus.
Dieses
fhem("save")
will er aber nicht schlucken.
Einen Eingabe des save in die Kommandozeile von Fhem funktioniert.
Hat einer eine Idee was ich falsch mache? Gibt es bestimmte fhem Befehle die man nicht mit notify, at oder ähnlichen absetzen kann?
Es könnte sein, dass "save" tatsächlich besonders ist, wie von dir vermutet. Es gab da mal eine Diskussion, inwieweit man ein script-save noch zulassen soll, weil manche Module davon Gebrauch gemacht hatten und die allgemeine Überzeugung war, dass ein save nie ohne ausdrückliche Anweisung des users erfolgen sollte.
Von daher würde ich mir an deiner Stelle auch ernsthaft überlegen, ob ich das wirklich brauche, zumal FHEMWEB ja die entsprechende Schaltfläche schon bietet.
Ansonsten ist mir nicht klar, warum du im Ausführungsteil überhaupt auf die perl-Ebene wechselst. Sollte auch so gehen
define nt_save_config notify test_schalter.* set test_schalter off
in die 99_myUtils.pm:
######## Sicherung von fhem.cfg bei save ############
sub
backup_fhemcfg() {
my $backup_path = '/opt/fhem/backup/';
my $date = strftime '%Y%m%d_%H%M%S', localtime;
copy("/opt/fhem/fhem.cfg",$backup_path.$date."fhem.cfg");
Log 1, "Backup fhem.cfg: ".$backup_path.$date."fhem.cfg";
}
1;
Ein notify:
defmod ntf_save_sick_config notify global:SAVE {backup_fhemcfg()}
attr ntf_save_sick_config group Backup
attr ntf_save_sick_config room SYSTEM
attr ntf_save_sick_config verbose 0
stammt nicht von mir, hab ich hier aus dem Forum "geklaut"
Ja, ein backup mag helfen (wenn man nicht configDB verwendet, das solche Klimmzüge weitgehend obsolet macht)...
Hier ging es aber nicht um backup, sondern um "save", oder?
Zitat von: Beta-User am 27 Februar 2018, 10:06:45
Hier ging es aber nicht um backup, sondern um "save", oder?
Naja, aus "Mit notify fhem.cfg sichern" lese ich ein Backup raus.
save = speichern,
backup = sichern.
:-)
@Frank_Huber:
Ich nehme meinen Einwand zurück. ::)
@AkGuru:
Was willst du also erreichen? Das was der Thread-Titel aussagt (backup), oder das, was du versucht hast zu vercoden (save)?
Hallo alle fleisigen Helfer.
Mir geht es hierbei um save und nicht um backup.
Ich wollte per notify die fhem.cfg speichern lassen.
Welcher Wunsch steckt dahinter:Ich hab 2 Pi's die über FHEM2FHEM verbunden sind. Auf einem davon liegt mein Frontend (FTUI).
Da ich gerne optimiere und rumspiele und ab und zu dabei vergesse die fhem.cfg zu speichern gibt es auf meinem Frontend eine Anzeige
die mir den Status darstellt ob die fhem.cfg gespeichert wurde oder nicht. Was super funktioniert.
Jetzt wollte ich das ganze noch etwas optimieren und dachte mir wie schön es doch wäre gleich vom Fronend aus mit einem Fingertip
die fhem.cfg zu sichern.
Also dachte ich mir folgendes
- auf speichern tippen
- ein dummy wird gesetzt
- notify reagiert auf dieses dummy speichert die fhem.cfg und setzt dummy zurück
Zitat von: Beta-User am 27 Februar 2018, 09:36:49
Es könnte sein, dass "save" tatsächlich besonders ist, wie von dir vermutet. Es gab da mal eine Diskussion, inwieweit man ein script-save noch zulassen soll, weil manche Module davon Gebrauch gemacht hatten und die allgemeine Überzeugung war, dass ein save nie ohne ausdrückliche Anweisung des users erfolgen sollte.
Von daher würde ich mir an deiner Stelle auch ernsthaft überlegen, ob ich das wirklich brauche, zumal FHEMWEB ja die entsprechende Schaltfläche schon bietet.
-> Ja das ist richtig ein save nie ohne ausdrückliche Anweisung des users erfolgen. Da bin ich voll bei dir. Aber in dem Fall bin ich der User und ich tippe explizit drauf.
Nur möchte ich diese schöne komfortable Schaltfläche auch auf meinem Frontend.
Zitat von: Beta-User am 27 Februar 2018, 09:36:49
Ansonsten ist mir nicht klar, warum du im Ausführungsteil überhaupt auf die perl-Ebene wechselst. Sollte auch so gehen
define nt_save_config notify test_schalter.* set test_schalter off
-> Ja das würde auch gehen. Hatte ich erst erst versucht mit dem save.
define nt_save_config notify test_schalter.* save
aber das brachte nicht den gewünschten Erfolg und daher hab ich es mit
define nt_save_config notify test_schalter.* {fhem("save")}
versucht was auch nicht ging. Und dann hab ich den fehler in der Perlebene vermutet (vergessenes Semikolon etc.)
Man nimmt ja gerne was wo man weis, dass es geht, zum Testen. Daher der Test mit dem "schalter" auf Perlebene.
define nt_save_config notify test_schalter.* {fhem("set test_schalter off")}
Aber das funktionierte ohne Probleme. Am Perl lag es also nicht.
Der "save" will aber leider nicht.
Schau mal hier:
https://forum.fhem.de/index.php/topic,81543.0.html (https://forum.fhem.de/index.php/topic,81543.0.html)
Sag' ich doch, da war was.
Sofern nicht auch hier dieser Schutzmechanismus zugeschlagen hat, sieht mir das auch nach einem speziellen Thema bei FTUI aus. Vielleicht verschiebst du den Thread dahin und änderst den Titel entsprechend (Schaltfläche zum Speichern der fhem.cfg).
Suchen dort bringt übrigens folgendes:
https://forum.fhem.de/index.php/topic,65491.msg566917.html#msg566917 (https://forum.fhem.de/index.php/topic,65491.msg566917.html#msg566917)
https://forum.fhem.de/index.php/topic,65374.0.html (https://forum.fhem.de/index.php/topic,65374.0.html)
Vielleicht hilft das ja schon...
Zitat von: CQuadrat am 27 Februar 2018, 14:07:48
Schau mal hier:
https://forum.fhem.de/index.php/topic,81543.0.html (https://forum.fhem.de/index.php/topic,81543.0.html)
Ah danke für den Hinweis. Und ich hab gesucht wie ein Blöder.
Zitat von: Beta-User am 27 Februar 2018, 14:15:18
Sag' ich doch, da war was.
Sofern nicht auch hier dieser Schutzmechanismus zugeschlagen hat, sieht mir das auch nach einem speziellen Thema bei FTUI aus. Vielleicht verschiebst du den Thread dahin und änderst den Titel entsprechend (Schaltfläche zum Speichern der fhem.cfg).
Suchen dort bringt übrigens folgendes:
https://forum.fhem.de/index.php/topic,65491.msg566917.html#msg566917 (https://forum.fhem.de/index.php/topic,65491.msg566917.html#msg566917)
https://forum.fhem.de/index.php/topic,65374.0.html (https://forum.fhem.de/index.php/topic,65374.0.html)
Vielleicht hilft das ja schon...
Danke Beta-User.
Dies kenne ich und mach das auch so ähnlich nur halt über ein Javascriptfunktion von FTUI wo man Commands mit absetzen kann. Aber das funktioniert nur auf dem "Haupt-Pi" wo auch FTUI läuft.
Für den anderen "Neben-Pi" geht das leider nicht. Da kann man aber die Fuktion nutzen um einen Dummy auf den Haupt-Pi zu triggern. Dann FHEM2FHEM und dann bin ich leider wieder beim notify für den "Neben-Pi" der auf das getriggerte dummy reagieren soll und den "save" absetzt.
So hab mir mal die CommandSave in der fhem.pl angeschaut.
Jetzt wird's mir klar. Nur wenn autosave in global an ist funktioniert der save.
Nun gut dann werd ich mir wohl was eignes in die myUtils basteln.
Möchte ungern den autosave dauerhaft anhaben.
Danke nochmal an alle.