Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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
Ich nutze:
C164CI-ControllerBoard, eigenes Board, OSOPT V3.0, OSOPT V3.1
> 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)