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

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Sebastian
    LoxBus Spammer
    • 28.08.2015
    • 243

    #46

    Zitat von mac338
    Super das funktioniert echt top. Habe noch ein kleines Problem ich habe mehrere Tage wo mehr als eine Mülltonne geholt wird. Wie kann ich die Anzeige und Benachrichtigung anpassen
    Einfach mehrere Statusbausteine verwenden!
    Die fressen ja kein Heu... 😀

    Kommentar

    • HRA
      Lox Guru
      • 27.08.2015
      • 1037

      #47
      Hallo Sebastian,
      habe jetzt meine neuen Kalender eingepflegt und in diesem Zug auch dein aktuelles Update der Berechnung übernommen.
      Nur leider stimmt jetzt die Berechnung nicht mehr.
      Normalerweise würde morgen früh 6:00uhr der Bio-Müll geholt werden, aber der Berechnungsbaustein bringt noch mehr als 2 Tage.
      Würdest du dir dies bitte mal ansehen und mir sagen, wo ich den Fehler gemacht habe.

      Vielen Dank schon mal im Vorraus

      PHP-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[55], 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 = 2016; //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, 17, hourrest, minuterest, 0, 1); //Letzter Abfuhrtermin des alten Jahres
          rest[1] = gettimeval(year, 1, 14, hourrest, minuterest, 0, 1); //ab hier für das neue Jahr (Variable "year")
          rest[2] = gettimeval(year, 2, 10, 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, 4, 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, 17, hourrest, minuterest, 0, 1);
          rest[13] = gettimeval(year, 12, 14, hourrest, minuterest, 0, 1);
          rest[14] = gettimeval(year+1, 1, 11, 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, 29, hourbio, minutebio, 0, 1); //ab hier für das neue Jahr (Variable "year")
          bio[2] = gettimeval(year, 2, 5, hourbio, minutebio, 0, 1);
          bio[3] = gettimeval(year, 2, 12, hourbio, minutebio, 0, 1);
          bio[4] = gettimeval(year, 2, 19, hourbio, minutebio, 0, 1);
          bio[5] = gettimeval(year, 2, 26, hourbio, minutebio, 0, 1);
          bio[6] = gettimeval(year, 3, 4, hourbio, minutebio, 0, 1);
          bio[7] = gettimeval(year, 3, 11, hourbio, minutebio, 0, 1);
          bio[8] = gettimeval(year, 3, 18, hourbio, minutebio, 0, 1);
          bio[9] = gettimeval(year, 3, 26, hourbio, minutebio, 0, 1);
          bio[10] = gettimeval(year, 4, 2, hourbio, minutebio, 0, 1);
          bio[11] = gettimeval(year, 4, 8, hourbio, minutebio, 0, 1);
          bio[12] = gettimeval(year, 4, 15, hourbio, minutebio, 0, 1);
          bio[13] = gettimeval(year, 4, 22, hourbio, minutebio, 0, 1);
          bio[14] = gettimeval(year, 4, 29, hourbio, minutebio, 0, 1);
          bio[15] = gettimeval(year, 5, 7, hourbio, minutebio, 0, 1);
          bio[16] = gettimeval(year, 5, 13, hourbio, minutebio, 0, 1);
          bio[17] = gettimeval(year, 5, 21, hourbio, minutebio, 0, 1);
          bio[18] = gettimeval(year, 5, 27, hourbio, minutebio, 0, 1);
          bio[19] = gettimeval(year, 6, 3, hourbio, minutebio, 0, 1);
          bio[20] = gettimeval(year, 6, 10, hourbio, minutebio, 0, 1);
          bio[21] = gettimeval(year, 6, 17, hourbio, minutebio, 0, 1);
          bio[22] = gettimeval(year, 6, 24, hourbio, minutebio, 0, 1);
          bio[23] = gettimeval(year, 7, 1, hourbio, minutebio, 0, 1);
          bio[24] = gettimeval(year, 7, 8, hourbio, minutebio, 0, 1);
          bio[25] = gettimeval(year, 7, 15, hourbio, minutebio, 0, 1);
          bio[26] = gettimeval(year, 7, 22, hourbio, minutebio, 0, 1);
          bio[27] = gettimeval(year, 7, 29, hourbio, minutebio, 0, 1);
          bio[28] = gettimeval(year, 8, 5, hourbio, minutebio, 0, 1);
          bio[29] = gettimeval(year, 8, 12, hourbio, minutebio, 0, 1);
          bio[30] = gettimeval(year, 8, 19, hourbio, minutebio, 0, 1);
          bio[31] = gettimeval(year, 8, 26, hourbio, minutebio, 0, 1);
          bio[32] = gettimeval(year, 9, 2, hourbio, minutebio, 0, 1);
          bio[33] = gettimeval(year, 9, 9, hourbio, minutebio, 0, 1);
          bio[34] = gettimeval(year, 9, 16, hourbio, minutebio, 0, 1);
          bio[35] = gettimeval(year, 9, 23, hourbio, minutebio, 0, 1);
          bio[36] = gettimeval(year, 9, 30, hourbio, minutebio, 0, 1);
          bio[37] = gettimeval(year, 10, 8, hourbio, minutebio, 0, 1);
          bio[38] = gettimeval(year, 10, 14, hourbio, minutebio, 0, 1);
          bio[39] = gettimeval(year, 10, 21, hourbio, minutebio, 0, 1);
          bio[40] = gettimeval(year, 10, 28, hourbio, minutebio, 0, 1);
          bio[41] = gettimeval(year, 11, 5, hourbio, minutebio, 0, 1);
          bio[42] = gettimeval(year, 11, 11, hourbio, minutebio, 0, 1);
          bio[43] = gettimeval(year, 11, 19, hourbio, minutebio, 0, 1);
          bio[44] = gettimeval(year, 11, 25, hourbio, minutebio, 0, 1);
          bio[45] = gettimeval(year, 12, 2, hourbio, minutebio, 0, 1);
          bio[46] = gettimeval(year, 12, 9, hourbio, minutebio, 0, 1);
          bio[47] = gettimeval(year, 12, 16, hourbio, minutebio, 0, 1);
          bio[48] = gettimeval(year, 12, 23, hourbio, minutebio, 0, 1);
          bio[49] = gettimeval(year, 12, 31, hourbio, minutebio, 0, 1);
          bio[50] = gettimeval(year+1, 1, 6, hourbio, minutebio, 0, 1);
          bio[51] = gettimeval(year+1, 1, 13, hourbio, minutebio, 0, 1);
          bio[52] = gettimeval(year+1, 1, 20, hourbio, minutebio, 0, 1);
          bio[53] = gettimeval(year+1, 1, 27, 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(rest[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, 8, 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, 20, 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, 11, hourpapier, minutepapier, 0, 1);
          papier[13] = gettimeval(year, 12, 12, hourpapier, minutepapier, 0, 1);
          papier[14] = gettimeval(year+1, 1, 9, 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(rest[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, 20, hourleicht, minuteleicht, 0, 1); //ab hier für das neue Jahr (Variable "year")
          leicht[2] = gettimeval(year, 2, 4, hourleicht, minuteleicht, 0, 1);
          leicht[3] = gettimeval(year, 2, 18, hourleicht, minuteleicht, 0, 1);
          leicht[4] = gettimeval(year, 3, 3, hourleicht, minuteleicht, 0, 1);
          leicht[5] = gettimeval(year, 3, 17, hourleicht, minuteleicht, 0, 1);
          leicht[6] = gettimeval(year, 4, 1, hourleicht, minuteleicht, 0, 1);
          leicht[7] = gettimeval(year, 4, 14, hourleicht, minuteleicht, 0, 1);
          leicht[8] = gettimeval(year, 4, 28, hourleicht, minuteleicht, 0, 1);
          leicht[9] = gettimeval(year, 5, 12, hourleicht, minuteleicht, 0, 1);
          leicht[10] = gettimeval(year, 5, 26, hourleicht, minuteleicht, 0, 1);
          leicht[11] = gettimeval(year, 6, 9, hourleicht, minuteleicht, 0, 1);
          leicht[12] = gettimeval(year, 6, 23, hourleicht, minuteleicht, 0, 1);
          leicht[13] = gettimeval(year, 7, 7, hourleicht, minuteleicht, 0, 1);
          leicht[14] = gettimeval(year, 7, 21, hourleicht, minuteleicht, 0, 1);
          leicht[15] = gettimeval(year, 8, 4, hourleicht, minuteleicht, 0, 1);
          leicht[16] = gettimeval(year, 8, 18, hourleicht, minuteleicht, 0, 1);
          leicht[17] = gettimeval(year, 9, 1, hourleicht, minuteleicht, 0, 1);
          leicht[18] = gettimeval(year, 9, 15, hourleicht, minuteleicht, 0, 1);
          leicht[19] = gettimeval(year, 9, 29, hourleicht, minuteleicht, 0, 1);
          leicht[20] = gettimeval(year, 10, 13, hourleicht, minuteleicht, 0, 1);
          leicht[21] = gettimeval(year, 10, 27, hourleicht, minuteleicht, 0, 1);
          leicht[22] = gettimeval(year, 11, 10, hourleicht, minuteleicht, 0, 1);
          leicht[23] = gettimeval(year, 11, 24, hourleicht, minuteleicht, 0, 1);
          leicht[24] = gettimeval(year, 12, 8, hourleicht, minuteleicht, 0, 1);
          leicht[25] = gettimeval(year, 12, 22, hourleicht, minuteleicht, 0, 1);
          leicht[26] = gettimeval(year+1, 1, 5, hourleicht, minuteleicht, 0, 1);
          leicht[27] = gettimeval(year+1, 1, 19, 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(rest[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.. 
      
      Gruß HRA

      ### MS Gen2 + Gen1, MultiExt, Ext, AirExt, DMXExt; DMX4ALL ###
      ### EnOcean, KNX, MDT GTII ###

      Kommentar

      • HRA
        Lox Guru
        • 27.08.2015
        • 1037

        #48
        Hallo Sebastian,
        also jeweils nach einem MS-Neustart wird die Zeit aktualisiert und es kommt auch die Benachrrichtigung. Aber ein zyklisches Berechnen (in Abhängigkeit der Intervalleinstellung) geschieht nicht mehr.
        Habe es mehrmal versucht, jedesmal nur bei Neustart erfolgt eine Zeitenaktualisierung.
        Gruß HRA

        ### MS Gen2 + Gen1, MultiExt, Ext, AirExt, DMXExt; DMX4ALL ###
        ### EnOcean, KNX, MDT GTII ###

        Kommentar

        • Sebastian
          LoxBus Spammer
          • 28.08.2015
          • 243

          #49
          Moin,

          mh muss ich mir bei Gelegenheit noch einmal anschauen.
          Gruß

          Kommentar

          • HRA
            Lox Guru
            • 27.08.2015
            • 1037

            #50
            Hallo Sebastian,
            also das ist schon etwas merkwürdig.
            Habe die Config ein zweites und drittes Mal geladen (ohne Änderungen) sowie den MS mehrfach neu gestartet und nun läuft es wieder seit 2 Tagen stabil.
            Danke trotzdem für deine Bemühungen.
            Gruß HRA

            ### MS Gen2 + Gen1, MultiExt, Ext, AirExt, DMXExt; DMX4ALL ###
            ### EnOcean, KNX, MDT GTII ###

            Kommentar

            • Da_Mani
              Extension Master
              • 10.10.2015
              • 121

              #51
              Hallo Leute!

              Danke erstmal für das Tool..ist echt der Hammer.
              Leider funktioniert es bei mir noch nicht einwandfrei.

              Vielleicht hat jemand einen Tipp woran es liegen kann.


              Mfg Manuel





              //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[24], papier[9], leicht[10]; //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 = 2016; //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, 17, hourrest, minuterest, 0, 1); //Letzter Abfuhrtermin des alten Jahres
              rest[1] = gettimeval(year, 1, 14, hourrest, minuterest, 0, 1); //ab hier für das neue Jahr (Variable "year")
              rest[2] = gettimeval(year, 2, 11, hourrest, minuterest, 0, 1);
              rest[3] = gettimeval(year, 3, 1, hourrest, minuterest, 0, 1);
              rest[4] = gettimeval(year, 3, 30, hourrest, minuterest, 0, 1);
              rest[5] = gettimeval(year, 4, 26, hourrest, minuterest, 0, 1);
              rest[6] = gettimeval(year, 5, 24, hourrest, minuterest, 0, 1);
              rest[7] = gettimeval(year, 6, 21, hourrest, minuterest, 0, 1);
              rest[8] = gettimeval(year, 7, 19, hourrest, minuterest, 0, 1);
              rest[9] = gettimeval(year, 8, 17, hourrest, minuterest, 0, 1);
              rest[10] = gettimeval(year, 9, 13, hourrest, minuterest, 0, 1);
              rest[11] = gettimeval(year, 10, 11, hourrest, minuterest, 0, 1);
              rest[12] = gettimeval(year, 11, 8, hourrest, minuterest, 0, 1);
              rest[13] = gettimeval(year, 12, 6, 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, 7, hourbio, minutebio, 0, 1); //ab hier für das neue Jahr (Variable "year")
              bio[2] = gettimeval(year, 1, 21, hourbio, minutebio, 0, 1);
              bio[3] = gettimeval(year, 2, 4, hourbio, minutebio, 0, 1);
              bio[4] = gettimeval(year, 2, 8, hourbio, minutebio, 0, 1);
              bio[5] = gettimeval(year, 3, 7, hourbio, minutebio, 0, 1);
              bio[6] = gettimeval(year, 4, 4, hourbio, minutebio, 0, 1);
              bio[7] = gettimeval(year, 4, 18, hourbio, minutebio, 0, 1);
              bio[8] = gettimeval(year, 5, 2, hourbio, minutebio, 0, 1);
              bio[9] = gettimeval(year, 5, 14, hourbio, minutebio, 0, 1);
              bio[10] = gettimeval(year, 5, 30, hourbio, minutebio, 0, 1);
              bio[11] = gettimeval(year, 6, 13, hourbio, minutebio, 0, 1);
              bio[12] = gettimeval(year, 6, 27, hourbio, minutebio, 0, 1);
              bio[13] = gettimeval(year, 7, 11, hourbio, minutebio, 0, 1);
              bio[14] = gettimeval(year, 7, 25, hourbio, minutebio, 0, 1);
              bio[15] = gettimeval(year, 8, 8, hourbio, minutebio, 0, 1);
              bio[16] = gettimeval(year, 8, 22, hourbio, minutebio, 0, 1);
              bio[17] = gettimeval(year, 9, 5, hourbio, minutebio, 0, 1);
              bio[18] = gettimeval(year, 9, 19, hourbio, minutebio, 0, 1);
              bio[19] = gettimeval(year, 10, 3, hourbio, minutebio, 0, 1);
              bio[20] = gettimeval(year, 10, 17, hourbio, minutebio, 0, 1);
              bio[21] = gettimeval(year, 10, 31, hourbio, minutebio, 0, 1);
              bio[22] = gettimeval(year, 11, 14, hourbio, minutebio, 0, 1);
              bio[23] = gettimeval(year, 12, 12, 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(rest[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, 28, hourpapier, minutepapier, 0, 1); //ab hier für das neue Jahr (Variable "year")
              papier[2] = gettimeval(year, 2, 1, hourpapier, minutepapier, 0, 1);
              papier[3] = gettimeval(year, 3, 10, hourpapier, minutepapier, 0, 1);
              papier[4] = gettimeval(year, 5, 6, hourpapier, minutepapier, 0, 1);
              papier[5] = gettimeval(year, 6, 30, hourpapier, minutepapier, 0, 1);
              papier[6] = gettimeval(year, 8, 25, hourpapier, minutepapier, 0, 1);
              papier[7] = gettimeval(year, 10, 20, hourpapier, minutepapier, 0, 1);
              papier[8] = 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(rest[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, 27, hourleicht, minuteleicht, 0, 1); //ab hier für das neue Jahr (Variable "year")
              leicht[2] = gettimeval(year, 2, 23, hourleicht, minuteleicht, 0, 1);
              leicht[3] = gettimeval(year, 4, 5, hourleicht, minuteleicht, 0, 1);
              leicht[4] = gettimeval(year, 5, 18, hourleicht, minuteleicht, 0, 1);
              leicht[5] = gettimeval(year, 6, 28, hourleicht, minuteleicht, 0, 1);
              leicht[6] = gettimeval(year, 8, 9, hourleicht, minuteleicht, 0, 1);
              leicht[7] = gettimeval(year, 9, 20, hourleicht, minuteleicht, 0, 1);
              leicht[8] = gettimeval(year, 11, 2, hourleicht, minuteleicht, 0, 1);
              leicht[9] = gettimeval(year, 12, 13, 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(rest[k] > 0) {
              lenleicht++;
              }
              }

              //Schleife Restmüll
              for(i=0; i<30; i++) {
              restleft = (rest[i]-now)/3600;

              if(restleft >= 0) {
              setoutput(0,restleft);
              i = lenrest-1;
              }
              }
              //Schleife Biomüll
              for(i=0; i<24; i++) {
              bioleft = (bio[i]-now)/3600;

              if(bioleft >= 0) {
              setoutput(1,bioleft);
              i = lenbio-1;
              }
              }
              //Schleife Papiermüll
              for(i=0; i<9; i++) {
              papierleft = (papier[i]-now)/3600;

              if(papierleft >= 0) {
              setoutput(2,papierleft);
              i = lenpapier-1;
              }
              }
              //Schleife Leichtstoff
              for(i=0; i<10; 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

              • Schurich83
                Extension Master
                • 21.01.2016
                • 107

                #52
                Hallo hab euren müllabfuhrplan nachgebaut und ergenwo ist da ein Fehler könnt ihr mir weiter helfen?
                Es wir nur ein benachrichtigen angezeigt und nicht drei warum?



                Zuletzt geändert von Schurich83; 27.03.2016, 22:22.

                Kommentar

                • romildo
                  Lebende Foren Legende
                  • 25.08.2015
                  • 5113

                  #53
                  So wie ich das sehe, hast du nur einen Statusbaustein, oder zumindest nur bei einem "Visualisierung Verwenden" angehakt.
                  lg Romildo

                  Kommentar

                  • Rik
                    Extension Master
                    • 21.10.2015
                    • 115

                    #54
                    Hallo,

                    wie bekomm ich die Symbole angezeigt?
                    Hab Sie alle hinzugefügt und auch im Statusbaustein ausgewählt......Es wird aber keine Tonne angezeigt...die Zeiten passen soweit

                    Kommentar

                    • Habib
                      Dumb Home'r
                      • 11.05.2016
                      • 13

                      #55
                      Hallo,

                      starker Thread und tolle Umsetzung von Sebastian. Ich hab das soweit erstmal am Laufen, jedoch stellen sich mir noch zwei Fragen die mir nicht ganz klar sind.

                      Frage 1: Wir haben teilweise am selben Tag die Abholung des Restmülls als auch die der Leichtstoffe. Beim Status wird aber dann nur eine Tonne zum Rausstellen angezeigt, oder?

                      Frage 2: Wir aktualisiert ihr das Programm? Per Stundenimpuls auf AI1?

                      Vielen Dank im Voraus

                      Habib

                      Kommentar


                      • Sebastian
                        Sebastian kommentierte
                        Kommentar bearbeiten
                        Hi
                        zu Frage 1:

                        Entweder über mehrere Statusbausteine, oder vielleicht über ein kombiniertes Symbol.
                    • hoschiman0
                      Extension Master
                      • 01.07.2016
                      • 160

                      #56
                      Hallo....
                      hab da mal ne blöde Frage. Wo und wie trage ich die Daten meiner Abfuhr ein?

                      Kommentar

                      • nt86
                        Extension Master
                        • 24.02.2016
                        • 130

                        #57
                        Hi,

                        mit einem Doppelklick auf den Programmbaustein.

                        VG nt86

                        Kommentar

                        • hoschiman0
                          Extension Master
                          • 01.07.2016
                          • 160

                          #58
                          Hi....das habe ich mir gedacht aber wo kommen was für Daten rein?

                          Kommentar

                          • Habib
                            Dumb Home'r
                            • 11.05.2016
                            • 13

                            #59
                            Hi hoschiman0,

                            guck auf meinen Screenshot. Ich denke der erklärt das. Solche bereiche gibt es dann für Restmüll, Altpapier, Bio Tonne und Leichstoffmüll.

                            Kommentar

                            • hoschiman0
                              Extension Master
                              • 01.07.2016
                              • 160

                              #60
                              Super vielen Dank......werde das mal ausprobrieren.

                              Gesendet von meinem SM-G935F mit Tapatalk

                              Kommentar

                              Lädt...