[gelöst] Zufallszahl als relativen Startpunkt übergeben

Begonnen von Sirel, 11 Mai 2015, 20:38:40

Vorheriges Thema - Nächstes Thema

Sirel

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

Puschel74

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
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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Sirel

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

JoWiemann

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
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Sirel

Hallo Jörg,

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

Viele Grüße,

Max