Hauptmenü

internalTimer

Begonnen von boklu, 21 April 2018, 15:04:27

Vorheriges Thema - Nächstes Thema

boklu

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

mumpitzstuff

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.

betateilchen


  • das ist doch keine Frage für den Anfängerbereich?
  • das was Du da tun willst, läßt sich problemlos per at und alignAtime lösen, für sowas Banales muss man kein "Modul schreiben", dafür reichen maximal zwei Zeilen in der 99_myUtils.pm
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

boklu

Nein, das läst sich nicht per at oder DOIF machen.

CoolTux

Schau Dir doch das at Modul an, da ist sowas gelöst worden.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

boklu

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! :-(

Damian

#6
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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

KernSani

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 :-)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Prof. Dr. Peter Henning

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

boklu

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.

CoolTux

Dann bitte auf gelöst stellen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Amenophis86

Und bitte die Lösung posten, dass die Nachwelt auch was davon hat. Gerne auch die Alternativen, wer sie denn versucht hat :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF