Ankündigung

Einklappen
Keine Ankündigung bisher.

calDAV Integration ?

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

    So grob: Du brauchst ein zusätzliches Item, welches jeweils über die Sichtbarkeit entscheidet. Dieses Item setzt Du per Rule. Die Rule triggerst Du z.B. täglich um 4 Uhr und prüfst, ob das Datum in OfficeCalName1 kleiner als das aktuelle Datum + 2 ist, dann setzt Du das Hilfsitem auf sichtbar. Gleichzeitig kannst Du in dieser Rule einen Timer starten, der dann 17 Stunden später die Mail auslöst, oder Du schreibst eine zweite Rule, die nur für die Mail zuständig ist, um 21 Uhr getriggert wird und die gleiche Prüfung vornimmt.

    Kommentar


      So und jetzt noch mal für Anfänger
      das hab ich jetzt probiert erstmal ohne zeit abfragen...und das geht nicht
      Code:
         
      Switch Visibility "Schwartze Tonne [%s]"
      Switch Visibility1"Gelber Sack [%s]"
      Switch Visibility2"Bio Tonne [%s]"
      
      
      
      String BioTonne   "Bio Tonne [%s]"     <calendar>  { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:Name filter-name:'.*BioTonne*'" }
      DateTime    BioTonnetime    "Bio Tonne [%1$td.%1$tm.%1$tY]"    <calendar>    { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:START filter-name:'.*BioTonne*'" }
      
      
      
      
      
      String SchwartzeTonne   "Schwartze Tonne [%s]"     <calendar>  { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:Name filter-name:'.*SchwartzeTonne*'" }
      DateTime    SchwartzeTonnetime   "Schwartze Tonne [%1$td.%1$tm.%1$tY]"    <calendar>    { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:START filter-name:'.*SchwartzeTonne*'" }
      
      
      
      
      
      String GelberSack   "Gelber Sack [%s]"     <calendar>  { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:Name filter-name:'.*GelberSack*'" }
      DateTime    GelberSacktime    "Gelber Sack [%1$td.%1$tm.%1$tY]"    <calendar>    { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:START filter-name:'.*GelberSack*'" }
      
      
      
      
      rule "init Visibility"
       when
       System started
      then
      Visibility.sendCommand(OFF) 
      Visibility1.sendCommand(OFF) 
      Visibility2.sendCommand(OFF)
      end
         
         
          rule "Set  Visibility  SchwartzeTonne"
      when
          Item SchwartzeTonne received update  or
          Item GelberSack received update or
          Item BioTonne received update
      then
          if(SchwartzeTonne.state=="SchwartzeTonne"&&GelberSack.state!="GelberSack"&&BioTonne.state!="BioTonne")Visibility.sendCommand(ON)
          else  Visibility.sendCommand(OFF)
      end
      
      
      
      
      
      
      
      
      rule "Set  Visibility  GelberSack"
      when
          Item SchwartzeTonne received update  or
          Item GelberSack received update or
          Item BioTonne received update
      then
          if(GelberSack.state=="GelberSack"&&SchwartzeTonne.state!="SchwartzeTonne"&&BioTonne.state!="BioTonne")Visibility1.sendCommand(ON)
          else  Visibility1.sendCommand(OFF)
      end
      
      
      
      
      rule "Set  Visibility  BioTonne"
      when
          Item SchwartzeTonne received update  or
          Item GelberSack received update or
          Item BioTonne received update
      then
          if(BioTonne.state=="BioTonne"&&GelberSack.state!="GelberSack"&&SchwartzeTonne.state!="SchwartzeTonne")Visibility2.sendCommand(ON)
          else  Visibility2.sendCommand(OFF)
      end
      
      
      Text item=SchwartzeTonnetime icon="Trash_Black" label=" Schwartze Tonne[%1$td.%1$tm.%1$tY]"visibility=[Visibility==ON]
        Text item=GelberSacktime icon="Trash_Yellow" label="Gelber Sack[%1$td.%1$tm.%1$tY]"visibility=[Visibility1==ON]
        Text item=BioTonnetime icon="Trash_Brown" label="Bio Tonne[%1$td.%1$tm.%1$tY]"visibility=[Visibility2==ON]
      so ist alles unsichtbar irgentwo mache ich wieder Fehler

      Kommentar


        Es sieht vielleicht nur so aus, aber es könnte sein, dass Du bei der Definition der Hilfsitems teilweise keine Leerzeichen zwischen Itemnamen und Labeldefinition stehen hast.
        Weiterhin ist es eine gute Idee, etwas Abstand zu Schlüsselworten zu halten. Nenne die Items lieber visBio, visGelb und visSchwarz, das umgeht potentielle Probleme von vornherein.
        Der eigentliche Grund, warum es nicht funktioniert ist aber vermutlich, dass Du in der visibility-Definition mit Strings vergleichen musst, also zum Beispiel
        Code:
        visibility=[visBio=="ON"]

        Kommentar


          so jetzt hab ich alles angepasst nach deinen Tips..und so sieht jetzt aus
          Code:
            
          Switch visSchwarz   "Schwartze Tonne [%s]"
          Switch visGelb  "Gelber Sack [%s]"
          Switch visBio  "Bio Tonne [%s]"
          
          
          String BioTonne   "Bio Tonne [%s]"     <calendar>  { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:Name filter-name:'.*BioTonne*'" }
          DateTime    BioTonnetime    "Bio Tonne [%1$td.%1$tm.%1$tY]"    <calendar>    { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:START filter-name:'.*BioTonne*'" }
          
          
          
          
          
          String SchwartzeTonne   "Schwartze Tonne [%s]"     <calendar>  { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:Name filter-name:'.*SchwartzeTonne*'" }
          DateTime    SchwartzeTonnetime   "Schwartze Tonne [%1$td.%1$tm.%1$tY]"    <calendar>    { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:START filter-name:'.*SchwartzeTonne*'" }
          
          
          
          
          
          String GelberSack   "Gelber Sack [%s]"     <calendar>  { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:Name filter-name:'.*GelberSack*'" }
          DateTime    GelberSacktime    "Gelber Sack [%1$td.%1$tm.%1$tY]"    <calendar>    { caldavPersonal="calendar:kalender type:EVENT eventNr:1 value:START filter-name:'.*GelberSack*'" }
          
          
          
          
          rule "init Visibility"
           when
           System started
          then
          visSchwarz.sendCommand(OFF) 
          visGelb.sendCommand(OFF) 
          visBio.sendCommand(OFF)
          end
             
             
              rule "Set  Visibility  SchwartzeTonne"
          when
              Item SchwartzeTonne received update  or
              Item GelberSack received update or
              Item BioTonne received update
          then
              if(SchwartzeTonne.state=="SchwartzeTonne"&&GelberSack.state!="GelberSack"&&BioTonne.state!="BioTonne")visSchwarz.sendCommand(ON)
              else  visSchwarz.sendCommand(OFF)
          end
          
          
          
          
          
          
          
          
          
          
          rule "Set  Visibility  GelberSack"
          when
              Item SchwartzeTonne received update  or
              Item GelberSack received update or
              Item BioTonne received update
          then
              if(GelberSack.state=="GelberSack"&&SchwartzeTonne.state!="SchwartzeTonne"&&BioTonne.state!="BioTonne")visGelb.sendCommand(ON)
              else  visGelb.sendCommand(OFF)
          end
          
          
          
          
          rule "Set  Visibility  BioTonne"
          when
              Item SchwartzeTonne received update  or
              Item GelberSack received update or
              Item BioTonne received update
          then
              if(BioTonne.state=="BioTonne"&&GelberSack.state!="GelberSack"&&SchwartzeTonne.state!="SchwartzeTonne")visBio.sendCommand(ON)
              else  visBio.sendCommand(OFF)
          end
          
          
          
          Text item=SchwartzeTonnetime icon="Trash_Black" label=" Schwartze Tonne[%1$td.%1$tm.%1$tY]"visibility=[visSchwarz=="ON"]
            Text item=GelberSacktime icon="Trash_Yellow" label="Gelber Sack[%1$td.%1$tm.%1$tY]"visibility=[visGelb=="ON"]
            Text item=BioTonnetime icon="Trash_Brown" label="Bio Tonne[%1$td.%1$tm.%1$tY]"visibility=[visBio=="ON"]
          Ergebniss . ist nichts sichtbar

          Kommentar


            Lass die Labels in der Sitemap weg, Du hast sie ja schon in der Items-Datei definiert.

            Allgemein ist es keine gute Idee, die höchste Komplexität direkt einzubauen, und sich dann zu wundern, dass es nicht funktioniert. Versuche, die Items erstmal überhaupt korrekt zum laufen zu bringen (also insbesondere Deine Rules) und baue dann nach und nach zusätzliche Bedingungen ein.

            Leerzeichen erhöhen die Lesbarkeit des Codes, teilweise sind sie zwingend nötig, damit die Schlüsselwörter korrekt erkannt werden.

            Kommentar


              Danke
              Hab jetzt bisschen rumprobiert und die Switches für die Sichtbarkeit in die Sitemaps eingebaut..Wenn ich die manuel einschalte sind die Items sichtbar..Also funktionieren meine rules nicht

              Kommentar


                Da ich jetzt etwas wacher bin... Ein Status ist etwas anderes als ein String. Die Abfrage müsste also eher so aussehen (ich lass jetzt mal die 3. Bedingung weg)
                Code:
                if(BioTonne.state.toString == "BioTonne" && GelberSack.state.toString != "GelberSack")
                    visBio.sendCommand(ON)
                else
                    visBio.sendCommand(OFF)

                Kommentar


                  Leider genauso Wenn ich die manuel einschalte sind die Items sichtbar ansonsten alles unsichtbar

                  Kommentar


                    Dann mach doch mal ein logInfo zur Erhellung...
                    Code:
                    rule "Test Gelber Sack"
                    when
                        Item GelberSack received update
                    then
                       logInfo("MyRule","Gelber Sack: {}",GelberSack.state.toString)
                    end
                    Log Einträge findest Du dann in der openhab.log

                    Kommentar


                      Ach ja... Wenn Du ohnehin die selben Trigger verwendest, wäre es besser, nur eine Rule anzulegen, und alle Abfragen in die eine Rule einzubauen.

                      Nur am Rande... Nenn mich ruhig Besserwisser, aber schwarz schreibt man ohne t

                      Kommentar


                        Danke für t ...hab mich vertippt und dann überall reinkopiert
                        so
                        die Rule sieht jetzt so aus
                        Code:
                        rule "init Visibility"
                         when
                         System started
                        then
                        visSchwarz.sendCommand(OFF) 
                        visGelb.sendCommand(OFF) 
                        visBio.sendCommand(OFF)
                        end
                           
                           
                            rule "Set  Visibility  SchwartzeTonne"
                        when
                            Item SchwarzeTonne received update  or
                            Item GelberSack received update or
                            Item BioTonne received update
                        then
                            if(SchwarzeTonne.state.toString=="SchwarzeTonne"&&GelberSack.state.toString!="GelberSack"&&BioTonne.state.toString!="BioTonne")visSchwarz.sendCommand(ON)
                            else  visSchwarz.sendCommand(OFF)
                            if(GelberSack.state.toString=="GelberSack"&&SchwarzeTonne.state.toString!="SchwarzeTonne"&&BioTonne.state.toString!="BioTonne")visGelb.sendCommand(ON)
                             else  visGelb.sendCommand(OFF)
                             if(BioTonne.state.toString=="BioTonne"&&GelberSack.state.toString!="GelberSack"&&SchwarzeTonne.state.toString!="SchwarzeTonne")visBio.sendCommand(ON)
                            else  visBio.sendCommand(OFF)
                             
                        end
                        
                        
                        
                        
                        rule "Test Gelber Sack"
                        when
                            Item GelberSack received update
                        then
                           logInfo("MyRule","Gelber Sack: {}",GelberSack.state.toString)
                        end
                        
                        
                        
                        
                        rule "Test SchwarzeTonne"
                        when
                            Item SchwarzeTonne received update
                        then
                           logInfo("MyRule","Schwarze Tonne: {}",SchwarzeTonne.state.toString)
                        end
                        
                        
                        
                        
                        rule "Test Bio Tonne "
                        when
                            Item BioTonne received update
                        then
                           logInfo("MyRule","Bio Tonne: {}",BioTonne.state.toString)
                        end
                        log dazu
                        Code:
                        2016-06-13 21:36:54.625 [INFO ] [rg.openhab.model.script.MyRule] - Bio Tonne: BioTonne
                        2016-06-13 21:36:54.675 [INFO ] [rg.openhab.model.script.MyRule] - Schwarze Tonne: SchwarzeTonne
                        2016-06-13 21:36:54.716 [INFO ] [rg.openhab.model.script.MyRule] - Gelber Sack: GelberSack

                        Kommentar


                          Ich glaube ich habs... sind ja alle drei im log ,hab jetzt Kalender Abfrage auf 1 Woche im cfg gestellt und && Abfragen entfernt.. jetzt hab ich zwei Termine die sichtbar sind...die sind ja diese Woche
                          jetzt geht weiter
                          wie mache ich das
                          Zitat von udo1toni Beitrag anzeigen
                          Die Rule triggerst Du z.B. täglich um 4 Uhr und prüfst, ob das Datum in OfficeCalName1 kleiner als das aktuelle Datum + 2 ist, dann setzt Du das Hilfsitem auf sichtbar. Gleichzeitig kannst Du in dieser Rule einen Timer starten, der dann 17 Stunden später die Mail auslöst, oder Du schreibst eine zweite Rule, die nur für die Mail zuständig ist, um 21 Uhr getriggert wird und die gleiche Prüfung vornimmt.
                          so sieht die rule jetzt aus
                          Code:
                            
                              rule "Set  Visibility   "
                          when
                              Item SchwarzeTonne received update  or
                              Item GelberSack received update or
                              Item BioTonne received update
                          then
                              if(SchwarzeTonne.state.toString=="SchwarzeTonne")visSchwarz.sendCommand(ON)
                              else  visSchwarz.sendCommand(OFF)
                              if(GelberSack.state.toString=="GelberSack")visGelb.sendCommand(ON)
                               else  visGelb.sendCommand(OFF)
                               if(BioTonne.state.toString=="BioTonne")visBio.sendCommand(ON)
                              else  visBio.sendCommand(OFF)
                              
                          end
                          Zuletzt geändert von djuscha; 13.06.2016, 22:48.

                          Kommentar


                            @udo1toni
                            meinst du in etwa so?
                            Code:
                              
                             rule "Set  Visibility   "
                            when
                                Item SchwarzeTonne received update  or
                                Item GelberSack received update or
                                Item BioTonne received update
                            then
                            Time cron "0 00 04 * * ?"
                                if(SchwarzeTonne.state.toString=="SchwarzeTonne"||SchwarzeTonnetime>=Time+2)visSchwarz.sendCommand(ON)
                                createTimer(now.plusMinutes(420)) [| sendMail("openhab@gmail.com","SchwarzeTonne") ]
                                else  visSchwarz.sendCommand(OFF)
                               
                                if(GelberSack.state.toString=="GelberSack"||GelberSacktime>=Time+2)visGelb.sendCommand(ON)
                                createTimer(now.plusMinutes(420)) [| sendMail("openhab@gmail.com","GelberSack") ]
                                 else  visGelb.sendCommand(OFF)
                                
                                 if(BioTonne.state.toString=="BioTonne"||BioTonnetime>=Time+2)visBio.sendCommand(ON)
                                 createTimer(now.plusMinutes(420)) [| sendMail("openhab@gmail.com","BioTonne") ]
                                else  visBio.sendCommand(OFF)
                                 
                            end

                            Kommentar


                              Ha, das wäre toll, wenn's so einfach wäre

                              Leider ist Time nur ein Schlüsselwort und keine Variable. Aber schau mal hier, soetwas brauchst Du dazu.

                              Kommentar


                                Leider Verstehe ich nur Bahnhof muss ich wohl wieder alles mit drei rules machen
                                kannst du mir auf die Sprunge helfen?
                                Zuletzt geändert von djuscha; 18.06.2016, 19:31.

                                Kommentar

                                Lädt...
                                X