Zustand von Dummy-Devices wird nicht richtig abgespeichert

24 views
Skip to first unread message

Thomas Böhne

unread,
Jan 27, 2011, 1:22:10 AM1/27/11
to FHEM users
Hallo,

ich weiß, dass das Thema Dummy-Device und Statefile hier schonmal
diskutiert wurde, aber irgendwie klappt es bei mir nicht so wie es
soll. Ich habe in meiner fhem.cfg folgendes Device angelegt:

define Liegt_Schnee dummy

und kann den Zustand mit "setstate Liegt_Schnee 0" setzen und in
Scripten abfragen. Nur nach einem neustart von fhem steht der state
immer auf ???. Im Statefile wird übrigens folgendes eingetragen:

setstate Liegt_Schnee 2011-01-24 20:12:31 state 0

das kann ich auch manuell ausführen, aber davon wir der state nicht
richtig gesetzt.

Hat jemand eine Idee, was ich falsch mache?

Grüße
Thomas

Thomas Böhne

unread,
Jan 28, 2011, 2:19:37 PM1/28/11
to FHEM users
Ich habe jetzt das Problem gefunden: im Statefile werden scheinbar nur
Werte ungleich "0" gespeichert. Mir ist nämlich aufgefallen, dass die
"1" immer korrekt im Statefile stand, statt der erwarteten "0" jedoch
nichts.

Ist das irgendwo dokumentiert, bzw. ist das absichtlich so? Macht doch
eigentlich Sinn, auch Werte gleich 0 abspeichern zu können; denn
schließlich werden sie nicht als 0 wieder hergestellt wenn nichts im
statefile steht.

Ich nutze jetzt "set Liegt_Schnee True" und "set Liegt_Schnee false"
und habe die Anfragen entsprechend umgeschrieben. Es sieht so aus, als
wenn jetzt alles funktioniert.

Grüße
Thomas

Thomas Böhne

unread,
Jan 28, 2011, 2:25:05 PM1/28/11
to FHEM users
Mit meiner Erkenntnis kann ich jetzt auch den Thread "Abspeichern von
Werten bei Dummy-Devices" verstehen. Der original Poster hatte
ebenfalls das Problem, dass er eine Variable auf 0 odere 1 setzen
wollte. Alle anderen Poster haben andere States verwendet (ja/nein, on/
off), und damit funktionierte es.

Grüße
Thomas

Boris Neubert

unread,
Jan 28, 2011, 2:56:03 PM1/28/11
to fhem-...@googlegroups.com
Hallo,

weil ich mir für Korrekturem am ECMD-Modul den Kode sowieso gerade
anschaue habe ich auch die Antwort für Dich:

Die zweite Zeile der Strophe

print SFH "setstate $d $defs{$d}{STATE}\n"
if($defs{$d}{STATE} &&
$defs{$d}{STATE} ne "unknown" &&
$defs{$d}{STATE} ne "Initialized");

in WriteStatefile sorgt dafür, daß 0-Werte nicht geschrieben werden.

Rudi, ist das Absicht oder muß da nicht

if(defined($defs{$d}{STATE}) &&

stehen?

Grüße,
Boris

Rudolf Koenig

unread,
Jan 29, 2011, 2:24:51 AM1/29/11
to fhem-...@googlegroups.com
> Rudi, ist das Absicht oder mu� da nicht

>
> if(defined($defs{$d}{STATE}) &&
>
> stehen?

Doch, habs auch eingecheckt.

Thomas Böhne

unread,
Jan 29, 2011, 2:55:42 AM1/29/11
to FHEM users
On Jan 29, 8:24 am, Rudolf Koenig <inf...@koeniglich.de> wrote:
> Doch, habs auch eingecheckt.

Danke, habe es manuell bei mir eingepflegt und die Scripte wieder
zurückgeändert.

Jetzt funktioniert alles wie es soll.

Grüße
Thomas
Reply all
Reply to author
Forward
0 new messages