Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Christian, ich habe versucht nicht deinen Code zu verändern, sondern neu anzufangen. > Wie schon vorher gesagt würde ich Ausschaltzeiten die nach 0:00 Uhr enden einen Wert > über 86400 geben und diesen dann über die Funktion „neuerTag“ nach Mitternacht anpassen. > So kannst du auch schnell ein Sonderprogramm laufen lasen wenn mal > für z.B. 3 Tage = 259200 Sek. was anders laufen soll. > Wenn du das nicht willst, kannst du es ganz leicht anpassen. > Die Berechnung ob das Licht überhaupt eingeschaltet werden soll (zu kurze Einschaltdauer vermeiden) > würde ich in die Berechnung über die Ein- und Ausschaltzeiten reinnehmen. > Soll nicht eingeschaltet werden auto = 1, sonst auto = 2. > Gruß > Andreas > > <code> > byte auto; > byte tag_neu; > long aus_normal; > long ausschalten; > long dauer; > > function Gartenlicht () > { > if auto > 1 and timeserial > (aus_normal - dauer) and timeserial < aus_normal { > max7311.set(0,7,1); > ausschalten = aus_normal; > auto = 4; > } > if auto > 1 and ausschalten + 1800 > aus_normal - dauer { > ausschalten = aus_normal;} //manuell eingeschaltetes Licht nur aus wenn nicht in 30 Min wieder ein > > //auto > o wird nur benötig, wenn auch mal alles auf manuell laufen soll > if auto > 0 and timeserial > ausschalten { > max7311.set(0,7,0); > } > } > > function Taster () > { > if auto == 4 {auto = 1;} > max7311.toggle(0,7); > ausschalten = timeserial + 7200; > } > > function neuerTag () > { > if timeserial < 10 and tag_neu == 0 { > if aus_normal > 86399 { aus_normal = aus_normal - 86400;} > if ausschalten > 86399 { ausschalten = ausschalten - 86400;} > tag_neu = 1; //wird bei deinen Berechnungen um 4:00 wieder auf 0 gesetzt > } > </code>