Ankündigung

Einklappen
Keine Ankündigung bisher.

"Müllverwaltung"

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

    #16
    Das war ein Fehler
    Habe die KNX write jetzt deklariert.

    Das nächste Problem: Meine ics ist nicht nach Datum sortiert, sondern erst alle Tonnen der einen Farbe und dann die nächsten von Jan - Dez.

    Ich weiß nicht wie das in anderen Städten ist, aber hier kann es durchaus vorkommen, dass mehrere an einem Tag abgeholt werden. Er bricht aber nach der ersten Gefundenen ab.

    Konnte es jetzt beheben in dem ich den Return in der while Schleife entfernt habe.

    Als letzes ist bei meiner ics File ein Leerzeichen bei der gelben Tonne (Gelbe Behaelter). Musste "SuchText => "Gelbe Behaelter", in SuchText => "Gelbe", ändern. Jetzt findet er alles.

    Danke für die Hilfe!

    Schönen Abend

    Kommentar


      #17
      Zitat von xachsewag Beitrag anzeigen
      Das war ein Fehler
      Habe die KNX write jetzt deklariert.

      Das nächste Problem: Meine ics ist nicht nach Datum sortiert, sondern erst alle Tonnen der einen Farbe und dann die nächsten von Jan - Dez.

      Ich weiß nicht wie das in anderen Städten ist, aber hier kann es durchaus vorkommen, dass mehrere an einem Tag abgeholt werden. Er bricht aber nach der ersten Gefundenen ab.
      Danke fürs testen!
      Das Plugin ist davon ausgegangen, daß alle Einträge chronologisch in der Datei vorliegen (auch bei meheren Tonnen). Dass das nicht so ist wissen wir jetzt. Ich werde diese beiden Punkte in das Plugin einbauen und heute Abend eine neue Version 1.1 einstellen.

      Kommentar


        #18
        Zitat von haegar80 Beitrag anzeigen
        Ich werde diese beiden Punkte in das Plugin einbauen und heute Abend eine neue Version 1.1 einstellen.
        So hier ist Sie:
        Code:
        # Plugin: Entsorgungsdaten
        # Version 1.1
        # License: GPL (v3)
        #
        # Plugin zum analysieren einer iCal Datei für Meldungen z. B. Abfallkalender
        # - Die Meldungen werden als eindeutiger Code auf einer Gruppenadresse ausgegeben
        # - Die Codes sind so gestaltet, daß mehrere Zustände ausgegeben werden
        #   Die Klarschrift Ausgabe in der Visu kann dann in einem Mapping zu Texten oder Symbolen erfolgen.
        # - Mit einer Gruppenadresse kann die Meldung bis zum nächsten Ereignis zurückgesetz werden.
         
         
        ## Beginn Definitionen ##
         
        # Die iCal muss jedes Jahr angepasst werden
        my $Datei        = '/myDATA/entsorgungsdaten_de_2012_markt_regenstauf.ics'; 
                        # http://www.entsorgungsdaten.de/module.php5?fid=15&gem=31&mod=entsorgungsdaten
        my $PrefixDate    = "DTSTART;VALUE=DATE:";
        my $PrefixArt    = "SUMMARY:";
         
        my $GA_Sammelmeldung            = "0/2/220"; # DPT 6.010
        #my $GA_SammelmeldungDatum        = "0/2/221"; # optional DPT 11.001
        #my $GA_SammelmeldungZeit        = "0/2/222"; # optional DPT 10.001
        my $GA_SammelmeldungReset        = "0/2/224"; # DPT 1    
         
        # Definition der Zustände
        # Name                    => Klarnname für Log Meldungen
        # SuchText                => Text nach dem der Betreff durchsucht werden soll
        # AbholungStd            => Stunde zu der die Abholung erfolgt
        # AbholungMin            => Minuten zu der die Abholung erfolgt
        # MeldungStdVorAbholung    => Anzahl der Stunden vor der abholung zu der die Meldung erfolgt
        # GA_Meldung            => optionale Gruppenadresse für Einzelmeldung (DPT 1)
        my @EntsorgungsArten =(
            { Name => "Mülltonne",        SuchText => "Restm",    AbholungStd => 6,    AbholungMin => 20,    MeldungStdVorAbholung => 8+7,    GA_Meldung => "0/2/225"},
            { Name => "Papiertonne",    SuchText => "Papier",    AbholungStd => 11,    AbholungMin => 0,    MeldungStdVorAbholung => 8+11,    GA_Meldung => "0/2/226"},
        );
        ## Ende Definitionen ##
         
         
        use Time::Local;
        $plugin_info{$plugname.'_cycle'} = 60*60;        # Aufruf-Zyklus auf 1 Stunde setzen
         
        $plugin_subscribe{$GA_SammelmeldungReset}{$plugname} = 1;
        if ($msg{'apci'} eq 'A_GroupValue_Write' and $msg{'dst'} eq $GA_SammelmeldungReset) {
            foreach my $element (@EntsorgungsArten) {
                if ($msg{'value'} eq 0) {
                    $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"}     = 0;
                } else {
                    $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"}     = $plugin_info{$plugname.'_'.$element->{Name}."_AbholungNext"};
                    $plugin_info{$plugname.'_'.$element->{Name}."_AbholungNext"}     = 0;
                    knx_write($GA_Sammelmeldung,0,5.010);
                    plugin_log($plugname,$element->{Name}." zurückgesetzt");
                }
            }
            if ($msg{'value'} eq 1) {
                return("Entsorgungsdaten zurückgesetzt");
            }    
        }    
         
        #Zeitvariablen definieren
        my ($Sekunde,$Minute,$Stunde,$TagMonat,$Monat,$Jahr,$Wochentag,$TagJahr) = localtime(time);
        $Jahr += 1900;
         
        my $i=0;
        my ($ZeitAbholung,$MaxMeldungStdVorAbholung,$MaxZeitAbholung,$BeginnVorschau);
        plugin_log($plugname,"Code für Keine Daten = 1");
        foreach my $element (@EntsorgungsArten) {
            $i++;
            $ZeitAbholung = timelocal(0,$element->{AbholungMin},$element->{AbholungStd},$TagMonat,$Monat,$Jahr-1900);
            if ($MaxZeitAbholung < $ZeitAbholung) {
                $MaxZeitAbholung = $ZeitAbholung;
            }
            if ($MaxMeldungStdVorAbholung < $element->{MeldungStdVorAbholung}) {
                $MaxMeldungStdVorAbholung = $element->{MeldungStdVorAbholung};    
            }
            plugin_log($plugname,"Code für ".$element->{Name}." = ".2 ** $i);
            if ($plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"} > 0 and $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"} < time) {
                $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"}     = 0;
            }
            $plugin_info{$plugname.'_'.$element->{Name}."_AbholungNext"}     = 0;
            if (! $element->{GA_Meldung} eq undef) {
                knx_write($element->{GA_Meldung},0,1);
            }
        }
        $BeginnVorschau = timelocal(0,0,0,$TagMonat,$Monat,$Jahr-1900);
        if ($MaxZeitAbholung < time) {
            $BeginnVorschau += 60*60*24;
        }
        $plugin_info{$plugname."_AbholungNext"}     = 0;
         
        knx_write($GA_Sammelmeldung,0,5.010);
        my ($TagAbholung,$MonatAbholung,$JahrAbholung,$ZeitAbholung,$NextAbholung);
        my ($Sammelmeldung,$Daten);
        local $/ = "\n";
        open(my $file, '<', $Datei) or die ("ERROR open: $Datei ($!)\n");
        while(my $line=<$file>){
            $line=~s/\s+//g;
            if(index($line,$PrefixDate) >= 0) {
                $TagAbholung = substr($line,length($PrefixDate)+4+2,2);
                $MonatAbholung = substr($line,length($PrefixDate)+4,2);
                $JahrAbholung = substr($line,length($PrefixDate),4);
                $ZeitAbholung = timelocal(0,0,0,$TagAbholung,$MonatAbholung-1,$JahrAbholung-1900); 
                if ($ZeitAbholung >= $BeginnVorschau) {
                    $Daten = 1;
                }
            }    
            if(index($line,$PrefixArt) >= 0 and $ZeitAbholung >= $BeginnVorschau) {
                my $i=0;
                foreach my $element (@EntsorgungsArten) {
                    $i++;
                    if (index($line,$element->{SuchText}) >= 0){
                        $ZeitAbholung = timelocal(0,$element->{AbholungMin},$element->{AbholungStd},$TagAbholung,$MonatAbholung-1,$JahrAbholung-1900);
                        if ($ZeitAbholung >= time and $ZeitAbholung-($element->{MeldungStdVorAbholung}*60*60) <= time and $ZeitAbholung > $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"}) {
                            $plugin_info{$plugname.'_'.$element->{Name}."_AbholungNext"}     = $ZeitAbholung;
                            $Sammelmeldung += 2 ** $i;
                            knx_write($GA_Sammelmeldung,$Sammelmeldung,6.010);
                            if (! $element->{GA_Meldung} eq undef) {
                                knx_write($element->{GA_Meldung},1,1);
                            }
                            if ($NextAbholung == 0 or $ZeitAbholung < $NextAbholung) {
                                $NextAbholung = $ZeitAbholung;
                                $plugin_info{$plugname."_AbholungNext"}     = $NextAbholung = $ZeitAbholung;
                            #    if (! $GA_SammelmeldungDatum eq undef ) {
                            #        knx_write($GA_SammelmeldungDatum,$JahrAbholung."-".$MonatAbholung."-".$TagAbholung);
                            #    }
                            #    if (! $GA_SammelmeldungZeit eq undef ) {
                            #        knx_write($GA_SammelmeldungZeit,$element->{AbholungStd}.":".$element->{AbholungMin}.":00");
                            #    }
                            }
                            plugin_log($plugname,"Sammelmeldung: ".$Sammelmeldung." - ".$element->{Name}." (".2 ** $i.") am ".$TagAbholung.".".$MonatAbholung.".".$JahrAbholung." ".$element->{AbholungStd}.":".$element->{AbholungMin}." Uhr");
                        }
                    }
                }
            }    
            if(index($line,"END:VEVENT") >= 0) {
                $ZeitAbholung = 0;
            }
        }
         
        if (! $Daten ) {
            knx_write($GA_Sammelmeldung,1,5.010);
            return("Keine Daten");
        } else {
            return("Entsorgungsdaten aktualisiert");
        }
        Nochmal Danke für Testen.
        Gruß
        Sascha

        Kommentar


          #19
          Hallo Sascha,

          ich habe das plugin malbei mir implementiert. Es lief nicht so richtig. Da ich in einem anderen thread über ein DPT 5.010 gelesenahbe habe ich die Sammelmeldung an allen Stellen mit DPT 6.010 belegt.
          Alle GA sind in der ETS angelegt
          Alle GA stehen in der eibga.conf

          Das plugin läuft - allerdings kommt keinerlei Ausgabe ausser:

          [INFORMATION]
          Code:
          Muellkalender_AbholungNext0
          Muellkalender_Biotonne_AbholungNext0
          Muellkalender_Papier_AbholungNext0
          Muellkalender_Plaste_AbholungNext0
          Muellkalender_Restmüll_AbholungNext0
          Muellkalender_cycle3600
          Muellkalender_last1350940372.09228
          Muellkalender_lastsaved1350940371
          Muellkalender_meminc0
          Muellkalender_memstart0
          Muellkalender_resultEntsorgungsdaten aktualisiert
          Muellkalender_runtime0
          Muellkalender_ticks8
          Muellkalender_timeout_err0
          [/INFORMATION]

          eibga.conf:

          [INFORMATION][10/2/0]
          DPTId=6
          DPTSubId=6.010
          name=GA_Sammelmeldung

          [10/2/1]
          DPTId=11
          DPTSubId=11.001
          name=GA_SammelmeldungDatum

          [10/2/2]
          DPTId=10
          DPTSubId=10.001
          name=GA_SammelmeldungZeit

          [10/2/3]
          DPTId=1
          DPTSubId=1.001
          name=GA_SammelmeldungReset

          [10/2/4]
          DPTId=1
          DPTSubId=1.001
          name=GA_Meldung

          [10/2/5]
          DPTId=1
          DPTSubId=1.001
          name=GA_Meldung

          [10/2/6]
          DPTId=1
          DPTSubId=1.001
          name=GA_Meldung

          [10/2/7]
          DPTId=1
          DPTSubId=1.001
          name=GA_Meldung
          [/INFORMATION]

          plugin log:

          [INFORMATION]
          2012-10-22 23:10:50.952,Muellkalender,Code für Keine Daten = 1 2012-10-22 23:10:50.953,Muellkalender,Code für Restmüll = 2
          2012-10-22 23:10:50.961,Muellkalender,Code für Biotonne = 4
          2012-10-22 23:10:50.964,Muellkalender,Code für Papier = 8
          2012-10-22 23:10:50.968,Muellkalender,Code für Plaste = 16
          2012-10-22 23:10:51.054,Muellkalender,Entsorgungsdaten aktualisiert,0s,[/INFORMATION]

          und schließlich das plugin:

          [ACHTUNG]
          Code:
          # Plugin: Entsorgungsdaten
          # Version 1.1
          # License: GPL (v3)
          #
          # Plugin zum analysieren einer iCal Datei für Meldungen z. B. Abfallkalender
          # - Die Meldungen werden als eindeutiger Code auf einer Gruppenadresse ausgegeben
          # - Die Codes sind so gestaltet, daß mehrere Zustände ausgegeben werden
          #   Die Klarschrift Ausgabe in der Visu kann dann in einem Mapping zu Texten oder Symbolen erfolgen.
          # - Mit einer Gruppenadresse kann die Meldung bis zum nächsten Ereignis zurückgesetz werden.
          
          
          ## Beginn Definitionen ##
          
          # Die iCal muss jedes Jahr angepasst werden
          my $Datei        = '/var/www/Abfall.ics';
          my $PrefixArt        = "SUMMARY:"; 
          my $PrefixDate        = "DTSTART;VALUE=DATE:";
          
          
          my $GA_Sammelmeldung            = "10/2/0"; # DPT 6.010
          my $GA_SammelmeldungDatum        = "10/2/1"; # optional DPT 11.001
          my $GA_SammelmeldungZeit        = "10/2/2"; # optional DPT 10.001
          my $GA_SammelmeldungReset        = "10/2/3"; # DPT 1    
          
          # Definition der Zustände
          # Name                    => Klarnname für Log Meldungen
          # SuchText                => Text nach dem der Betreff durchsucht werden soll
          # AbholungStd            => Stunde zu der die Abholung erfolgt
          # AbholungMin            => Minuten zu der die Abholung erfolgt
          # MeldungStdVorAbholung    => Anzahl der Stunden vor der abholung zu der die Meldung erfolgt
          # GA_Meldung            => optionale Gruppenadresse für Einzelmeldung (DPT 1)
          my @EntsorgungsArten =(
              { Name => "Restmüll",    SuchText => "Restabfall",    AbholungStd => 06,    AbholungMin => 00,    MeldungStdVorAbholung => 31+30+6+1,    GA_Meldung => "10/2/4"},
              { Name => "Biotonne",    SuchText => "Bioabfall",    AbholungStd => 06,    AbholungMin => 00,    MeldungStdVorAbholung => 30+24+6+1,    GA_Meldung => "10/2/5"},
              { Name => "Papier",        SuchText => "Papier",        AbholungStd => 06,    AbholungMin => 00,    MeldungStdVorAbholung => 30+24+6+1,    GA_Meldung => "10/2/6"},
              { Name => "Plaste",        SuchText => "Plaste",        AbholungStd => 06,    AbholungMin => 00,    MeldungStdVorAbholung => 9+8,    GA_Meldung => "10/2/7"},
          );
          ## Ende Definitionen ##
          
          
          use Time::Local;
          $plugin_info{$plugname.'_cycle'} = 60*60;        # Aufruf-Zyklus auf 1 Stunde setzen
          
          $plugin_subscribe{$GA_SammelmeldungReset}{$plugname} = 1;
          if ($msg{'apci'} eq 'A_GroupValue_Write' and $msg{'dst'} eq $GA_SammelmeldungReset) {
              foreach my $element (@EntsorgungsArten) {
                  if ($msg{'value'} eq 0) {
                      $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"}     = 0;
                  } else {
                      $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"}     = $plugin_info{$plugname.'_'.$element->{Name}."_AbholungNext"};
                      $plugin_info{$plugname.'_'.$element->{Name}."_AbholungNext"}     = 0;
                      knx_write($GA_Sammelmeldung,0,6.010);
                      plugin_log($plugname,$element->{Name}." zurückgesetzt");
                  }
              }
              if ($msg{'value'} eq 1) {
                  return("Entsorgungsdaten zurückgesetzt");
              }    
          }    
          
          #Zeitvariablen definieren
          my ($Sekunde,$Minute,$Stunde,$TagMonat,$Monat,$Jahr,$Wochentag,$TagJahr) = localtime(time);
          $Jahr += 1900;
          
          my $i=0;
          my ($ZeitAbholung,$MaxMeldungStdVorAbholung,$MaxZeitAbholung,$BeginnVorschau);
          plugin_log($plugname,"Code für Keine Daten = 1");
          foreach my $element (@EntsorgungsArten) {
              $i++;
              $ZeitAbholung = timelocal(0,$element->{AbholungMin},$element->{AbholungStd},$TagMonat,$Monat,$Jahr-1900);
              if ($MaxZeitAbholung < $ZeitAbholung) {
                  $MaxZeitAbholung = $ZeitAbholung;
              }
              if ($MaxMeldungStdVorAbholung < $element->{MeldungStdVorAbholung}) {
                  $MaxMeldungStdVorAbholung = $element->{MeldungStdVorAbholung};    
              }
              plugin_log($plugname,"Code für ".$element->{Name}." = ".2 ** $i);
              if ($plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"} > 0 and $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"} < time) {
                  $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"}     = 0;
              }
              $plugin_info{$plugname.'_'.$element->{Name}."_AbholungNext"}     = 0;
              if (! $element->{GA_Meldung} eq undef) {
                  knx_write($element->{GA_Meldung},0,1);
              }
          }
          $BeginnVorschau = timelocal(0,0,0,$TagMonat,$Monat,$Jahr-1900);
          if ($MaxZeitAbholung < time) {
              $BeginnVorschau += 60*60*24;
          }
          $plugin_info{$plugname."_AbholungNext"}     = 0;
          
          knx_write($GA_Sammelmeldung,0,6.010);
          my ($TagAbholung,$MonatAbholung,$JahrAbholung,$ZeitAbholung,$NextAbholung);
          my ($Sammelmeldung,$Daten);
          local $/ = "\n";
          open(my $file, '<', $Datei) or die ("ERROR open: $Datei ($!)\n");
          while(my $line=<$file>){
              $line=~s/\s+//g;
              if(index($line,$PrefixDate) >= 0) {
                  $TagAbholung = substr($line,length($PrefixDate)+4+2,2);
                  $MonatAbholung = substr($line,length($PrefixDate)+4,2);
                  $JahrAbholung = substr($line,length($PrefixDate),4);
                  $ZeitAbholung = timelocal(0,0,0,$TagAbholung,$MonatAbholung-1,$JahrAbholung-1900); 
                  if ($ZeitAbholung >= $BeginnVorschau) {
                      $Daten = 1;
                  }
              }    
              if(index($line,$PrefixArt) >= 0 and $ZeitAbholung >= $BeginnVorschau) {
                  my $i=0;
                  foreach my $element (@EntsorgungsArten) {
                      $i++;
                      if (index($line,$element->{SuchText}) >= 0){
                          $ZeitAbholung = timelocal(0,$element->{AbholungMin},$element->{AbholungStd},$TagAbholung,$MonatAbholung-1,$JahrAbholung-1900);
                          if ($ZeitAbholung >= time and $ZeitAbholung-($element->{MeldungStdVorAbholung}*60*60) <= time and $ZeitAbholung > $plugin_info{$plugname.'_'.$element->{Name}."_ResetUntil"}) {
                              $plugin_info{$plugname.'_'.$element->{Name}."_AbholungNext"}     = $ZeitAbholung;
                              $Sammelmeldung += 2 ** $i;
                              knx_write($GA_Sammelmeldung,$Sammelmeldung,6.010);
                              if (! $element->{GA_Meldung} eq undef) {
                                  knx_write($element->{GA_Meldung},1,1);
                              }
                              if ($NextAbholung == 0 or $ZeitAbholung < $NextAbholung) {
                                  $NextAbholung = $ZeitAbholung;
                                  $plugin_info{$plugname."_AbholungNext"}     = $NextAbholung = $ZeitAbholung;
                                  if (! $GA_SammelmeldungDatum eq undef ) {
                                      knx_write($GA_SammelmeldungDatum,$JahrAbholung."-".$MonatAbholung."-".$TagAbholung);
                                  }
                                  if (! $GA_SammelmeldungZeit eq undef ) {
                                      knx_write($GA_SammelmeldungZeit,$element->{AbholungStd}.":".$element->{AbholungMin}.":00");
                                  }
                              }
                              plugin_log($plugname,"Sammelmeldung: ".$Sammelmeldung." - ".$element->{Name}." (".2 ** $i.") am ".$TagAbholung.".".$MonatAbholung.".".$JahrAbholung." ".$element->{AbholungStd}.":".$element->{AbholungMin}." Uhr");
                          }
                      }
                  }
              }    
              if(index($line,"END:VEVENT") >= 0) {
                  $ZeitAbholung = 0;
              }
          }
          
          if (! $Daten ) {
              knx_write($GA_Sammelmeldung,1,6.010);
              return("Keine Daten");
          } else {
              return("Entsorgungsdaten aktualisiert");
          }
          [/ACHTUNG]

          ach und es fehlt ein Auszug aus der ics-Datei:

          [INFORMATION]BEGIN:VEVENT
          CREATED:20121021T000000Z
          LAST-MODIFIED:20121021T000000Z
          DTSTAMP:20121021T000000Z
          SUMMARY:Plaste
          DTSTART;VALUE=DATE:20121106
          DTEND;VALUE=DATE:20121107
          URL:Aktuelles - Stadtreinigung Leipzig
          TRANSP:TRANSPARENT
          UID:LID-r-20130911-Kiefernweg xx
          LOCATION:Kiefernweg 16
          END:VEVENT[/INFORMATION]

          wo liegt denn hier das Problem?

          EDIT:
          Auf dem Bus kommen Telegramme an, so dass ich glaube das Problem liegt irgendwo zwischen der ics-Datei und der Konfiguration des scripts (vielleicht weil die Entsorgungsart in der ics-Datei vor dem Zeitpunkt definiert ist??).

          eib.log:

          2012-10-23 05:42:12.206,A_GroupValue_Write,0.0.0,10/2/0,00,0,,6.010,0,low,7,T_DATA_XXX_REQ,0 2012-10-23 06:42:13.074,A_GroupValue_Write,0.0.0,10/2/4,00,0,,1.001,0,low,7,T_DATA_XXX_REQ,0 2012-10-23 06:42:13.083,A_GroupValue_Write,0.0.0,10/2/5,00,0,,1.001,0,low,7,T_DATA_XXX_REQ,0 2012-10-23 06:42:13.097,A_GroupValue_Write,0.0.0,10/2/6,00,0,,1.001,0,low,7,T_DATA_XXX_REQ,0 2012-10-23 06:42:13.113,A_GroupValue_Write,0.0.0,10/2/7,00,0,,1.001,0,low,7,T_DATA_XXX_REQ,0
          Viele Grüße Jens

          Kommentar


            #20
            Hallo Jens,

            "Plaste" ist doch lt. ICS erst am 06.11.12

            In deiner Config sagst du, dass Plaste um 6 Uhr abgeholt wird und er 9+8 Stunden vorher Bescheid sagen soll. Also wird das Plugin erst am 05.11.12 um 13 Uhr Bescheid geben, dass Plaste abgeholt wird.

            Oder war der Auszug nur ein Beispiel?

            Das mit dem DPT 5.010 ist etwas irreführend. So wie es aussieht wird "5.010" oder der Eintrag in der eibga.conf nicht akzeptiert. Wenn man es direkt mit 5.010 (ohne Anführungszeichen) beim knx_write mitgibt, dann scheint es zu funktionieren.
            Ich habe trotzdem das Codestück im meinem Posting auf 6.010 geändert. Dann ist diese Verwirrung wenigstens weg...

            Gruß
            Sascha

            Kommentar


              #21
              Danke für die tolle Arbeit, wäre jemand so lieb und postet ein Beispiel für das Entsorgungs Mapping ?

              Gruß Lars

              Kommentar


                #22
                Zitat von larsknx Beitrag anzeigen
                Danke für die tolle Arbeit, wäre jemand so lieb und postet ein Beispiel für das Entsorgungs Mapping ?
                Meinst du sowas?
                Code:
                my @EntsorgungsArten =(
                    { Name => "Mülltonne",        SuchText => "Restm",    AbholungStd => 6,    AbholungMin => 20,    MeldungStdVorAbholung => 8+7,    GA_Meldung => "0/2/225"},
                    { Name => "Papiertonne",    SuchText => "Papier",    AbholungStd => 11,    AbholungMin => 0,    MeldungStdVorAbholung => 8+11,    GA_Meldung => "0/2/226"},
                );
                Code:
                      <mapping name="Entsorgungsdaten">
                        <entry value="0"> </entry>
                        <entry value="1">Keine Daten!</entry>
                        <entry value="2">Mülltonne</entry>
                        <entry value="4">Papiertonne</entry>
                        <entry value="6">Müll- und Papiertonne</entry>
                      </mapping>
                Gruß
                Sascha

                Kommentar


                  #23
                  @Sascha
                  War nur ein Auszug. Eigentlich sollte der Plastemuell heute abgeholt werden.
                  Viele Grüße Jens

                  Kommentar


                    #24
                    Zitat von jensgulow Beitrag anzeigen
                    (vielleicht weil die Entsorgungsart in der ics-Datei vor dem Zeitpunkt definiert ist??).
                    Genau das ist es, du müsstest das Plugin umstellen, so dass zuerst die Art und dann das Datum geprüft wird.

                    Gruß
                    Sascha

                    Kommentar


                      #25
                      So, habe leiber die ics-Datei umgeordnet. Jetzt funktioniert alles.

                      Vielen Dank für die Hilfe
                      Viele Grüße Jens

                      Kommentar


                        #26
                        hallo, das script ist klasse, leider haut es bei meiner ics datei nicht hin, da hier die termine nicht einzelnd aufgeschlüsselt werden, sondern ein termin mit einer frequency angegeben wird:

                        RRULE:FREQ=WEEKLY;UNTIL=20121127;INTERVAL=4;BYDAY= TU

                        hat jemand hierfür eine idee oder einen hint, wo man ein programm herbekommt, wo alle termin dann alle einzelnd aufgedröselt werden ?

                        Code:
                        BEGIN:VEVENT
                        DTSTAMP:20121121T101105Z
                        UID:20120202121131.4f2a6f637aa149.31017330@
                        SUMMARY:Abholung blaue Tonne
                        RRULE:FREQ=WEEKLY;UNTIL=20121127;INTERVAL=4;BYDAY=TU
                        DTSTART;VALUE=DATE:20120124
                        DTEND;VALUE=DATE:20120125
                        DESCRIPTION:\n\n\n\n\n============\nTerminerste
                         llung: 02.02.2012 12:02\nLetzte Bearbeitung: 02.02.2012 12:02\nKalender: B
                         laue Tonne\nKategorie: \n\n\nWussten sie schon ...\n   ... dass sie 
                         einen noch nicht erfassten Termin\n       für diesen Kalender vorschlagen
                          können?\n       Diese und weitere Funktionen finden sie auf\n       soeg
                         el.b-app.de
                        LOCATION:
                        BEGIN:VALARM
                        ACTION:VISUAL
                        TRIGGER;VALUE=DURATION:-P1D
                        DESCRIPTION:BAPP ALARM
                        END:VALARM
                        END:VEVENT

                        Kommentar


                          #27
                          @haegar80:

                          Wie kann ich denn dieses Datum mit der ResetGA auch zurücksetzen?

                          Code:
                              <group name="Müllkalender">
                                  <group nowidget="true">
                                    <layout colspan="6"/>
                                  <info mapping="Muell" styling="Muell">
                                      <layout colspan="2.5" />
                                      <label></label>
                                      <address transform="DPT:6.010" mode="read" variant="">10/2/0</address>
                                  </info>
                                  [COLOR=Red]<info styling="Muell">
                                      <layout colspan="2.5"/>
                                      <label></label>
                                      <address transform="DPT:11.001" mode="read" variant="">10/2/1</address>
                                  </info>[/COLOR]
                                  [COLOR=RoyalBlue]<trigger value="1" mapping="Muellbest" styling="UnwetterBG">
                                      <layout colspan="1" />
                                      <label></label>
                                      <address transform="DPT:1.001" variant="">10/2/3</address>
                                  </trigger>[/COLOR]
                                  </group>
                              </group>
                          Hätte bei Betätigung der Bestätigungs-GA (OK-Taste rechts) gerne statt des Datums der letzten Abholung einen simplen "-"


                          Jens
                          Angehängte Dateien
                          Viele Grüße Jens

                          Kommentar


                            #28
                            Zitat von jensgulow Beitrag anzeigen
                            @haegar80:

                            Wie kann ich denn dieses Datum mit der ResetGA auch zurücksetzen?
                            Ich habe selbst mit den DPT 10/11 Schwierigkeiten. Anscheinend werden die auch in Plugins nur halbherzig unterstützt.

                            Probier das doch mal:
                            Code:
                            knx_write($GA_SammelmeldungDatum,$JahrAbholung."00-00-00");
                            knx_write($GA_SammelmeldungZeit,"00:00:00");
                            Gruß
                            Sascha

                            Kommentar


                              #29
                              Also auch von meiner Seite grosses Lob für das Plugin, habs auch erfolgreich im Einsatz.

                              Mich störts ebenfalls, dass beim Reset noch das Datum anstatt "-" drinne steht. Kann man die GA fürs Datum irgendwie auf undefined setzen?

                              Code:
                              knx_write($GA_SammelmeldungDatum,$JahrAbholung."00-00-00");
                              Das funktioniert nicht, er meckert, dass ,$JahrAbholung nicht definiert ist, setze ich manuell

                              Code:
                              knx_write($GA_SammelmeldungDatum,"2013-00-00");
                              funktioniert es ebenfalls nicht.

                              Ansonsten colles Plugin -)

                              Kommentar


                                #30
                                Da fehlt eindeutig der DPT 14.001 desshalb funktioniert der zweite Codeschnipsel nicht.
                                Gruss Patrik alias swiss

                                Kommentar

                                Lädt...
                                X