Gesendet von meinem SM-G935F mit Tapatalk
HowTo: Müllabfuhrplan mit fixen Terminen Anzeige ww. in Stunden/Tagen
Einklappen
X
-
-
Hallo,
ich habe seit Neuesten Probleme mit der Berechnung von den Medlungsausgaben (lief vorher seit 1/2 Jahr problemlos).
Ich habe noch kein Update auf V8 gemacht.
Derzeit äußerst es sich beim "Leichtmüll", daß dort als Restzeit immer "0" steht, obwohl es noch mehr als 24 Std sind. -> Aus Programmbaustein "Ausgang 4"
Hat jemand eine Idee, wo der Fehler stecken könnte?
Aktualisierungszeit habe ich im screenshot auf 1min zum Testen gesetzt, sonst steht da 31min.
Das gleiche Phenomen hatte ich vor Kurzem beim Papiermüll.
Immer nach Lox-Config-Anpassungen (in anderen Bereichen als Müll) und Download
4 BilderGruß HRA
### MS Gen2 + Gen1, MultiExt, Ext, AirExt, DMXExt; DMX4ALL ###
### EnOcean, KNX, MDT GTII ###Kommentar
-
Hallo,
Ich denke es liegt an der falschen Variablen und die Zeile
Code:if(rest[k] > 0) {
Also bei bio:
if(bio[k] > 0) {
if(papier[k] > 0) {
if(leicht[k] > 0) {Zuletzt geändert von romildo; 30.07.2016, 10:43.lg RomildoKommentar
-
Kommentar
-
Hi,
das ist abhängig davon, was im Statusbaustein für Meldungen rausgegeben werden.
Wenn bspw. für die Restmülltonne '5' steht für das Rausstellen, dann im Differenzschwellwertschalter einstellen: Triggerwert 4, Differenzwert 2.
Für Bio bspw. '10', dann Trigger auf 9, Differenzwert 2.
Man kann das sicher auch anders lösen, fand ich aber praktikabel.
-
-
Hallo romildo
danke, klar das war der Fehler
- hätte ich auch selbst drauf kommen können
Nur weshalb hat es dann die letzten 5 Monate funktioniert und erst seit 1-2 Woche nicht mehr, das verstehe ich nicht ganz, evtl. hängt es mit der Anzahl der einzelnen Var zusammen.
Solange wie die anderen im gleichen Zähler waren wir der Rest (ist der mit den wenigsten Terminen) hat es funktioniert - Vermutung meinerseits.Gruß HRA
### MS Gen2 + Gen1, MultiExt, Ext, AirExt, DMXExt; DMX4ALL ###
### EnOcean, KNX, MDT GTII ###Kommentar
-
Danke Sebastian....und wie kommt man auf den Statuswert? ist es egal was man da einsetzt?Zuletzt geändert von hoschiman0; 31.07.2016, 16:22.Kommentar
-
Hallo zusammen, das neue Jahr steht an und ich wollte die neuen Termine in den Müllplan eintragen, soweit getan.
Ich muss noch dazu sagen das auch bei mir ab einem bestimmten Tag der Müllplan nicht mehr sauber in der Visu lief, hatte keine Zeit um da mal zu schauen.
Jetzt nach der Aktualisierung/Eintragung der neuen Termine steht die Anzeige auf =0Tage bei allen Mülleimern.
Muss man was beachten bei der Eintragung der neuen Termine?
Habe das Jahr auf 2017 geändert und sonst nur die einzelnen Termine angepasst.
Kommentar
-
Hi,
ich habe auch umgestellt.
Hast du das letzte Datum von 2016 auch eingetragen?
Müsste eigentlich alles klappen.
EDIT:
Mir fällt gerade ein zu den 0-Werten:
Übernimm nochmal den neuen Code, da gab es ein paar Flüchtigkeitsfehler. Evtl. hast du nicht den aktuellen.Zuletzt geändert von Sebastian; 31.12.2016, 17:16.
-
-
Hier mein Code für 2017.
Code:// Müllabfuhr für loxforum.com by Sebastian //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 = 2017; //Jahr, für den der Müllkalender gilt hourrest = 6; //Stunde, an der die Müllabfuhr üblicherweise kommt (Restmüll) hourbio = 6; //Stunde, an der die Müllabfuhr üblicherweise kommt (Biomüll) hourpapier = 6; //Stunde, an der die Müllabfuhr üblicherweise kommt (Altpapier) hourleicht = 6; //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 = 12; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)! remtimebio = 12; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)! remtimepapier = 12; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)! remtimeleicht = 12; //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, 15, hourrest, minuterest, 0, 1); //Letzter Abfuhrtermin des alten Jahres rest[1] = gettimeval(year, 1, 12, hourrest, minuterest, 0, 1); //ab hier für das neue Jahr (Variable "year") rest[2] = gettimeval(year, 2, 9, hourrest, minuterest, 0, 1); rest[3] = gettimeval(year, 3, 9, hourrest, minuterest, 0, 1); rest[4] = gettimeval(year, 4, 6, hourrest, minuterest, 0, 1); rest[5] = gettimeval(year, 5, 5, hourrest, minuterest, 0, 1); rest[6] = gettimeval(year, 6, 1, hourrest, minuterest, 0, 1); rest[7] = gettimeval(year, 6, 29, hourrest, minuterest, 0, 1); rest[8] = gettimeval(year, 7, 27, hourrest, minuterest, 0, 1); rest[9] = gettimeval(year, 8, 24, hourrest, minuterest, 0, 1); rest[10] = gettimeval(year, 9, 21, hourrest, minuterest, 0, 1); rest[11] = gettimeval(year, 10, 19, hourrest, minuterest, 0, 1); rest[12] = gettimeval(year, 11, 16, hourrest, minuterest, 0, 1); rest[13] = gettimeval(year, 12, 14, 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, 22, hourbio, minutebio, 0, 1); //Letzter Abfuhrtermin des alten Jahres bio[1] = gettimeval(year, 1, 5, hourbio, minutebio, 0, 1); //ab hier für das neue Jahr (Variable "year") bio[2] = gettimeval(year, 1, 19, hourbio, minutebio, 0, 1); bio[3] = gettimeval(year, 2, 2, hourbio, minutebio, 0, 1); bio[4] = gettimeval(year, 2, 16, hourbio, minutebio, 0, 1); bio[5] = gettimeval(year, 3, 2, hourbio, minutebio, 0, 1); bio[6] = gettimeval(year, 3, 16, hourbio, minutebio, 0, 1); bio[7] = gettimeval(year, 3, 30, hourbio, minutebio, 0, 1); bio[8] = gettimeval(year, 4, 12, hourbio, minutebio, 0, 1); bio[9] = gettimeval(year, 4, 27, hourbio, minutebio, 0, 1); bio[10] = gettimeval(year, 5, 11, hourbio, minutebio, 0, 1); bio[11] = gettimeval(year, 5, 26, hourbio, minutebio, 0, 1); bio[12] = gettimeval(year, 6, 9, hourbio, minutebio, 0, 1); bio[13] = gettimeval(year, 6, 22, hourbio, minutebio, 0, 1); bio[14] = gettimeval(year, 7, 6, hourbio, minutebio, 0, 1); bio[15] = gettimeval(year, 7, 20, hourbio, minutebio, 0, 1); bio[16] = gettimeval(year, 8, 3, hourbio, minutebio, 0, 1); bio[17] = gettimeval(year, 8, 17, hourbio, minutebio, 0, 1); bio[18] = gettimeval(year, 8, 31, hourbio, minutebio, 0, 1); bio[19] = gettimeval(year, 9, 14, hourbio, minutebio, 0, 1); bio[20] = gettimeval(year, 9, 28, hourbio, minutebio, 0, 1); bio[21] = gettimeval(year, 10, 12, hourbio, minutebio, 0, 1); bio[22] = gettimeval(year, 10, 26, hourbio, minutebio, 0, 1); bio[23] = gettimeval(year, 11, 9, hourbio, minutebio, 0, 1); bio[24] = gettimeval(year, 11, 23, hourbio, minutebio, 0, 1); bio[25] = gettimeval(year, 12, 7, hourbio, minutebio, 0, 1); bio[26] = gettimeval(year, 12, 21, 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, 30, hourpapier, minutepapier, 0, 1); //Letzter Abfuhrtermin des alten Jahres papier[1] = gettimeval(year, 1, 26, hourpapier, minutepapier, 0, 1); //ab hier für das neue Jahr (Variable "year") papier[2] = gettimeval(year, 2, 23, hourpapier, minutepapier, 0, 1); papier[3] = gettimeval(year, 3, 23, hourpapier, minutepapier, 0, 1); papier[4] = gettimeval(year, 4, 21, hourpapier, minutepapier, 0, 1); papier[5] = gettimeval(year, 5, 18, hourpapier, minutepapier, 0, 1); papier[6] = gettimeval(year, 6, 16, hourpapier, minutepapier, 0, 1); papier[7] = gettimeval(year, 7, 13, hourpapier, minutepapier, 0, 1); papier[8] = gettimeval(year, 8, 10, hourpapier, minutepapier, 0, 1); papier[9] = gettimeval(year, 9, 7, hourpapier, minutepapier, 0, 1); papier[10] = gettimeval(year, 10, 6, hourpapier, minutepapier, 0, 1); papier[11] = gettimeval(year, 11, 3, hourpapier, minutepapier, 0, 1); papier[12] = gettimeval(year, 11, 30, hourpapier, minutepapier, 0, 1); papier[13] = gettimeval(year, 12, 29, 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, 25, hourleicht, minuteleicht, 0, 1); //ab hier für das neue Jahr (Variable "year") leicht[2] = gettimeval(year, 2, 22, hourleicht, minuteleicht, 0, 1); leicht[3] = gettimeval(year, 3, 22, hourleicht, minuteleicht, 0, 1); leicht[4] = gettimeval(year, 4, 20, hourleicht, minuteleicht, 0, 1); leicht[5] = gettimeval(year, 5, 17, hourleicht, minuteleicht, 0, 1); leicht[6] = gettimeval(year, 6, 14, hourleicht, minuteleicht, 0, 1); leicht[7] = gettimeval(year, 7, 12, hourleicht, minuteleicht, 0, 1); leicht[8] = gettimeval(year, 8, 9, hourleicht, minuteleicht, 0, 1); leicht[9] = gettimeval(year, 9, 6, hourleicht, minuteleicht, 0, 1); leicht[10] = gettimeval(year, 10, 5, hourleicht, minuteleicht, 0, 1); leicht[11] = gettimeval(year, 11, 2, hourleicht, minuteleicht, 0, 1); leicht[12] = gettimeval(year, 11, 29, hourleicht, minuteleicht, 0, 1); leicht[13] = gettimeval(year, 12, 28, 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.. }
Kommentar
-
also bei mir funktioniert die müllabfuhr auch nicht! auch mit dem aktuellem codeHaus: 1x Miniserver, 7x Extension, 4x RelayExtension, 1x 1-Wire, 1x DimmerExtension, 1x Tree Extension, 1x ModBus Extension, 1x DMX Extension, 6x RGBW, 2x UFO, 1x AirBaseExtension, 3x RGBW Air, Air Touch, Touch Pure Air, LED Pendulum Slim Tree
Wohnung: 1x Miniserver, 3x Extension, 2x RelayExtension, 1x 1-Wire, 1x DimmerExtension, 1x DMX,
Cams: Mobotix T25, Mobotix D22, Mobotix Q25, Axis P1428-E
LOXBERRY: SmartMeter, Weather 4 Lox
Heizung: Viessmann Vitocal 300-A
PV: Fronius Symo 17.5.3Kommentar
-
Kommentar