HowTo: Müllabfuhrplan mit fixen Terminen Anzeige ww. in Stunden/Tagen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Da_Mani
    Extension Master
    • 10.10.2015
    • 121

    #76
    Du kannst es ändern wie du es gerne hättest. Wenn du aber die Benachrichtigung am Vortag hast, fehlt dir natürlich ein Tag in der Visu.
    Es werden praktisch die Tage bis zur Benachrichtigung angezeigt.

    Kommentar

    • chgru
      Smart Home'r
      • 01.09.2015
      • 91

      #77
      Hallo, Gutem Morgen

      Habe in den letzten Tagen den Müllplaner nachgebaut, jedoch habe ich einige Probleme mit dem Status.
      Kann mir jemand weiterhelfen.Habe den durchblick verloren.
      mlg
      Chris
      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Restmülltermine.JPG Ansichten: 1 Größe: 152,2 KB ID: 75791
      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Status.JPG Ansichten: 1 Größe: 227,9 KB ID: 75792
      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Liveview.JPG Ansichten: 1 Größe: 593,5 KB ID: 75793


      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Visu.JPG Ansichten: 1 Größe: 18,8 KB ID: 75790


      Kommentar


      • Sebastian
        Sebastian kommentierte
        Kommentar bearbeiten
        Hi Chris,

        um Übertragungsfehler zu vermeiden, kannst du auch die Loxone-Datei aus dem 1. Post laden.

        Gruß
        Sebastian
    • romildo
      Lebende Foren Legende
      • 25.08.2015
      • 5126

      #78
      Hallo Chris
      Denke der erste Wert imStatusbaustein müsste 672 und nicht 336 sein.
      lg Romildo

      Kommentar

      • chgru
        Smart Home'r
        • 01.09.2015
        • 91

        #79
        Hallo das habe ich auch schon versucht. Sobald ich die Termine für Restmüll eingebe zeigt sich der Status wie in meinem Post #77

        Kommentar

        • romildo
          Lebende Foren Legende
          • 25.08.2015
          • 5126

          #80
          Wenn die Werte im Statusbaustein nicht wie in Post #1 eingegeben werden, kann auch die Statusanzeige nicht stimmen.

          Mit dem richtigen Wert 672 kommt bei mir Statuswert 0 und nicht 100. Restmüllabholung in 27 Tagen.
          Was in meinen Augen auch richtig ist.

          Mit der Config aus Post #1 und den Terminen aus #77 kann ich jedenfalls kein Fehlverhalten feststellen.

          Möglicherweise, habe ich auch einfach nicht verstanden, wo jetzt genau das Problem ist.
          lg Romildo

          Kommentar

          • chgru
            Smart Home'r
            • 01.09.2015
            • 91

            #81
            romildo
            Der Wert im Statusbaustein im Post #1 geginnt aber auch mit 336 und nicht mit 672.Habe es getestet wie du es mir vorgesschlagen hast und so klappt es.
            Recht herzlichen Dank für deine Hilfe.
            Chris

            Kommentar

            • romildo
              Lebende Foren Legende
              • 25.08.2015
              • 5126

              #82
              Zitat von chgru
              [USER="124"]...Der Wert im Statusbaustein im Post #1 geginnt aber auch mit 336 und nicht mit 672...
              Der im Bild 3 leider schon, aber nicht der in der Config.

              Vielleicht kann den Sebastian noch austauschen.
              lg Romildo

              Kommentar

              • chgru
                Smart Home'r
                • 01.09.2015
                • 91

                #83
                romildo

                Hallo
                Könntest du mal meinen Code für 2017 testen.Habe Probleme, wenn ich den Leichtmülltermin eingebe ,habe ich am Status 100% und das ist nicht richtig.

                // 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[42], 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, 4, hourrest, minuterest, 0, 1); //ab hier für das neue Jahr (Variable "year")
                rest[2] = gettimeval(year, 2, 2, hourrest, minuterest, 0, 1);
                rest[3] = gettimeval(year, 3, 2, hourrest, minuterest, 0, 1);
                rest[4] = gettimeval(year, 4, 27, hourrest, minuterest, 0, 1);
                rest[5] = gettimeval(year, 5, 23, hourrest, minuterest, 0, 1);
                rest[6] = gettimeval(year, 6, 22, hourrest, minuterest, 0, 1);
                rest[7] = gettimeval(year, 7, 20, hourrest, minuterest, 0, 1);
                rest[8] = gettimeval(year, 8, 17, hourrest, minuterest, 0, 1);
                rest[9] = gettimeval(year, 9, 14, hourrest, minuterest, 0, 1);
                rest[10] = gettimeval(year, 10, 12, hourrest, minuterest, 0, 1);
                rest[11] = gettimeval(year, 11, 9, hourrest, minuterest, 0, 1);
                rest[12] = gettimeval(year, 12, 5, 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, 11, hourbio, minutebio, 0, 1); //ab hier für das neue Jahr (Variable "year")
                bio[2] = gettimeval(year, 1, 25, hourbio, minutebio, 0, 1);
                bio[3] = gettimeval(year, 2, 8, hourbio, minutebio, 0, 1);
                bio[4] = gettimeval(year, 2, 22, hourbio, minutebio, 0, 1);
                bio[5] = gettimeval(year, 3, 8, hourbio, minutebio, 0, 1);
                bio[6] = gettimeval(year, 3, 22, hourbio, minutebio, 0, 1);
                bio[7] = gettimeval(year, 4, 5, hourbio, minutebio, 0, 1);
                bio[8] = gettimeval(year, 4, 12, hourbio, minutebio, 0, 1);
                bio[9] = gettimeval(year, 4, 20, hourbio, minutebio, 0, 1);
                bio[10] = gettimeval(year, 4, 26, hourbio, minutebio, 0, 1);
                bio[11] = gettimeval(year, 5, 4, hourbio, minutebio, 0, 1);
                bio[12] = gettimeval(year, 5, 10, hourbio, minutebio, 0, 1);
                bio[13] = gettimeval(year, 5, 17, hourbio, minutebio, 0, 1);
                bio[14] = gettimeval(year, 5, 23, hourbio, minutebio, 0, 1);
                bio[15] = gettimeval(year, 6, 7, hourbio, minutebio, 0, 1);
                bio[16] = gettimeval(year, 6, 14, hourbio, minutebio, 0, 1);
                bio[17] = gettimeval(year, 6, 21, hourbio, minutebio, 0, 1);
                bio[18] = gettimeval(year, 6, 28, hourbio, minutebio, 0, 1);
                bio[19] = gettimeval(year, 7, 5, hourbio, minutebio, 0, 1);
                bio[20] = gettimeval(year, 7, 12, hourbio, minutebio, 0, 1);
                bio[21] = gettimeval(year, 7, 19, hourbio, minutebio, 0, 1);
                bio[22] = gettimeval(year, 7, 26, hourbio, minutebio, 0, 1);
                bio[23] = gettimeval(year, 8, 2, hourbio, minutebio, 0, 1);
                bio[24] = gettimeval(year, 8, 9, hourbio, minutebio, 0, 1);
                bio[25] = gettimeval(year, 8, 17, hourbio, minutebio, 0, 1);
                bio[26] = gettimeval(year, 8, 23, hourbio, minutebio, 0, 1);
                bio[27] = gettimeval(year, 8, 30, hourbio, minutebio, 0, 1);
                bio[28] = gettimeval(year, 9, 4, hourbio, minutebio, 0, 1);
                bio[29] = gettimeval(year, 9, 13, hourbio, minutebio, 0, 1);
                bio[30] = gettimeval(year, 9, 20, hourbio, minutebio, 0, 1);
                bio[31] = gettimeval(year, 9, 27, hourbio, minutebio, 0, 1);
                bio[32] = gettimeval(year, 10, 4, hourbio, minutebio, 0, 1);
                bio[33] = gettimeval(year, 10, 11, hourbio, minutebio, 0, 1);
                bio[34] = gettimeval(year, 10, 18, hourbio, minutebio, 0, 1);
                bio[35] = gettimeval(year, 10, 24, hourbio, minutebio, 0, 1);
                bio[36] = gettimeval(year, 10, 31, hourbio, minutebio, 0, 1);
                bio[37] = gettimeval(year, 11, 15, hourbio, minutebio, 0, 1);
                bio[38] = gettimeval(year, 11, 29, hourbio, minutebio, 0, 1);
                bio[39] = gettimeval(year, 12, 13, hourbio, minutebio, 0, 1);
                bio[40] = gettimeval(year, 12, 28, 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, 3, hourleicht, minuteleicht, 0, 1); //ab hier für das neue Jahr (Variable "year")
                leicht[2] = gettimeval(year, 2, 28, hourleicht, minuteleicht, 0, 1);
                leicht[3] = gettimeval(year, 4, 25, hourleicht, minuteleicht, 0, 1);
                leicht[4] = gettimeval(year, 6, 22, hourleicht, minuteleicht, 0, 1);
                leicht[5] = gettimeval(year, 8, 21, hourleicht, minuteleicht, 0, 1);
                leicht[6] = gettimeval(year, 10, 10, hourleicht, minuteleicht, 0, 1);
                leicht[7] = gettimeval(year, 12, 5, 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

                • romildo
                  Lebende Foren Legende
                  • 25.08.2015
                  • 5126

                  #84
                  Hallo
                  Der Code ist schon in Ordnung.
                  Da die Leichtstoffabholung nur ca. alle 2 Monate stattfindet, müsste der Wert im Statusbaustein dementsprechend angepasst werden.

                  Bis zum nächsten Termin sind es noch 52 Tage dies entspricht 52Tg x 24Std/Tg. = 1248 Std.
                  Somit ist die Bedingung >=672 im Statusblock Zeile 7 erfüllt.

                  Möchtest Du dies unterdrücken, müsstest Du die Zahl dem 2 Monatsrhythmus anpassen.
                  Die Zahl 672 entspricht 28 Tagen. (672 Std / 24 Std/Tg = 28 Tg)
                  Beispielsweise 672 x 2 = 1344

                  Ob diese Zeile dann noch Sinn macht?
                  Da ich den Müllabfuhrplan nicht benutze habe ich mich mit dem Programm auch nicht im Detail beschäftigt und kann daher leider auch nicht mehr dazu sagen.

                  Sebastian
                  Ich habe mir die config aus Post 1 heute runtergeladen und festgestellt dass die Fehler siehe Post 64-65 noch nicht bereinigt sind.
                  lg Romildo

                  Kommentar

                  • chgru
                    Smart Home'r
                    • 01.09.2015
                    • 91

                    #85
                    romildo Habe den Wert beim Leichtsoff (2 Monatsrythmus)angepasst und jetzt klappt es.Danke für deine Hilfe.

                    Kommentar


                    • romildo
                      romildo kommentierte
                      Kommentar bearbeiten
                      Bitte gerne.
                  • Shen
                    Smart Home'r
                    • 12.03.2017
                    • 41

                    #86
                    Vielen Dank für die Idee und den Ansatz.
                    Ich habe nun auch meine Version gebastelt, die dem Original recht ähnlich ist.

                    Bei meiner Version gibt es folgende Meldungen
                    Mehr als 1 Tag:
                    "in XZY Tagen"
                    Am Vortag:
                    ab 6 Uhr: "abends rausstellen"
                    ab 18 Uhr: "jetzt rausstellen" + Push-Nachricht zur Erinnerung
                    Am Tag der Abholung:
                    ab 6 Uhr bis 10 Uhr: "wird heute geleert"

                    Auch habe ich mir noch etwas eindeutigere Symbole hergestellt (siehe Screenshots)
                    PHP-Code:
                    // Müllabfuhr für loxforum.com by Sebastian, angepasst von Shen (Johannes Schirge)
                    //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 = 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, 17, hourrest, minuterest, 0, 1); //Letzter Abfuhrtermin des alten Jahres
                        rest[1] = gettimeval(year, 1, 6, hourrest, minuterest, 0, 1); //ab hier für das neue Jahr (Variable "year")
                        rest[2] = gettimeval(year, 2, 3, hourrest, minuterest, 0, 1);
                        rest[3] = gettimeval(year, 3, 3, hourrest, minuterest, 0, 1);
                        rest[4] = gettimeval(year, 3, 31, hourrest, minuterest, 0, 1);
                        rest[5] = gettimeval(year, 4, 28, hourrest, minuterest, 0, 1);
                        rest[6] = gettimeval(year, 5, 27, hourrest, minuterest, 0, 1);
                        rest[7] = gettimeval(year, 6, 23, hourrest, minuterest, 0, 1);
                        rest[8] = gettimeval(year, 7, 21, hourrest, minuterest, 0, 1);
                        rest[9] = gettimeval(year, 8, 18, hourrest, minuterest, 0, 1);
                        rest[10] = gettimeval(year, 9, 15, hourrest, minuterest, 0, 1);
                        rest[11] = gettimeval(year, 10, 13, hourrest, minuterest, 0, 1);
                        rest[12] = gettimeval(year, 11, 10, hourrest, minuterest, 0, 1);
                        rest[13] = gettimeval(year, 12, 8, 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, 23, hourbio, minutebio, 0, 1); //Letzter Abfuhrtermin des alten Jahres
                        bio[1] = gettimeval(year, 1, 6, hourbio, minutebio, 0, 1); //ab hier für das neue Jahr (Variable "year")
                        bio[2] = gettimeval(year, 1, 20, hourbio, minutebio, 0, 1);
                        bio[3] = gettimeval(year, 2, 3, hourbio, minutebio, 0, 1);
                        bio[4] = gettimeval(year, 2, 17, hourbio, minutebio, 0, 1);
                        bio[5] = gettimeval(year, 3, 3, hourbio, minutebio, 0, 1);
                        bio[6] = gettimeval(year, 3, 17, hourbio, minutebio, 0, 1);
                        bio[7] = gettimeval(year, 3, 31, hourbio, minutebio, 0, 1);
                        bio[8] = gettimeval(year, 4, 15, hourbio, minutebio, 0, 1);
                        bio[9] = gettimeval(year, 4, 28, hourbio, minutebio, 0, 1);
                        bio[10] = gettimeval(year, 5, 12, hourbio, minutebio, 0, 1);
                        bio[11] = gettimeval(year, 5, 27, hourbio, minutebio, 0, 1);
                        bio[12] = gettimeval(year, 6, 10, hourbio, minutebio, 0, 1);
                        bio[13] = gettimeval(year, 6, 23, hourbio, minutebio, 0, 1);
                        bio[14] = gettimeval(year, 7, 7, hourbio, minutebio, 0, 1);
                        bio[15] = gettimeval(year, 7, 21, hourbio, minutebio, 0, 1);
                        bio[16] = gettimeval(year, 8, 4, hourbio, minutebio, 0, 1);
                        bio[17] = gettimeval(year, 8, 18, hourbio, minutebio, 0, 1);
                        bio[18] = gettimeval(year, 9, 1, hourbio, minutebio, 0, 1);
                        bio[19] = gettimeval(year, 9, 15, hourbio, minutebio, 0, 1);
                        bio[20] = gettimeval(year, 9, 29, hourbio, minutebio, 0, 1);
                        bio[21] = gettimeval(year, 10, 13, hourbio, minutebio, 0, 1);
                        bio[22] = gettimeval(year, 10, 27, hourbio, minutebio, 0, 1);
                        bio[23] = gettimeval(year, 11, 10, hourbio, minutebio, 0, 1);
                        bio[24] = gettimeval(year, 11, 24, hourbio, minutebio, 0, 1);
                        bio[25] = gettimeval(year, 12, 8, hourbio, minutebio, 0, 1);
                        bio[26] = gettimeval(year, 12, 22, 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, 31, hourpapier, minutepapier, 0, 1); //Letzter Abfuhrtermin des alten Jahres
                        papier[1] = gettimeval(year, 1, 13, hourpapier, minutepapier, 0, 1); //ab hier für das neue Jahr (Variable "year")
                        papier[2] = gettimeval(year, 2, 10, hourpapier, minutepapier, 0, 1);
                        papier[3] = gettimeval(year, 3, 10, hourpapier, minutepapier, 0, 1);
                        papier[4] = gettimeval(year, 4, 7, hourpapier, minutepapier, 0, 1);
                        papier[5] = gettimeval(year, 5, 6, hourpapier, minutepapier, 0, 1);
                        papier[6] = gettimeval(year, 6, 2, hourpapier, minutepapier, 0, 1);
                        papier[7] = gettimeval(year, 6, 30, hourpapier, minutepapier, 0, 1);
                        papier[8] = gettimeval(year, 7, 28, hourpapier, minutepapier, 0, 1);
                        papier[9] = gettimeval(year, 8, 25, hourpapier, minutepapier, 0, 1);
                        papier[10] = gettimeval(year, 9, 22, hourpapier, minutepapier, 0, 1);
                        papier[11] = gettimeval(year, 10, 20, hourpapier, minutepapier, 0, 1);
                        papier[12] = gettimeval(year, 11, 17, hourpapier, minutepapier, 0, 1);
                        papier[13] = gettimeval(year, 12, 15, 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, 30, hourleicht, minuteleicht, 0, 1); //Letzter Abfuhrtermin des alten Jahres
                        leicht[1] = gettimeval(year, 1, 6, hourleicht, minuteleicht, 0, 1); //ab hier für das neue Jahr (Variable "year")
                        leicht[2] = gettimeval(year, 1, 20, hourleicht, minuteleicht, 0, 1);
                        leicht[3] = gettimeval(year, 2, 3, hourleicht, minuteleicht, 0, 1);
                        leicht[4] = gettimeval(year, 2, 17, hourleicht, minuteleicht, 0, 1);
                        leicht[5] = gettimeval(year, 3, 3, hourleicht, minuteleicht, 0, 1);
                        leicht[6] = gettimeval(year, 3, 17, hourleicht, minuteleicht, 0, 1);
                        leicht[7] = gettimeval(year, 3, 31, hourleicht, minuteleicht, 0, 1);
                        leicht[8] = gettimeval(year, 4, 15, hourleicht, minuteleicht, 0, 1);
                        leicht[9] = gettimeval(year, 4, 28, hourleicht, minuteleicht, 0, 1);
                        leicht[10] = gettimeval(year, 5, 12, hourleicht, minuteleicht, 0, 1);
                        leicht[11] = gettimeval(year, 5, 27, hourleicht, minuteleicht, 0, 1);
                        leicht[12] = gettimeval(year, 6, 10, hourleicht, minuteleicht, 0, 1);
                        leicht[13] = gettimeval(year, 6, 23, hourleicht, minuteleicht, 0, 1);
                        leicht[14] = gettimeval(year, 7, 7, hourleicht, minuteleicht, 0, 1); //ab hier für das neue Jahr (Variable "year")
                        leicht[15] = gettimeval(year, 7, 21, hourleicht, minuteleicht, 0, 1);
                        leicht[16] = gettimeval(year, 8, 4, hourleicht, minuteleicht, 0, 1);
                        leicht[17] = gettimeval(year, 8, 18, hourleicht, minuteleicht, 0, 1);
                        leicht[18] = gettimeval(year, 9, 1, hourleicht, minuteleicht, 0, 1);
                        leicht[19] = gettimeval(year, 9, 15, hourleicht, minuteleicht, 0, 1);
                        leicht[20] = gettimeval(year, 9, 29, hourleicht, minuteleicht, 0, 1);
                        leicht[21] = gettimeval(year, 10, 13, hourleicht, minuteleicht, 0, 1);
                        leicht[22] = gettimeval(year, 10, 27, hourleicht, minuteleicht, 0, 1);
                        leicht[23] = gettimeval(year, 11, 10, hourleicht, minuteleicht, 0, 1);
                        leicht[24] = gettimeval(year, 11, 24, hourleicht, minuteleicht, 0, 1);
                        leicht[25] = gettimeval(year, 12, 8, hourleicht, minuteleicht, 0, 1);
                        leicht[26] = gettimeval(year, 12, 22, 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..
                    } 
                    
                    Darf bei Interesse gern genutzt werden.
                    Angehängte Dateien
                    Zuletzt geändert von Shen; 12.05.2017, 18:51.

                    Kommentar


                    • Shen
                      Shen kommentierte
                      Kommentar bearbeiten
                      Das ist doch im Posting angehängt

                    • kofi1990
                      kofi1990 kommentierte
                      Kommentar bearbeiten
                      Bitte die Einstellungen bei Monoflop

                    • Shen
                      Shen kommentierte
                      Kommentar bearbeiten
                      Monoflop mit Standardeinstellungen (T 0,5s)
                  • Shen
                    Smart Home'r
                    • 12.03.2017
                    • 41

                    #87
                    Und hier noch die passenden Symbole meiner Version.
                    Angehängte Dateien

                    Kommentar

                    • Matthias
                      Extension Master
                      • 06.09.2015
                      • 198

                      #88
                      Seit dem Beta Update Config 8.4.5.6 funktioniert mein PicoC Müllabholung nicht mehr. Es werden an allen Ausgängen keine Werte angezeigt. Hat das Problem noch jemand?
                      Downgrade hat nichts gebracht.

                      Kommentar

                      • Rar9
                        LoxBus Spammer
                        • 25.08.2015
                        • 219

                        #89
                        Aktuell läuft noch alles.

                        Gesendet von meinem SM-G925F mit Tapatalk

                        Kommentar

                        • Matthias
                          Extension Master
                          • 06.09.2015
                          • 198

                          #90
                          Zitat von Rar9
                          Aktuell läuft noch alles.

                          Gesendet von meinem SM-G925F mit Tapatalk
                          Auf welcher Version bist du?

                          Kommentar

                          Lädt...