Ankündigung

Einklappen
Keine Ankündigung bisher.

calDAV Integration ?

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

    Hmm, das Ölsardinen-Problem hatte ich auch

    Gründe waren hier:
    1. Falsche URL oder
    2. Unsichere Anmeldung war für den Kalender bei Google (standardmäßig) deaktiviert (was auch besser ist). Nachdem ich es erlaubt hatte ging es (ist aber unschön).

    Klappt allerdings nur mit dem Hauptkalender. Wenn ich mir zusätzliche Kalender anlege, läuft es mit der kalenderspezifischen URL auch nicht.
    Konnte bisher nur Termine anzeigen, die als nicht ganztägige Einzeltermine angelegt waren.

    Mein Versorger bietet beispielsweise den Müllkalender als iCal an, diesen kann ich auhc in Google importieren. Wenn ich den in den Kalender in openHAB anbinde, zeigt er mit die Termine nicht an,eventuell da sie ganztägig sind.

    Würde mich also brennend interessieren, wie man die Anbindung an und in Google so einstellt, daß man nur einen bestimmten Kalender (hier meinen "muellkalender", "schulferien" etc) synchronisiert und dann auch Ganztagstermine sieht (idealerweise nach Beschreibung gefiltert, aber das wäre dann die Kür). Hab mir schon einen Wolf gefrickelt, komme aber nicht weiter. In der Bindung-Config wird ja die Kalender-ID (die bei Google) nicht eingestellt, welche spezielle URL für die einzelnen "Overlays" genommen werde nkann bleibt im Dunkeln. Oder ich bin einfach zu doof ;-)
    Cheers,
    Babbe
    Zuletzt geändert von Babbe; 18.01.2016, 07:42.

    Kommentar


      Ich habe noch eine Frage die etwas von der eigentlich Integration abschweift.
      Mich würde interessieren wie ich die Icons vor den Terminen in Abhängigkeit von dem Inhalt/Titel ändern kann.

      Also zum Beispiel:
      Termin jetzt - enthält Yellow / Brown / Black usw. , dann änder das Icon in ...(was auch immer)


      Kommentar


        Vermutlich ist es das Einfachste, Du legst das Item in der Sitemap für jedes Icon einmal an, setzt die Icons pro Itemzeile fest auf einen Wert und lässt anschließend die ungültigen Zeilen mit der visibility-Bedingung verschwinden.
        Der State des Items enthält ja mehr als die Farbe der Tonne, weshalb er zum Dynamisieren des Icons ungeeignet ist. Da die Bedingung für die Visibility vermutlich auch nur exakt matchen kann (itemstate==irgendwas) denke ich, dass Du ein Hilfsitem anlegen musst, welches Du per Rule auf den passenden Wert setzt. Davon machst Du dann die Sichtbarkeit abhängig.
        Zuletzt geändert von udo1toni; 20.01.2016, 20:23.

        Kommentar


          Zitat von Babbe Beitrag anzeigen
          Würde mich also brennend interessieren, wie man die Anbindung an und in Google so einstellt, daß man nur einen bestimmten Kalender (hier meinen "muellkalender", "schulferien" etc) synchronisiert und dann auch Ganztagstermine sieht (idealerweise nach Beschreibung gefiltert, aber das wäre dann die Kür).

          OK, ich bin einen Schritt weiter.

          Die einzige URL, die bei mir funktioniert hat war im Format:
          Code:
          caldavio:<KALENDERID_IN_OPENHAB>:url=https://www.google.com/calendar/dav/<HIER_DIE_MAIL_ADRESSE_BEI_GOOGLE>/events
          Ganztagestermine zeigt er nun auch an... ich war doch etwas doof und habe vergessen den Zeitraum, welcher betrachtet wird, auf mehr als nur einen Tag zu setzen.
          Somit tauchen meine Termine nun auch auf.
          Code:
          # Default is 1 Day (1440 minutes)
          ​caldavio:<KALENDERID_IN_OPENHAB>:preloadTime=10080
          Das mit der Sichtbarkeit der Einträge in der Sitemap kann wie von udo1toni beschrieben gelöst werden. Allerdings kommt man da schnell auf eine stolze Zahl von Einträgen (Mein Entsorger liefert im iCal Termin für Restmüll, Leichtverpackungen, Biotonne, Altpapier, Grünabfall, Gefahrenstoffe und - nicht zu vergessen - einmal pro Jahr die Weihnachtsbaumabholung )

          Beispiel (Irgendwo im Forum gefunden und für mich angepasst):
          Code:
          Text item=CalTime0 visibility=[CalName0==Leichtverpackungen] icon="tonne-Leichtverpackungen" labelcolor=["orange"] valuecolor=["orange"]
          Text item=CalTime0 visibility=[CalName0==Biotonne] icon="tonne-Biotonne" labelcolor=["brown"] valuecolor=["brown"]
          Text item=CalTime0 visibility=[CalName0==Restabfall] icon="tonne-Restabfall" labelcolor=["black"] valuecolor=["black"]Text item=CalTime0 visibility=[CalName0==Altpapier] icon="tonne-Altpapier" labelcolor=["blue"] valuecolor=["blue"]
          CalName0 hängt an der Beschreibung des Termins, CalTime0 and der Zeit:
          Code:
           String CalName0   " [%s]"   (calendar) { caldavPersonal="calendar:l<KALENDERID_IN_OPENHAB> type:UPCOMING eventNr:1 value:NAME" }
            DateTime CalTime0 " [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"            <calendar> (calendar) { caldavPersonal="calendar:<KALENDERID_IN_OPENHAB> type:UPCOMING eventNr:1 value:START" }
          Leider scheint es nicht zu funktionieren, dass man (vergleichbar mit den icons für Dimmer oder Rolladen) anhand vom Wert des Items eine spezielle Version eines Icons lädt. Geht wohl nur für die numerischen Werte, somit muss immer das Icon komplett angegeben werden. Ggf könnte man da was mit einem Mapping basteln... mal sehen.

          Perfekt wäre allerdings, wenn man einen speziellen Kalender anfragen könnte - im Hauptkalender tummeln sich sicherlich auch mal andere Dinge.


          Cheers,
          Babbe

          Kommentar


            Stellst du dir so etwas vor?

            Code:
            String CalName0 " [%s]" (calendar) { caldavPersonal="calendar:<KALENDERID_IN_OPENHAB> type:UPCOMING eventNr:1 filter:'Biotonne' value:NAME" }
            DateTime CalTime0 " [%1$td.%1$tm.%1$tY %1$tH:%1$tM]" <calendar> (calendar) { caldavPersonal="calendar:<KALENDERID_IN_OPENHAB> type:UPCOMING eventNr:1 filter:'Biotonne' value:START"

            Kommentar


              Ich bin am verzweifeln, vielleicht erlöst mich ja einer von meinen Qualen.

              Die Termine, auch von den Nebenkalendern, werden abgerufen, zumindestens befinden Sie sich in dem Verzeichnis etc/caldav/<kalendername> viele ICS Dateien.

              ABER kriege es nicht hin, das die abgerufenen Daten auch in der Sitemap angezeigt werden.

              In der Items-Datei steht folgendes:
              Code:
              // Mülltermine
              String Termin   "Termin jetzt [%s]"     <calendar>  {caldavPersonal="calendar:privat type:EVENT eventNr:1 value:NAME"}
              DateTime TerminDate "Beginn [%1$tT, %1$td.%1$tm.%1$tY]"         <calendar>  {caldavPersonal="calendar:privat type:EVENT eventNr:1 value:START"}
              String Termin1   "Termin [%s]" <calendar>  {caldavPersonal="calendar:privat type:EVENT eventNr:2 value:NAME" }
              DateTime Termin1Date "Beginn [%1$tT, %1$td.%1$tm.%1$tY]"         <calendar>  {caldavPersonal="calendar:privat type:EVENT eventNr:2 value:START"}
              String Termin2   "Termin [%s]" <calendar> {caldavPersonal="calendar:privat type:EVENT eventNr:3 value:NAME"}
              DateTime Termin2Date "Beginn [%1$tT, %1$td.%1$tm.%1$tY]"             <calendar> {caldavPersonal="calendar:privat type:EVENT eventNr:3 value:START"}
              In der Sitemap habe ich folgendes:
              Code:
              sitemap short label="Sitemap short"
              {
              Frame label="Termine" {
              Text item=Termin
              Text item=Termin1
              Text item=Termin2
              }
              }
              Aber hinter dem Termin wird nur ein "-" angezeigt, hat jemand bitte einen Tip für mich?

              Edit: Manchmal hilft es sich den Code noch mal anzuschauen, ich hatte eine Doppelung in der EventNr. drin, habe es im Code korrigiert und es funktioniert. Danke für die Code Funktion des Forums ohne die mir die Doppelung vermutlich nie aufgefallen wäre..
              Zuletzt geändert von Zippochonda; 22.01.2016, 11:27. Grund: Fehler gefunden

              Kommentar


                Zitat von querdenker2k Beitrag anzeigen
                Stellst du dir so etwas vor?

                Code:
                String CalName0 " [%s]" (calendar) { caldavPersonal="calendar:<KALENDERID_IN_OPENHAB> type:UPCOMING eventNr:1 filter:'Biotonne' value:NAME" }
                DateTime CalTime0 " [%1$td.%1$tm.%1$tY %1$tH:%1$tM]" <calendar> (calendar) { caldavPersonal="calendar:<KALENDERID_IN_OPENHAB> type:UPCOMING eventNr:1 filter:'Biotonne' value:START"

                Das wäre schon mal nicht schlecht. Ideal wäre es, wenn man einen Filterstring angibt, der dann diverse Kriterien prüfen kann. ("NAME='XYZ', ...")
                Aber alleine der Filter auf NAME wäre schon eine deutliche Vereinfachung.

                Eventuell könnte man auch eine Ebene tiefer ansetzen und das direkt im Binding für den Kalender angeben.
                Dann hätte man es dort schon sauber aufgedröselt. Für beides gibt es Argumente.

                Kommentar


                  Ich hänge mich mal mit meinem Problem hier an. Mein caldav läuft super und zeigte bis vor kurzem auch alles an, was es sollte. Als Server für caldav läuft ein Baikal. Ich brauchte nun einen weiteren Kalender, habe diesen angelegt und auf allen apple devices wird er auch ordentlich gehändelt. Im openhab (1.8) nun einen weiteren Kalender zugefügt und siehe da, von diesem holt er keine Daten ab. Nach mehreren Tagen mit Versuchen und Kontrollen bin ich nun darauf gekommen, es werden immer nur zwei Kalender ausgelesen. Hat jemand dieses auch schon beobachten können und eine Lösung dafür gefunden?

                  Kommentar


                    Ja, setz mal den thread count in der quartz.properties Datei auf einen höheren wert. P. S. Ich schreib es ins wiki

                    Kommentar


                      Super, das hat funktioniert, wieder etwas dazugelernt.

                      Ich hab gesehen, dass im git zu caldav der Baikal noch nicht beschrieben ist. Vielleicht braucht das ja jemand, oder will das mal dazusetzen:

                      Baikal
                      Code:
                        
                       caldavio:kalendername:url=https://server_ip/baikal/cal.php/calendars/username/kalender_id  
                       caldavio:kalendername:username=username  
                       caldavio:kalendername:password=password  
                       caldavio:kalendername:reloadInterval=10  
                       caldavio:kalendername:preloadTime=20000
                      Zuletzt geändert von Jaccolino; 24.01.2016, 19:17.

                      Kommentar


                        Ich muss mich leider nochmal selber pushen bei mir geht es noch immer nicht hatte schon alles relevante gepostet aber leider gab es irgendwie keine Lösung.

                        Post 180
                        Hoffe noch immer auf eure Hilfe.

                        MFG Maggi

                        Kommentar


                          Zitat von csamaggi Beitrag anzeigen
                          Ich muss mich leider nochmal selber pushen bei mir geht es noch immer nicht hatte schon alles relevante gepostet aber leider gab es irgendwie keine Lösung.



                          Hoffe noch immer auf eure Hilfe.

                          MFG Maggi

                          Ich vermute Du verwendest (so wie in Post 180 zu sehen, eine falsche URL.

                          Bei mir funktioniert nur diese Config:
                          url=https://www.google.com/calendar/dav/<HIER_DIE_MAIL_ADRESSE_BEI_GOOGLE>/events
                          Alles andere klappt bei mir nicht.

                          Dann bei Google unter "Mein Konto", "Anmeldung und Sicherheit", "Anmeldung bei Google" die Option "Weniger sichere Apps zulassen" aktivieren.
                          Sehr unschön, aber anscheinend kann das Binding sich sonst nicht anmelden.

                          Kommentar


                            Hmm das habe ich nun auch nochmal angepasst aber irgendwie scheint es als wenn ich etwas zu Blöd dafür bin es will einfach nicht.

                            Code:
                            2016-01-24 18:27:01.589 [ERROR] [i.internal.GenericItemProvider] - Binding configuration of type 'caldavPersonal' of item ‘NinaCalName0‘ could not be parsed correctly.
                            org.openhab.model.item.binding.BindingConfigParseException: missing attribute 'calendar'
                                at org.openhab.binding.caldav_personal.internal.CalDavBindingProviderImpl.processBindingConfiguration(CalDavBindingProviderImpl.java:120) ~[na:na]
                                at org.openhab.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:348) [org.openhab.model.item_1.8.0.jar:na]
                                at org.openhab.model.item.internal.GenericItemProvider.dispatchBindingsPerType(GenericItemProvider.java:309) [org.openhab.model.item_1.8.0.jar:na]
                                at org.openhab.model.item.internal.GenericItemProvider.addBindingConfigReader(GenericItemProvider.java:106) [org.openhab.model.item_1.8.0.jar:na]
                                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_91]
                                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_91]
                                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_91]
                                at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_91]
                                at org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:376) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:444) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.InstanceProcess.dynamicBind(InstanceProcess.java:416) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:334) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
                                at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
                                at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
                                at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
                                at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
                                at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
                                at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
                                at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
                                at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) [org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
                                at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:260) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:816) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:783) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89) [org.eclipse.equinox.ds_1.4.1.v20120926-201320.jar:na]
                                at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70) [org.eclipse.equinox.util_1.0.400.v20120917-192807.jar:na]

                            Kommentar


                              Du bist doch schon weiter, der Fehler mit der Anmeldung ist weg.
                              Kann es sein, daß hier im openhab.cfg der folgende Eintrag fehlt ?

                              caldavPersonal:usedCalendars=Nina


                              Das Item-Binding beschwert sich ja, wenn ich das Log richtig interpretiere, daß caldavpersonal keinen Kalender zugeordnet bekam.

                              Das Caldav-Binding ist mehrteilig. caldavio kümmert sich um die Anbindung an den Kalender, caldavpersonal stellt die Informationen für die Items zur Verfügung
                              Der Config-Eintrag verbindet beide miteinander. (Mein Verständnis, korrigiere mich wer, wenn das totaler Müll ist ;-) )

                              Außerdem steht in Deinem Post noch eine falsche Config für das Item drin. Damit bekommst du nur "Beginn" angezeigt. ändere das mal auf

                              " Beginn: [%1$td.%1$tm.%1$tY %1$tH:%1$tM]"
                              Analog für den Namen mit [%s| ergänzen.

                              Kommentar


                                Ich glaube daran liegt es wohl. Werde es sobald ich zu hause bin nochmal testen.

                                Kommentar

                                Lädt...
                                X