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

Offline tschimi

  • New Member
  • *
  • Beiträge: 39
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: 205
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.

Online frank

  • Hero Member
  • *****
  • Beiträge: 8095
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: 5925
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

Offline AET_FHEM

  • Full Member
  • ***
  • Beiträge: 241
Antw:HomeStatus speichern vor Reboot und dann wieder auslesen
« Antwort #4 am: 14 Oktober 2019, 12:02:50 »
ja dann könnte man ja immer noch die config nach jedem Status ändern speicher...?!

Offline nils_

  • Hero Member
  • *****
  • Beiträge: 1141
Antw:HomeStatus speichern vor Reboot und dann wieder auslesen
« Antwort #5 am: 16 Oktober 2019, 08:45:12 »
open(FH, '>', $filename) or die $!;na dann hoffen wir mal das er nie das "die" erreicht....



ansonsten würde mich eher interessieren, warum du diesen "work-around" benötigst!?
viele Wege in FHEM es gibt!

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4151
  • Wer anderen eine Bratwurst brät...
Antw:HomeStatus speichern vor Reboot und dann wieder auslesen
« Antwort #6 am: 16 Oktober 2019, 08:58:53 »
ansonsten würde mich eher interessieren, warum du diesen "work-around" benötigst!?

Das würde mich auch interessieren.
Ebenso würde mich interessieren was überhaupt "HomeStatus" ist.
Zusätzlich frage ich mich noch warum nicht die FHEM-internen Funktionen FileRead() und FileWrite() benutzt werden.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

 

decade-submarginal