Autor Thema: HomeStatus speichern vor Reboot und dann wieder auslesen  (Gelesen 252 mal)

Offline tschimi

  • New Member
  • *
  • Beiträge: 37
HomeStatus speichern vor Reboot und dann wieder auslesen
« am: 08 Oktober 2019, 16:01:42 »
Hi,
mein Problem beim Reboot war immer, das der HomeStatus unter Umständen nicht richtig war. Meine Lösung sieht nun so aus, das ich ihn beim Setzen in eine Datei schreibe und ggf. beim Reboot wieder auslese.
In der 99_myUtils.pm dazu folgendes anlegen:
#---------------------------------------
# write Value
#---------------------------------------
sub writeVal($){
   my ($str) = @_;

my $filename = '/opt/fhem/fhem.ini';
open(FH, '>', $filename) or die $!;
print FH $str;
close(FH);
}

#---------------------------------------
# read Value
#---------------------------------------
sub readVal(){
my $filename = '/opt/fhem/fhem.ini';
open(SRC, '<', $filename) or die $!;
while(<SRC>){
  fhem("$_");
}
close(SRC);
}

Gesetzt wird der HomeStatus etwas so:
define Nacht DOIF ( [HomeStatus] == 2 ) ( {writeVal("set HomeStatus 2")};;)

Und wenn ich reboote, dann wird er wie folgt ausgelesen:
define notify_fhem_reload notify global:INITIALIZED {readVal()}}

Zur Zeit wird immer nur eine Zeile geschrieben - nämlich die an writeVal übergebene. Und es wird gnadenlos überschrieben. Das geht sicher noch besser. Wer Lust hat, kann es ja gerne erweitern :-)

Lg, tschimi

Offline loescher

  • Full Member
  • ***
  • Beiträge: 160
Antw:HomeStatus speichern vor Reboot und dann wieder auslesen
« Antwort #1 am: 09 Oktober 2019, 22:37:28 »
Aber sollte dein "HomeStatus" nicht sowieso in fhem.save gespeichert sein, wenn du FHEM runterfährst?
LG,
Stephan.

Offline frank

  • Hero Member
  • *****
  • Beiträge: 7815
Antw:HomeStatus speichern vor Reboot und dann wieder auslesen
« Antwort #2 am: 11 Oktober 2019, 12:13:49 »
naja, vielleicht bedeutet "reboot" hier: "stecker ziehen".  :)
FHEM: 5.8(SVN) => Pi3(jessie)
IO: CUL433_V3.3(1.00.01B53)|CUL868_V3.3(1.58)|HMLAN(0.965)|HMUSB2(0.967)|HMUART(1.4.1)
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 5559
Antw:HomeStatus speichern vor Reboot und dann wieder auslesen
« Antwort #3 am: 11 Oktober 2019, 12:23:50 »
Dann wir aber obiges Script zum speichern auch nicht ausgeführt ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

 

decade-submarginal