Hallo,
Ich wollte mir einen Timer programmieren, der die Weihnachsbeleuchtung zwischen 2 bestimmten Uhrzeiten einschaltet.
Dazu habe ich einen Timer erstellt und das Script mit der Funktion „IsTimeBetween“ wurde automatisch generiert. Wenn ich dieses Script jedoch manuell starte, kommt die folgende Fehlermeldung:
<br />
<b>Fatal error</b>: Call to undefined function IsTimeBetween() in
<b>D:\Programme\IP-Symcon\scripts\.currentscript</b>
on line <b>13</b><br />
was mache ich da falsch, bzw. wie kann ich diese Funktion einbinden?
verwirrte Grüße
Thorsten
auszuführen müsste „$InputTime11908016“ doch einen Boolschen Wert enthalten, oder?
Ich vermute aber aufgrund der Fehlermeldung, dass die Funktion „IsTimeBetween“ einen String zurückliefert. Die Funktion habe ich aus Deinem obigen Beitrag kopiert.
Vergiss erst einmal die IsTimeBetween() Funktion. Du solltest vorher immer erst eine genaue Vorstellung vom Ablauf Deines Skripts erlangen.
Natürlich gehst Du davon aus, dass Deine Lampe im Zeitraum von X bis Y eingeschaltet sein soll. Dieser Bereich ist ein Zeitraum. Jetzt ist die Frage: Soll in diesem Zeitraum etwas geschehen, im Sinne von: soll sich etwas ändern?
Natürlich nicht! Es soll sich nur am Beginn und am Ende des Zeitraums etwas ändern (EIN- und AUS-schalten).
Dein Skript muss sich also nicht mit einem Zeitraum sondern mit zwei Zeitpunkten (Terminen) befassen!
Der Ablauf sieht ungefähr so aus:
Zeitpunkt 1: Lampe einschalten
Zeitpunkt 2: Lampe ausschalten
Ablauf täglich wiederholen
Für diesen Zweck ist der Scheduler (TWZ, Timer Wizard) bestens geeignet. Du erreichst ihn in der V1 mit der Taste F6.
Hier kannst Du eintragen wann welches Skript getriggert werden soll.
Die beiden Skripts tun nichts anderes, als die Lampe ein- und wieder auszuschalten. Es handelt sich dabei um zwei simple Einzeiler.
Alle anderen hier vorgestellten Lösungen sind nur Verschwendung von Rechenzeit. :rolleyes:
habe ich entfernt unddie Funktion mit den Zeiten und dem $span=-1 aufgerufen.
Vielen Dank!!!
@Thomas
Viele Dank auch für Dein Script, ich habe es gerade auch ausprobiert und es läuft ebenfalls einwandfrei. Vielen Dank!!!
Jetzt habe ich also die Qual der Wahl welches Script ich laufen lasse:D
Alle anderen hier vorgestellten Lösungen sind nur Verschwendung von Rechenzeit
Natürlich ist nur für das ein und auschalten einer Lampe mein Script zu viel des guten. Da hat HJH natürlich Recht und der Timer Wizard ist da genau richtig, aber ich hatte auch geschrieben:
…aber das Script ist noch für viele Zeitsteuerungsaufgaben zu gebrauchen.
Und das sollte durchaus nur eine Anregung für weitere Schaltaufgaben sein.
Im Übrigen macht der Timer Wizard nix anderes als jede Minute zu prüfen ob ein Event anliegt. Und das braucht auch Rechenzeit.
Im Übrigen macht der Timer Wizard nix anderes als jede Minute zu prüfen ob ein Event anliegt. Und das braucht auch Rechenzeit.
da hast Du natürlich Recht. Aber diese Rechenzeit verbraucht er auch dann, wenn man ihn nicht nutzt, also ist es besser ihn zu nutzen (zumindest in diesem Fall).
Stimmt. Ich bastle aber so gern selber mit Scripten, da lernt man mehr dabei. Ach wie ich dieses Formum liebe. (Hoffentlich liest das meine Frau nicht…)
Naja, bei V1 würd ichs auch über den TimerWizard machen… ist die sauberste lösung, meiner meinung nach…
Hatte ich gar nimmer dran gedacht, liegt wohl an der V2, mit der ich schon „soooo“ lange arbeite ^^
so, und weitermachen…
ginge auch im timer über einen script alla if/else …