ich habe auch das Problem, dass mein Programmbaustein nur "0" ausgibt, seit der Version 14.5.12.7 wie bei orli .
Kann mir hier jemand weiterhelfen? Neustart Miniserver usw. haben nicht gebracht...
Anbei mein Programm:
// Müllabfuhr für loxforum.com
//AI1: Minuten Aktualisierung
//AQ1: Stunden bis Restmüllabholung
//AQ2: Stunden bis Biomüllabholung
//AQ3: Stunden bis Altpapierabholung
//AQ4: Stunden bis Leichtstoffabholung
float sleeptime, now, restleft, bioleft, papierleft, leichtleft;
int rest[30], bio[30], papier[30], leicht[30]; //Arrays. Falls es mehr Termine sind, einfach die Klammerwerte erhöhen
int lenrest, lenbio, lenpapier, lenleicht, i, k, year, hourrest, hourbio, hourpapier, hourleicht, minuterest, minutebio, minutepapier, minuteleicht, remtimerest, remtimebio, remtimepapier, remtimeleicht;
year = 2024; //Jahr, für den der Müllkalender gilt
hourrest = 10; //Stunde, an der die Müllabfuhr üblicherweise kommt (Restmüll)
hourbio = 10; //Stunde, an der die Müllabfuhr üblicherweise kommt (Biomüll)
hourpapier = 10; //Stunde, an der die Müllabfuhr üblicherweise kommt (Altpapier)
hourleicht = 10; //Stunde, an der die Müllabfuhr üblicherweise kommt (Leichtstoff)
minuterest = 0; //Minute, an der die Müllabfuhr üblicherweise kommt ;-)
minutebio = 0; //Minute, an der die Müllabfuhr üblicherweise kommt ;-)
minutepapier = 0; //Minute, an der die Müllabfuhr üblicherweise kommt ;-)
minuteleicht = 0; //Minute, an der die Müllabfuhr üblicherweise kommt ;-)
remtimerest = 16; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)!
remtimebio = 16; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)!
remtimepapier = 16; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)!
remtimeleicht = 16; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)!
while(TRUE)
{
sleeptime = 60*getinput(0); //Aktualisierungszeit in Sekunden
now = getcurrenttime(); //aktuelle Zeit in Sekunden (seit 01.01.2009 0:00)
//Daten der Restmüllabholung
rest[0] = gettimeval(year-1, 12, 27, hourrest, minuterest, 0, 1); //Letzter Abfuhrtermin des alten Jahres
rest[1] = gettimeval(year, 1, 10, hourrest, minuterest, 0, 1); //ab hier für das neue Jahr (Variable "year")
rest[2] = gettimeval(year, 1, 24, hourrest, minuterest, 0, 1);
rest[3] = gettimeval(year, 2, 8, hourrest, minuterest, 0, 1);
rest[4] = gettimeval(year, 2, 21, hourrest, minuterest, 0, 1);
rest[5] = gettimeval(year, 3, 6, hourrest, minuterest, 0, 1);
rest[6] = gettimeval(year, 3, 20, hourrest, minuterest, 0, 1);
rest[7] = gettimeval(year, 4, 3, hourrest, minuterest, 0, 1);
rest[8] = gettimeval(year, 4, 17, hourrest, minuterest, 0, 1);
rest[9] = gettimeval(year, 5, 4, hourrest, minuterest, 0, 1);
rest[10] = gettimeval(year, 5, 15, hourrest, minuterest, 0, 1);
rest[11] = gettimeval(year, 5, 29, hourrest, minuterest, 0, 1);
rest[12] = gettimeval(year, 6, 12, hourrest, minuterest, 0, 1);
rest[13] = gettimeval(year, 6, 26, hourrest, minuterest, 0, 1);
rest[14] = gettimeval(year, 7, 10, hourrest, minuterest, 0, 1);
rest[15] = gettimeval(year, 7, 24, hourrest, minuterest, 0, 1);
rest[16] = gettimeval(year, 8, 7, hourrest, minuterest, 0, 1);
rest[17] = gettimeval(year, 8, 21, hourrest, minuterest, 0, 1);
rest[18] = gettimeval(year, 9, 4, hourrest, minuterest, 0, 1);
rest[19] = gettimeval(year, 9, 18, hourrest, minuterest, 0, 1);
rest[20] = gettimeval(year, 10, 2, hourrest, minuterest, 0, 1);
rest[21] = gettimeval(year, 10, 16, hourrest, minuterest, 0, 1);
rest[22] = gettimeval(year, 10, 30, hourrest, minuterest, 0, 1);
rest[23] = gettimeval(year, 11, 13, hourrest, minuterest, 0, 1);
rest[24] = gettimeval(year, 11, 27, hourrest, minuterest, 0, 1);
rest[25] = gettimeval(year, 12, 11, hourrest, minuterest, 0, 1);
rest[26] = gettimeval(year, 12, 21, hourrest, minuterest, 0, 1);
//Schleife Zählen der vorh. Arrayelemente beim Restmüll
lenrest=0;
for(k=0; k<(sizeof(rest)/sizeof(int)); k++) {
if(rest[k] > 0) {
lenrest++;
}
}
//Daten der Biomüllabholung
bio[0] = gettimeval(year-1, 12, 20, hourbio, minutebio, 0, 1); //Letzter Abfuhrtermin des alten Jahres
bio[1] = gettimeval(year, 1, 3, hourbio, minutebio, 0, 1); //ab hier für das neue Jahr (Variable "year")
bio[2] = gettimeval(year, 1, 17, hourbio, minutebio, 0, 1);
bio[3] = gettimeval(year, 1, 31, hourbio, minutebio, 0, 1);
bio[4] = gettimeval(year, 2, 14, hourbio, minutebio, 0, 1);
bio[5] = gettimeval(year, 2, 28, hourbio, minutebio, 0, 1);
bio[6] = gettimeval(year, 3, 13, hourbio, minutebio, 0, 1);
bio[7] = gettimeval(year, 3, 27, hourbio, minutebio, 0, 1);
bio[8] = gettimeval(year, 4, 10, hourbio, minutebio, 0, 1);
bio[9] = gettimeval(year, 4, 24 hourbio, minutebio, 0, 1);
bio[10] = gettimeval(year, 5, 8, hourbio, minutebio, 0, 1);
bio[11] = gettimeval(year, 5, 22, hourbio, minutebio, 0, 1);
bio[12] = gettimeval(year, 6, 5, hourbio, minutebio, 0, 1);
bio[13] = gettimeval(year, 6, 19, hourbio, minutebio, 0, 1);
bio[14] = gettimeval(year, 7, 3, hourbio, minutebio, 0, 1);
bio[15] = gettimeval(year, 7, 17, hourbio, minutebio, 0, 1);
bio[16] = gettimeval(year, 7, 31, hourbio, minutebio, 0, 1);
bio[17] = gettimeval(year, 8, 14, hourbio, minutebio, 0, 1);
bio[18] = gettimeval(year, 8, 28, hourbio, minutebio, 0, 1);
bio[19] = gettimeval(year, 9, 11, hourbio, minutebio, 0, 1);
bio[20] = gettimeval(year, 9, 25, hourbio, minutebio, 0, 1);
bio[21] = gettimeval(year, 10, 9, hourbio, minutebio, 0, 1);
bio[22] = gettimeval(year, 10, 23, hourbio, minutebio, 0, 1);
bio[23] = gettimeval(year, 11, 6, hourbio, minutebio, 0, 1);
bio[24] = gettimeval(year, 11, 20, hourbio, minutebio, 0, 1);
bio[25] = gettimeval(year, 12, 4, hourbio, minutebio, 0, 1);
bio[26] = gettimeval(year, 12, 18, hourbio, minutebio, 0, 1);
//Schleife Zählen der vorh. Arrayelemente beim Biomüll
lenbio=0;
for(k=0; k<(sizeof(bio)/sizeof(int)); k++) {
if(bio[k] > 0) {
lenbio++;
}
}
//Daten der Papiermüllabholung
papier[0] = gettimeval(year-1, 12, 14, hourpapier, minutepapier, 0, 1); //Letzter Abfuhrtermin des alten Jahres
papier[1] = gettimeval(year, 1, 11, hourpapier, minutepapier, 0, 1); //ab hier für das neue Jahr (Variable "year")
papier[2] = gettimeval(year, 2, 8, hourpapier, minutepapier, 0, 1);
papier[3] = gettimeval(year, 3, 7, hourpapier, minutepapier, 0, 1);
papier[4] = gettimeval(year, 4, 4, hourpapier, minutepapier, 0, 1);
papier[5] = gettimeval(year, 5, 2, hourpapier, minutepapier, 0, 1);
papier[6] = gettimeval(year, 5, 30, hourpapier, minutepapier, 0, 1);
papier[7] = gettimeval(year, 6, 27, hourpapier, minutepapier, 0, 1);
papier[8] = gettimeval(year, 7, 25, hourpapier, minutepapier, 0, 1);
papier[9] = gettimeval(year, 8, 22, hourpapier, minutepapier, 0, 1);
papier[10] = gettimeval(year, 9, 19, hourpapier, minutepapier, 0, 1);
papier[11] = gettimeval(year, 10, 17, hourpapier, minutepapier, 0, 1);
papier[12] = gettimeval(year, 11, 14, hourpapier, minutepapier, 0, 1);
papier[13] = gettimeval(year, 12, 12, hourpapier, minutepapier, 0, 1);
//Schleife Zählen der vorh. Arrayelemente beim Papiermüll
lenpapier=0;
for(k=0; k<(sizeof(papier)/sizeof(int)); k++) {
if(papier[k] > 0) {
lenpapier++;
}
}
//Daten der Leichtstoffabholung
leicht[0] = gettimeval(year-1, 12, 29, hourleicht, minuteleicht, 0, 1); //Letzter Abfuhrtermin des alten Jahres
leicht[1] = gettimeval(year, 1, 12, hourleicht, minuteleicht, 0, 1); //ab hier für das neue Jahr (Variable "year")
leicht[2] = gettimeval(year, 1, 26, hourleicht, minuteleicht, 0, 1);
leicht[3] = gettimeval(year, 2, 9, hourleicht, minuteleicht, 0, 1);
leicht[4] = gettimeval(year, 2, 23, hourleicht, minuteleicht, 0, 1);
leicht[5] = gettimeval(year, 3, 8, hourleicht, minuteleicht, 0, 1);
leicht[6] = gettimeval(year, 3, 22, hourleicht, minuteleicht, 0, 1);
leicht[7] = gettimeval(year, 4, 5, hourleicht, minuteleicht, 0, 1);
leicht[8] = gettimeval(year, 4, 19, hourleicht, minuteleicht, 0, 1);
leicht[9] = gettimeval(year, 5, 3, hourleicht, minuteleicht, 0, 1);
leicht[10] = gettimeval(year, 5, 17, hourleicht, minuteleicht, 0, 1);
leicht[11] = gettimeval(year, 5, 31, hourleicht, minuteleicht, 0, 1);
leicht[12] = gettimeval(year, 6, 14, hourleicht, minuteleicht, 0, 1);
leicht[13] = gettimeval(year, 6, 28, hourleicht, minuteleicht, 0, 1);
leicht[14] = gettimeval(year, 7, 12, hourleicht, minuteleicht, 0, 1); //ab hier für das neue Jahr (Variable "year")
leicht[15] = gettimeval(year, 7, 26, hourleicht, minuteleicht, 0, 1);
leicht[16] = gettimeval(year, 8, 9, hourleicht, minuteleicht, 0, 1);
leicht[17] = gettimeval(year, 8, 23, hourleicht, minuteleicht, 0, 1);
leicht[18] = gettimeval(year, 9, 6, hourleicht, minuteleicht, 0, 1);
leicht[19] = gettimeval(year, 9, 20, hourleicht, minuteleicht, 0, 1);
leicht[20] = gettimeval(year, 10, 4, hourleicht, minuteleicht, 0, 1);
leicht[21] = gettimeval(year, 10, 18, hourleicht, minuteleicht, 0, 1);
leicht[22] = gettimeval(year, 11, 1, hourleicht, minuteleicht, 0, 1);
leicht[23] = gettimeval(year, 11, 15, hourleicht, minuteleicht, 0, 1);
leicht[24] = gettimeval(year, 11, 29, hourleicht, minuteleicht, 0, 1);
leicht[25] = gettimeval(year, 12, 13, hourleicht, minuteleicht, 0, 1);
leicht[26] = gettimeval(year, 12, 27, hourleicht, minuteleicht, 0, 1);
//Schleife Zählen der vorh. Arrayelemente beim Leichtstoffmüll
lenleicht=0;
for(k=0; k<(sizeof(leicht)/sizeof(int)); k++) {
if(leicht[k] > 0) {
lenleicht++;
}
}
//Schleife Restmüll
for(i=0; i<lenrest; i++) {
restleft = (rest[i]-now)/3600;
if(restleft >= 0) {
setoutput(0,restleft);
i = lenrest-1;
}
}
//Schleife Biomüll
for(i=0; i<lenbio; i++) {
bioleft = (bio[i]-now)/3600;
if(bioleft >= 0) {
setoutput(1,bioleft);
i = lenbio-1;
}
}
//Schleife Papiermüll
for(i=0; i<lenpapier; i++) {
papierleft = (papier[i]-now)/3600;
if(papierleft >= 0) {
setoutput(2,papierleft);
i = lenpapier-1;
}
}
//Schleife Leichtstoff
for(i=0; i<lenleicht; i++) {
leichtleft = (leicht[i]-now)/3600;
if(leichtleft >= 0) {
setoutput(3,leichtleft);
i = lenleicht-1;
}
}
//Schleife zur Überprüfung, ob die Erinnerungsuhrzeit ansteht (innerhalb 1 Stunde), wenn ja: Sleeptime verringern.
if((restleft<(remtimerest+1) && restleft>=(remtimerest)) ||
(bioleft<(remtimebio+1) && bioleft>=(remtimebio)) ||
(papierleft<(remtimepapier+1) && papierleft>=(remtimepapier)) ||
(leichtleft<(remtimeleicht+1) && leichtleft>=(remtimeleicht))) {
sleeptime = 120;
}
sleeps(sleeptime); //Sleep-Wert in Sekunden, um die CPU zu schonen..
}
Gibt es eventuell noch andere "Tricks" oder Empfehlungen wenn im Skript keine Fehler erkennbar sind?
Danke!
Kommentar