Re: Zeitschaltuhr mit Serialzeit Kategorie: Programmierung (von nitraM - 8.04.2010 14:02) | ||
Als Antwort auf Zeitschaltuhr mit Serialzeit von ChristianS - 8.04.2010 8:47 | ||
| ||
> Hallo, > ich habe da offensichtlich einen Knoten im Kopf, vielleicht kann jemand helfen: > > Ich habe diverse Zeitschaltuhren programmiert. Dafür habe ich die 24h in 86400s eingeteilt. Jetzt > möchte ich eine Beleuchtung um 21:00Uhr abends einschalten (75600) und um 22:00 Uhr(79200) > wieder aus. Das ist auch kein Problem. > > if aktuellZeit>=75600 and timeserial <=79200 > schalte_ein > > wenn ich nun aber das Licht nachts um 02:00Uhr ausschalten möchte, funktioniert meine Zeitschaltuhr > nicht mehr...hat jemand eine Idee, wie man das elegant abfackeln kann? > > derzeit mache ich das so: > ich gucke, ob die Ausschaltzeit kleiner ist als die Einschaltzeit, ist das der Fall, addiere ich 86400s > auf die Ausschaltzeit, warte dann bis Mitternacht und ziehe die 86400 wieder ab. Das geht zwar, ist > aber nicht sehr elegant, zumal ich mir dann andere Mechanismen verbaue: > > z.B. > Die Einschaltzeit richtet sich nach dem Sonnenuntergang. Wenn nun der SU kurz vor der Ausschaltzeit > liegt, dann würde die Beleuchtung nur sehr kurz eingeschaltet. Das ist Kappes. Deshalb fange ich das > ab, indem ich eine Mindesteinschaltzeit von 20min. festlege, ansonsten bleibt alles dunkel. > > Es wäre schön, wenn jemand den Knoten im Kopf lösen könnte > > Gru� > Christian > > Hallo Christian wie wäre es so: if tein > taus // Schaltzeit über 0:00Uhr hinaus { einschaltzeit = 86400 - tein + taus; // Gesamteinschaltzeit ermitteln if einschaltzeit >= min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht {if time >= tein or time < taus // prüfen auf Uhrzeit "ein" => wichtig _oder_ ! { einschalten... } } } else { einschaltzeit = taus - tein; // Gesamteinschaltzeit ermitteln if einschaltzeit >= min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht {if time >= tein and time < taus // prüfen auf Uhrzeit "ein" => wichtig _und_ ! { einschalten... } } nitraM | ||
Antwort schreiben Antworten: Re: Zeitschaltuhr mit Serialzeit (von ChristianS - 8.04.2010 19:05) Re: Zeitschaltuhr mit Serialzeit (von nitraM - 8.04.2010 20:08) Re: Zeitschaltuhr mit Serialzeit (von ChristianS - 8.04.2010 21:05) |