Programm um Termine der Stadtreinigung Hamburg einzubinden

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • sarnau
    Smart Home'r
    • 23.02.2018
    • 46

    #1

    Programm um Termine der Stadtreinigung Hamburg einzubinden

    Moin, Moin,

    Etwas ganz spezielles für die Hamburger Loxone Miniserver Nutzer: ein PicoC Programm, welches es erlaubt mit seiner Anschrift (Straße und Hausnummer) von der Stadtreinigung Hamburg die Termine der nächsten Abholungen einzubinden. Hamburg hat teilweise recht variable Termine und die sind auch nur ein paar Monate im Voraus als Kalender zu importieren. Mit dem Programm kann man folgendes erhalten:

    In wieviel Tagen wird das nächste Mal folgendes abgeholt:
    - Restmüll
    - Papier
    - Wertstoffe
    - Bio
    - Laub (nur im Herbst)
    - Weihnachtsbäume (ja, haben wir wirklich - Termine gibt es nur im Januar)

    Zudem gibt es Tage mit mehreren Abholungen (Restmüll und Papier oder Restmüll und Wertstoffe). Deswegen erzeugt das Programm auch einen handlichen Statustext für welche Tonnen und an welchem Tag (nächster Termin) bzw. einen Text wie "In 7 Tagen: Restmüll, Papier".

    Der Sourcecode ist einfach ins Programm Bauteil zu kopieren und STRASSENNAME sowie HAUSNUMMER als Hausnummer durch die korrekte Angabe zu ersetzen.
    GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over 85 million projects.
    Zuletzt geändert von sarnau; 30.07.2018, 11:15.
  • PeterChrisben
    LoxBus Spammer
    • 11.11.2015
    • 360

    #2
    Moin,
    danke für das Skript. Ich habe leider folgendes Problem. Meine Adresse bzw. die Hausnummer wird bei der Stadtreinigung unter 9-9A geführt. Somit ist es ja kein Wert mehr, sondern ein char.
    Ich habe leider keine Ahnung von C, bin eher bei PHP zuhause.
    Ist es aufwendig die Hausnummerübergabe ebenfalls als String bzw char zu machen?
    Danke und Grüße,
    Peter

    Kommentar

    • sarnau
      Smart Home'r
      • 23.02.2018
      • 46

      #3
      Habe den Script angepaßt. Du mußt aber wohl den "-" durch %2D ersetzen, also "9%2D9A"

      Kommentar

      • PeterChrisben
        LoxBus Spammer
        • 11.11.2015
        • 360

        #4
        Cool.... Danke. Werde es gleich mal versuchen.

        Kommentar

        • PeterChrisben
          LoxBus Spammer
          • 11.11.2015
          • 360

          #5
          So... funktioniert mit "9-9A". Danke für die schnelle Anpassung. Hast Du die Ausgabe so gemacht, wann Du die Tonnen rausstellen musst? Bei mir wird Restmüll "heute" angezeigt und der entsprechende Wert mit 0. Jedoch ist die Entleerung erst morgen am Dienstag und nicht heute. Ebenso Gelbe Tonne. Da ist der nächste Termin nächsten Montag und er sagt 6 Tage. Das wäre doch Sonntag?
          Das hatte ich bei anderen Adressen die ich vorhin probiert hatte auch schon bemerkt.
          Gruß,
          Peter

          Kommentar

          • sarnau
            Smart Home'r
            • 23.02.2018
            • 46

            #6
            Mach nochmal ein Update vom Source, ich habe noch etwas aufgeräumt. War ein Zeit-Subtraktionsproblem (Heute 16:00 minus Morgen 0:00 ist gleich 0 Tage), nicht gut.

            Kommentar

            • PeterChrisben
              LoxBus Spammer
              • 11.11.2015
              • 360

              #7
              Zitat von sarnau
              Mach nochmal ein Update vom Source, ich habe noch etwas aufgeräumt. War ein Zeit-Subtraktionsproblem (Heute 16:00 minus Morgen 0:00 ist gleich 0 Tage), nicht gut.
              Jupp... schaut jetzt gut aus mit den Daten.
              Vielen Dank dafür.
              Grüße,
              Peter


              Gesendet von iPhone mit Tapatalk

              Kommentar

              • LoxHamburg
                Smart Home'r
                • 13.09.2015
                • 65

                #8
                Super Sache! Danke!

                Kommentar

                • simon_hh
                  Lox Guru
                  • 18.09.2015
                  • 2659

                  #9
                  jo... das probiere ich mal aus. Habe zurzeit die reine Statusbaustein-Berechnung, welche sich über 3 Seiten zieht und leider jedes Jahr angepasst werden muss. Bzw. Sondertermine sind natürlich gar nicht drin.
                  Ich danke Dir für diese tolle Arbeit!
                  Haus: Bj 1959, gekauft 2011, totale Entkernung, Dachausbau, Erweiterung & Vergrößerung: Start: 2014, Ende: 2050
                  Loxone: 1 x Ms Gen.02, 1 x MS Gen.01, 5 x Ext., 4 x Relay Ext., 1 x Dimmer Ext., 2 x 1-wire Ext., 1 x DMX Ext. 1 x TREE Ext. mehr kommt noch
                  Licht: DMX LED Beleuchtung (24V), MW HLG Serie und eldoled Dimmer
                  Heizung: Brötje WBS 22F, OG Heizkörper und FuBoHeizung über RTL, EG FuBoHeizung

                  Kommentar

                  • PeterChrisben
                    LoxBus Spammer
                    • 11.11.2015
                    • 360

                    #10
                    Moin, ich habe bei folgendes Verhalten. Schreibe ich die Config in den Miniserver wird mir der Abfallkalender korrekt angezeigt. Nach der ersten Aktualisierung durch das Programm bekomme ich nur noch -1 bei jedem Ausgang.
                    Es funktionier also ein Mal und dann nicht mehr.
                    Hast Du eine Idee was das sein könnte?
                    Danke und Grüße,
                    Peter

                    Kommentar

                    • simon_hh
                      Lox Guru
                      • 18.09.2015
                      • 2659

                      #11
                      Bei mir leider auch, nach einigen Tagen steht bei mir auch Status:-1
                      Kann das jemand nachvollziehen, wo der Fehler liegt?

                      LG Simon
                      Haus: Bj 1959, gekauft 2011, totale Entkernung, Dachausbau, Erweiterung & Vergrößerung: Start: 2014, Ende: 2050
                      Loxone: 1 x Ms Gen.02, 1 x MS Gen.01, 5 x Ext., 4 x Relay Ext., 1 x Dimmer Ext., 2 x 1-wire Ext., 1 x DMX Ext. 1 x TREE Ext. mehr kommt noch
                      Licht: DMX LED Beleuchtung (24V), MW HLG Serie und eldoled Dimmer
                      Heizung: Brötje WBS 22F, OG Heizkörper und FuBoHeizung über RTL, EG FuBoHeizung

                      Kommentar

                      • simon_hh
                        Lox Guru
                        • 18.09.2015
                        • 2659

                        #12
                        Moin sarnau und auch PeterChrisben ,

                        ich habe noch etwas durch den Code geschnüffelt und mit verschiedenen Trackern mal versucht mitzuloggen, ab wann der Status auf -1 geht.
                        Die Ausgänge werden wohl nach 3 Abfragen (ich hatte Sleep auf 1 Min und 10 Min gestellt und mitgeloggt) auf Minus 1 (-1) gesetzt.

                        So könnte ich mir vorstellen, dass eventuell ein Buffer Overflow vorliegt:
                        In Zeile 0225 gibst Du den Speicher von httpPtr wieder frei. Nun habe ich gesucht, ob es noch eine Variable gibt, die überlaufen könnte.
                        httpPtr und auch buffer sind die einzigen globalen Variablen. buffer wird aber nirgends mehr freigegeben, alle anderen in der while(True) bzw. while(1) Schleife.
                        Ich habe nun um Freigabe von buffer ergänzt und das scheint momentan zu funktionieren:
                        Also am Ende der Schleife vor dem sleeps(...)

                        PHP-Code:
                            free(httpPtr);
                            free(buffer); 
                        
                        Ich werde das nun noch ewas testen und die Tage abwarten, aber es scheint bisher zu funktionieren.

                        ---

                        Des Weiteren hat sich ein kleiner Fehler in Zeile 0156 bis 0160 eingeschlichen:
                        PHP-Code:
                         setoutput(1, restmuell);
                            if(restmuell >= 0) {
                                strcpy(nextBuffer, "Restmuell");
                                nextDay = restmuell; // dies ist der naechste Termin der Muellabfuhr
                            } 
                        
                        hier stand if(papiertonne>=0) {...

                        LG Simon
                        Zuletzt geändert von simon_hh; 30.07.2018, 10:37.
                        Haus: Bj 1959, gekauft 2011, totale Entkernung, Dachausbau, Erweiterung & Vergrößerung: Start: 2014, Ende: 2050
                        Loxone: 1 x Ms Gen.02, 1 x MS Gen.01, 5 x Ext., 4 x Relay Ext., 1 x Dimmer Ext., 2 x 1-wire Ext., 1 x DMX Ext. 1 x TREE Ext. mehr kommt noch
                        Licht: DMX LED Beleuchtung (24V), MW HLG Serie und eldoled Dimmer
                        Heizung: Brötje WBS 22F, OG Heizkörper und FuBoHeizung über RTL, EG FuBoHeizung

                        Kommentar

                        • sarnau
                          Smart Home'r
                          • 23.02.2018
                          • 46

                          #13
                          Sorry, für den Delay. Habe den Thread glatt übersehen. Danke für den Bugreport, in der Tat gibt es ein Problem – komisch, daß mein PicoC Tester den nicht gefunden hat…

                          (a) der free(httpPtr) fehlt. Das ist ein Speicherleck, der nach ein paar Tagen zum Beenden des Programms führt.
                          (b) free(buffer) ist falsch. Der Buffer liegt auf dem Stack und braucht nicht freigegeben werden. Der Miniserver scheint den free() zu ignorieren, auf anderen Plattformen würde dieser free() abstürzen.
                          (c) Ich habe schlicht vergessen die Version upzudaten. Der if war schon lange gefixt. Es gibt – am Anfang dieses Threads – einen neuen Pointer auf den Gist mit dem aktuellen Sourcecode. Jetzt auch mit Laubterminen im Herbst. Weihnachtsbäume müssen bis Mitte August warten, dann kann man sehen, wie die Stadtreinigung sie meldet.

                          Kommentar

                          • simon_hh
                            Lox Guru
                            • 18.09.2015
                            • 2659

                            #14
                            Moin Markus,

                            womit testest Du das Script? Du schreibst von einem PicoC Tester.

                            Ich habe den Quelltext mal übernommen und nun gar keine Werte mehr.
                            Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 3.PNG
Ansichten: 492
Größe: 10,6 KB
ID: 162397
                            Hast Du eine Idee, wo nun der Fehler liegt?
                            Einen Debugger hat die loxone Umgebung ja leider nicht
                            Haus: Bj 1959, gekauft 2011, totale Entkernung, Dachausbau, Erweiterung & Vergrößerung: Start: 2014, Ende: 2050
                            Loxone: 1 x Ms Gen.02, 1 x MS Gen.01, 5 x Ext., 4 x Relay Ext., 1 x Dimmer Ext., 2 x 1-wire Ext., 1 x DMX Ext. 1 x TREE Ext. mehr kommt noch
                            Licht: DMX LED Beleuchtung (24V), MW HLG Serie und eldoled Dimmer
                            Heizung: Brötje WBS 22F, OG Heizkörper und FuBoHeizung über RTL, EG FuBoHeizung

                            Kommentar

                            • sarnau
                              Smart Home'r
                              • 23.02.2018
                              • 46

                              #15
                              Ich habe einen PicoC Interpreter mit UI – auf meinem Mac. Hast Du STRASSE und HAUSNUMMER angepaßt?

                              Kommentar


                              • simon_hh
                                simon_hh kommentierte
                                Kommentar bearbeiten
                                ja klar
                            Lädt...