FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Sirel am 11 Mai 2015, 20:38:40

Titel: [gelöst] Zufallszahl als relativen Startpunkt übergeben
Beitrag von: Sirel am 11 Mai 2015, 20:38:40
Hallo zusammen,

ich würde gerne meine Lampe ab einem bestimmten Zeitpunkt zufällig abschalten lassen - allerdings nur, sofern ich im Home state "absent" bin. Dazu habe ich mir folgendes überlegt:

*23:00 {
if (value("rr_max") eq "absent" || value("rr_max") eq "gone")
{
my $range_std = 0;
my $range_min = 1;
my $zfz1 = int(rand($range_std));
my $zfz2 = int(rand($range_min));
my $zfz = sprintf("%02d:%02d", $zfz1, $zfz2);
fhem (define lichtaus at +".$zfz set wz_licht off")
}
}

Leider erhalte ich nur eine lange Fehlermeldung.

Weiß jemand Rat?

Vielen Dank vorab,

Max
Titel: Antw:Zufallszahl als relativen Startpunkt übergeben
Beitrag von: Puschel74 am 11 Mai 2015, 21:07:50
ZitatLeider erhalte ich nur eine lange Fehlermeldung.
ZitatWeiß jemand Rat?
Auch wenn es dir nicht gefällt:
http://forum.fhem.de/index.php/topic,16311.0.html (http://forum.fhem.de/index.php/topic,16311.0.html)
Mit ersterem kann niemand etwas anfangen - poste die Fehlermeldung.

Niemand wird deinen Code in seine Installation einbauen um zu schauen WELCHE Fehlermeldung kommt.
value sollte mWn Value heissen - FHEM ist case sensitiv (es beachtet Gross- Kleinschreibung).

Weiters wundert mich diese Zeile etwas:
fhem (define lichtaus at +".$zfz set wz_licht off")
Ich vermute die Meldung bezieht sich darauf (oder bereits auf die if-Abfrage).
Aber da meine Glaskugel Ferien hat musst du uns schon helfen.
Aber ist nicht schlimm - lies dir den Link durch und dann poste was noch fehlt.
Titel: Antw:Zufallszahl als relativen Startpunkt übergeben
Beitrag von: Sirel am 11 Mai 2015, 21:27:54
Hallo Puschel,

danke für die schnelle Antwort. Das "Value" mit "V" hat schon mal die Zeilen an Fehlermeldung deutlich reduziert. Jetzt steht im Logfile nur noch

licht_aus_zufall: Bareword "at" not allowed while "strict subs" in use at (eval 3999) line 9.

Ich vermute, die Übergabe der Variablen $zfz funktioniert nicht richtig. Ersetze ich die Variable bspw. durch 00:05:00 funktioniert das ausschalten der Leuchte 5 Min. später ohne Probleme.

Kann man den Wert, welchen die Variable hat/hatte, irgendwie auslesen?

Danke,
Max
Titel: Antw:Zufallszahl als relativen Startpunkt übergeben
Beitrag von: JoWiemann am 11 Mai 2015, 21:55:53
Probiere doch mal:

fhem ("define lichtaus at $zfz set wz_licht off")

denn bei:

fhem (define lichtaus at +".$zfz set wz_licht off")

wird versucht define, lichtaus, at als Perl Befehle aufzulösen. Das Funktionsargument für fhem() ist ein vollständiger Befehls-STRING.

Grüße Jörg
Titel: Antw:Zufallszahl als relativen Startpunkt übergeben
Beitrag von: Sirel am 12 Mai 2015, 17:18:00
Hallo Jörg,

allerbesten Dank - das ist die Lösung! Jetzt läuft alles wie es soll!

Viele Grüße,

Max