Ankündigung

Einklappen
Keine Ankündigung bisher.

Müllentsorgung

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Müllentsorgung

    Hi,

    ich wollte mal fragen, wie ihr die Smarterem-Müllfrage mit openhab abfangt.

    Ich habe ein Item Trash, das von einem Shellskript gefüttert wird. In einer Datei sind die Termine:
    Code:
    04.12.  Grau
    11.12.  Bio
    16.12.  Gelb
    18.12.  Papier
    24.12.  Bio
    30.12.  Gelb
    01.01.  Grau
    Bei Änderung am Vortag gibt es dann eine Notification per habdroid und beim Verlassen eine Ansage, welcher Müll morgen geholt wird.

    Wie macht ihr das denn? Google-Kalender?

    IMHO wäre ein Binding für solch eine unsmarte Aufgabenstellung sinvoll. Wie seht ihr das?

    Grüße
    Sascha

    #2
    Hi,
    meine Lösung sieht ähnlich aus.
    Bei mir gibt es drei items (binToday, binTomorrow und binDayAfterTomorrow).
    Ich lasse mit einem kleinen Javascript eine Textdatei mit Einträgen für Heute, Morgen und Übermorgen durchsuchen und bei gefundenem Wert die Farbe der Mülltonne an die items senden.
    In der CometVisu lasse ich dann entsprechend der Farbwerte die farbigen Mülltonnen anzeigen.

    Verspielt, aber sieht nett aus ;-)

    Gruß
    Hans-Jörg

    Kommentar


      #3
      Zitat von hmerk Beitrag anzeigen
      Hi,
      meine Lösung sieht ähnlich aus.
      Bei mir gibt es drei items (binToday, binTomorrow und binDayAfterTomorrow).
      Ich lasse mit einem kleinen Javascript eine Textdatei mit Einträgen für Heute, Morgen und Übermorgen durchsuchen und bei gefundenem Wert die Farbe der Mülltonne an die items senden.
      In der CometVisu lasse ich dann entsprechend der Farbwerte die farbigen Mülltonnen anzeigen.

      Verspielt, aber sieht nett aus ;-)

      Gruß
      Hans-Jörg
      Hi,

      coding Beispiele wären cool, danke!

      Gruß

      Kommentar


        #4
        Hi,

        ich hol das Thema mal wieder hoch.
        Stand vor kurzem vor dem gleichen Problem, dass ich gerne eine Anzeige auf meiner Visu haben wollte, wann welcher Müll geleert wird.

        Habe mir dann mit einigen Beiträgen hier im Forum und etwas googlen auch eine 2-stufige Lösung mit Shellscript und Weiterverarbeitung in Openhab gebastelt.
        Funktioniert für meine Zwecke aktuell super. Und da es evtl. dem ein oder anderen weiterhilft, will ich euch diese Lösung auch nicht vorenthalten. Vielleicht hat ja jemand auch noch ne Idee, wie man das ganze optimieren kann.

        Et voila:

        Termine der einzelnen Müllarten stehen je in einer Textdatei, z.B.

        trash_yellow.txt
        Code:
        2015-01-02
        2015-01-15
        2015-01-29
        ...
        Diese Textdatei wird von einem Shellscript durchsucht und liefert das nächste gefundene Datum in der Liste zurück, über Parameter beim Aufruf wird dem Script übergeben, welche Datei (d.h. für welche Müllart) durchsucht werden soll

        trash.sh
        Code:
        #!/bin/bash
        #Aktuelles Datum einlesen (inkl. Uhrzeit)
        datum=$(date +%s)
        
        #Müllart aus 1. Argument einlesen
        trash_kind=$1
        
        #entsprechend der gewählten Müllart die zu durchsuchende Datei festlegen
        trash_file="/opt/openhab/shellscripts/trash_$trash_kind.txt"
        
        #Schleife, die die Textdatei zeilenweise durchläuft, und beim 1. größeren Datum abbricht und dieses ausgibt
        #eingelesenes Datum ohne Zeit ist immer 00:00:00h
        #86399sec = 23:59:59h -> somit wird der aktuelle Tag mitgezählt
        while read datum_line
        do
            datum_line_sec=$(date -d $datum_line +%s)
            let datum_diff=$datum-$datum_line_sec
            if [ $datum_diff -lt 86399 ]
            then
                echo $datum_line
                exit 0
            fi
        done < $trash_file
        
        echo "Error"
        exit 1;
        Dieses Script wird nun über Exec-Bindung aufgerufen und in einer Rule verarbeitet. Hier beispielhaft mal für die gelbe Tüte.

        *.items
        Code:
        String Exec_TrashYellow {exec="<[/opt/openhab/shellscripts/trash.sh yellow:60000:REGEX((.*?))]"}
        String TrashYellow "Gelbe Tüte [%s]"
        *.rules
        Code:
        rule "Calculate trash dates"
        //aus Exec-Input Anzeige für Mülltermine berechnen
            when
                Time cron "0 0 1 * * ?"
            then
                var DateTime date_yellow
                var DateTime date_now
                var String trash_yellow 
                
                date_yellow = parse(""+Exec_TrashYellow.state)
                date_now =  parse(""+now.getYear+"-"+now.getMonthOfYear+"-"+now.getDayOfMonth)
              
                if (date_now.equals(date_yellow)) { trash_yellow="heute" }
                else if (date_now.equals(date_yellow.minusDays(1))) { trash_yellow="morgen" }
                else if (date_now.equals(date_yellow.minusDays(2))) { trash_yellow="übermorgen" }
                else { trash_yellow=date_yellow.toString("dd.MM.yyyy") }
        
                TrashYellow.postUpdate(""+trash_yellow)
        end
        Wie man das Datum in der Rule verarbeitet ist dabei grundsätzlich egal. Bei mir wird der nächste Termin ausgegeben, außer wenn der nächste Termin heute, morgen oder übermorgen ist. Dann wird der entsprechende Text ausgegeben und über die Sitemap farblich hervorgehoben.

        *.sitemap
        Code:
        Text label="Müllabfuhr" icon="Trash_Brown" {
                    Frame label="Nächste Termine" {
                        Text item=NTP_Datum_Uhrzeit label="Datum [%1$td.%1$tm.%1$tY]" icon="calendar"
                        Text item=TrashBrown icon="Trash_Brown" valuecolor=["heute"="red","morgen"="orange"]
                        Text item=TrashYellow icon="Trash_Yellow" valuecolor=["heute"="red","morgen"="orange"]
                    }
                    Frame label="Müllkalender" {
                        Image url="http://localhost:8080/images/myimages/trash_2015-01.jpg"
                    }
                }
        Damit sieht das Ganze bei mir wie folgt aus.

        Zum Schluss hätte ich jetzt aber auch noch ein Frage:
        Weiß jemand zufällig, ob es in OH möglich ist, dass wenn man das Bild in der Sitemap anklickt, dieses größer in einem Popup geöffnet wird?

        Grüße
        Hannibal
        Angehängte Dateien

        Kommentar


          #5
          Das ist nett. Will ich auch haben...
          Danke für die Beispiele. Läst sich der Kalender auch in HabDroid darstellen?

          EDIT: Hab gerade gesehen, dass das nur ein JPG ist. Ist wahrscheinlich nur eine Kopie eines gedruckten Kalenders, oder?

          Gruß,
          thoern

          Kommentar


            #6
            Super,

            genau so etwas habe ich gesucht. Hatte sowas Ähnliches schon in einem anderen Forum gesehen. Werde ich mal versuchen nachzubauen.

            Vielen Dank.

            Teasy

            Kommentar


              #7
              Ja, Kalender ist nur ein Scan. Hier hab ich noch keine schönere Lösung gefunden.

              Kommentar


                #8
                Gibt es das bei Euch nicht von der Stadt als SMS Service? Wäre noch einfacher

                Meine bietet das an Stadt Uster Online: SMS Dienste
                Gruss Claude

                Kommentar


                  #9
                  @hannibal: eine Verbesserung hätte ich noch. Wenn du dein Shellskript gleich so geschrieben hättest, dass dieses die Strings "heute", "morgen" "übermorgen" bzw "<datum>" zurückgeben würde, könntest du dir die Rule sparen.

                  Ist auf jeden Fall eine super Idee. Werde ich auch machen. Evtl lass ich mich noch per NotifyMyAndroid automatisch informieren.

                  Gruß,
                  thoern

                  Kommentar


                    #10
                    Danke dir hannibal29! habe das direkt übernommen!

                    Kommentar


                      #11
                      Stellst du uns die Icons zur Verfügung ? Wir hätten hier auch noche eine grüne Biotonne

                      Gruß,
                      thoern

                      Kommentar


                        #12
                        Zitat von thoern Beitrag anzeigen
                        @hannibal: eine Verbesserung hätte ich noch. Wenn du dein Shellskript gleich so geschrieben hättest, dass dieses die Strings "heute", "morgen" "übermorgen" bzw "<datum>" zurückgeben würde, könntest du dir die Rule sparen
                        Das habe ich zuerst auch überlegt, mich dann aber dagegen entschieden. Wollte in jedem Fall das Datum in openhab haben, um hier alle Freiheiten zu haben. Ist aber im Prinzip Jacke wie Hose.

                        Icons muss ich morgen mal schauen wenn ich zuhause bin. Bin aktuell unterwegs.

                        Kommentar


                          #13
                          Hallo,

                          wollte das ganze mal übernehmen und klappt leider nicht. Habe zwei Dateien trash_yellow und trash_blue mit den einzelnen Terminen angelegt. Die Dateien zusammen mit der trash.sh in das Verzeichnis /etc/openhab/configurations/shellscripts. Den Ordner Shellscripts habe ich vorher angelegt. Dann natürlich auch die Pfade in allen Dateien angepasst.
                          Habe auch eine zweite Rule für die blaue Tonne angelegt und abgeändert.

                          Sehe in der Sitemap nur einen Spiegelstrich. Im Log auch kein Fehler zu sehen.

                          Hat es vielleicht etwas mit dem Exec-Binding zu tun? Im Wiki steht etwas von old und new Format. Habe die 1.6.1 drauf.

                          Gruß Teasy

                          Kommentar


                            #14
                            Ich habe es erst mit 1.6.1 und seit heute mit 1.6.2 am laufen und kann sagen es läuft. Habe auch noch ohne Probleme andere Trashs angelegt. Habe die Rule zwar etwas an mich angepasst aber das Grundgerüst ist 1:1 kopiert..

                            Kommen den Werte rein vom EXEC Item ?

                            Kommentar


                              #15
                              Habe jetzt in die events.log geschaut und dort steht
                              Code:
                              Exec_TrashBlue state updated to 
                               Exec_TrashYellow state updated to 
                               Exec_TrashBlack state updated to
                              Heißen denn deine Dateien auch trash_yellow.txt, oder nur yellow.txt?

                              Kommentar

                              Lädt...
                              X