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

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • hoschiman0
    Extension Master
    • 01.07.2016
    • 160

    #61
    Tja...🤔🤔🤔 irgendwie lüpt es nicht

    Gesendet von meinem SM-G935F mit Tapatalk

    Kommentar

    • HRA
      Lox Guru
      • 27.08.2015
      • 1037

      #62
      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
      Gruß HRA

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

      Kommentar

      • Sebastian
        LoxBus Spammer
        • 28.08.2015
        • 243

        #63
        Bei uns ist es aktuell die Biotonne, die immer 0 anzeigt.
        Ich kann es mir nicht erklären, bin aber dran.

        habe nur momentan wenig Zeit... 😕

        Kommentar

        • romildo
          Lebende Foren Legende
          • 25.08.2015
          • 5126

          #64
          Hallo,
          Ich denke es liegt an der falschen Variablen und die Zeile
          Code:
          if(rest[k] > 0) {
          durch den jeweiligen Namen ersetzt werden muss.
          Also bei bio:
          if(bio[k] > 0) {
          bei papier:
          if(papier[k] > 0) {
          und bei leicht:
          if(leicht[k] > 0) {
          Zuletzt geändert von romildo; 30.07.2016, 10:43.
          lg Romildo

          Kommentar

          • Sebastian
            LoxBus Spammer
            • 28.08.2015
            • 243

            #65
            Das ist wohl dem Copy&Paste geschuldet und natürlich dem fehlenden Debugger 😡

            Kommentar

            • hoschiman0
              Extension Master
              • 01.07.2016
              • 160

              #66
              Wie bekommt man den Wert der in den Differenzschwellwertbaustein muss?

              Kommentar


              • Sebastian
                Sebastian kommentierte
                Kommentar bearbeiten
                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.
            • HRA
              Lox Guru
              • 27.08.2015
              • 1037

              #67
              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


              • romildo
                romildo kommentierte
                Kommentar bearbeiten
                Mit der falschen Zeile kommt er nur auf die Anzahl Werte welche unter rest eingetragen sind.
                Beispiel:
                rest[13] ist der letzte Eintrag unter rest, somit nimmt er 14 Werte.
                Bei falscher Zeile auch die ersten 14 Einträge unter leicht, somit funktioniert dies bis leicht[13], danach nicht mehr.
            • hoschiman0
              Extension Master
              • 01.07.2016
              • 160

              #68
              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

              • Sebastian
                LoxBus Spammer
                • 28.08.2015
                • 243

                #69
                Ist egal, muss nur zusammen dann schlüssig sein.
                Am besten mal mit der Liveview probieren, da sieht man das gut.

                Kommentar

                • kostja
                  Smart Home'r
                  • 25.08.2015
                  • 42

                  #70
                  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


                  • Sebastian
                    Sebastian kommentierte
                    Kommentar bearbeiten
                    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.
                • Sebastian
                  LoxBus Spammer
                  • 28.08.2015
                  • 243

                  #71
                  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

                  • Dimon
                    LoxBus Spammer
                    • 27.08.2015
                    • 383

                    #72
                    also bei mir funktioniert die müllabfuhr auch nicht! auch mit dem aktuellem code
                    Haus: 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.3

                    Kommentar

                    • chgru
                      Smart Home'r
                      • 01.09.2015
                      • 91

                      #73
                      Hallo
                      Habe das Problem das die Zeit zu dem Terminen nicht stimmt.Heute 01.01.2017 Termin Restmüll ist der 04.01 2017 und angezeigt wird in 2 Tagen.
                      Wo soll ich da nach dem Problem suchen.
                      mlg
                      Chris
                      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Müll.JPG Ansichten: 1 Größe: 45,4 KB ID: 74587

                      Zuletzt geändert von chgru; 01.01.2017, 18:54.

                      Kommentar

                      • Da_Mani
                        Extension Master
                        • 10.10.2015
                        • 121

                        #74
                        Auf wann hast du denn die Erinnerung für den Termin eingestellt? Am gleichen Tag wie die Abholung oder einen Tag vorher?

                        Kommentar

                        • chgru
                          Smart Home'r
                          • 01.09.2015
                          • 91

                          #75
                          Da_Mani

                          Wo kann ich den das umstellen. Im Script steht 12 Stdn. Soll ich das auf 24 Stdn ändern. Mlg Christian

                          Kommentar

                          Lädt...