FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: boklu am 21 April 2018, 15:04:27

Titel: internalTimer
Beitrag von: boklu am 21 April 2018, 15:04:27
Moin,

ich schreibe gerad ein Modul zur Sonnen Simmulation für Terrarien. Dafür benötige ich einen Timer. Leider funktioniert der nicht so wie beschrieben.
In der Define steht folgendes um den Timer erstmalig zu starten:

Zitat
  my $addSec = 60 - $sec + 10;  # soll in jeder Minute bei Sec 10 ausgeführt werden
  RemoveInternalTimer($hash);
  InternalTimer(gettimeofday() + $addSec, "SunSimulation_SunTimer" ,$hash, 0);

Leider startet der Timer nicht.
Woran könnte das liegen?

MfG

Boklu
Titel: Antw:internalTimer
Beitrag von: mumpitzstuff am 21 April 2018, 15:31:35
Du müsstest du erst mal die aktuelle Zeit in Sekunden auf ganze Minuten aufrunden und dann 10 drauf rechnen. Und je nachdem was in $sec drin steht, könnte $addSec negativ werden und dein timer wird niemals ausgeführt.
Titel: Antw:internalTimer
Beitrag von: betateilchen am 21 April 2018, 15:40:00
Titel: Antw:internalTimer
Beitrag von: boklu am 21 April 2018, 19:46:38
Nein, das läst sich nicht per at oder DOIF machen.
Titel: Antw:internalTimer
Beitrag von: CoolTux am 21 April 2018, 20:09:23
Schau Dir doch das at Modul an, da ist sowas gelöst worden.
Titel: Antw:internalTimer
Beitrag von: boklu am 21 April 2018, 20:17:35
Nein, ist es nicht!
Es geht darum eine Lampe in einen Zeitfenster inkl. Mittagspause um Überhitzung vorzubeugen, in einen züfälligen Intervall über dem Tag immer wieder ein und auszuschalten.
Dabei werden die minimal und maximal Einschaltzeit sowie die minimal und maximale Ausschaltzeit berücksichtigt.
Das Zeitfenster sowie die Intervalle verändert sich über das Jahr.

Habe den Fehler gefunden. War natürlich meiner! :-(
Titel: Antw:internalTimer
Beitrag von: Damian am 21 April 2018, 22:24:15
Zitat von: boklu am 21 April 2018, 19:46:38
Nein, das läst sich nicht per at oder DOIF machen.

Da irrst du dich, ich würde tippen ein 10-Zeiler mit DOIF-Perl.

Es kann aber nicht schaden sich in die Programmierung von Modul einzuarbeiten.
Titel: Antw:internalTimer
Beitrag von: KernSani am 21 April 2018, 23:00:56
Zitat von: boklu am 21 April 2018, 20:17:35
Habe den Fehler gefunden. War natürlich meiner! :-(
EIne kurze Beschreibung der Lösung + [Gelöst] vor das Subject des ersten Posts wäre schön :-)
Titel: Antw:internalTimer
Beitrag von: Prof. Dr. Peter Henning am 22 April 2018, 02:26:43
Nur abgesehen davon, dass es dem Fragesteller wohl nicht ganz klar ist, dass dies keine sinnvolle "Sonnensimulation" ist, und wohl auch nicht, was es mit "zufälligen Intervallen" auf sich hat: 10 Zeilen.

LG

pah
Titel: Antw:internalTimer
Beitrag von: boklu am 22 April 2018, 16:29:55
Doch das ist dem Fragesteller klar.
Evtl. verstehe ich nur etwas anderes unter Sonnenscheinsimulation.
Es ist etwas sehr spezielles für Hochlandreprilien.
Das das mit einem DOIF-10zeiler glaube ich nicht.
Ich lasse mich aber gerne eines Besseren belehren.

Mein Modul läuft jetzt jedenfalls wie gewünscht.
Titel: Antw:internalTimer
Beitrag von: CoolTux am 22 April 2018, 16:39:39
Dann bitte auf gelöst stellen.
Titel: Antw:internalTimer
Beitrag von: Amenophis86 am 22 April 2018, 18:03:40
Und bitte die Lösung posten, dass die Nachwelt auch was davon hat. Gerne auch die Alternativen, wer sie denn versucht hat :)
Titel: Antw:internalTimer
Beitrag von: Damian am 22 April 2018, 19:32:35
Zitat von: Amenophis86 am 22 April 2018, 18:03:40
Und bitte die Lösung posten, dass die Nachwelt auch was davon hat. Gerne auch die Alternativen, wer sie denn versucht hat :)

Wenn konkrete Vorgaben da wären, würde ich mir sogar mal die Mühe machen.