Ankündigung

Einklappen
Keine Ankündigung bisher.

openHAB2 und CalDav

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

    openHAB2 und CalDav

    Hallo,

    mein openHAB2 läuft eingentlich sehr gut.
    Ich möchte noch einen Kalender anzeigen lassen.
    Hab mir schon diverse Anleitungen reingezogen, aber iregendwie funktioniert das Binding nicht richtig.

    Ich habe eine Google Calendar eingebunden. Nach dem das eher nicht gut funkitioniert hat, hab ich mir am Raspberry owncloud installiert. Webzugriff funktioniert, Kalenderfreigaben auch. Jedoch das Binding auf openHAB geht noch immer nicht.

    Kennt ihr das Problem?

    Meine Konfiguration:
    caldavio.cfg
    Code:
    caldavio:dienstlich:url=http://openhab/owncloud/remote.php/dav/calendars/Christian/dienstlich
    caldavio:dienstlich:username=Christian
    caldavio:dienstlich:password=christian
    caldavio:dienstlich:reloadInterval=60
    caldavio:dienstlich:reloadTime=2880
    caldavCommand.cfg und caldavPersonal.cfg braucht man glaub nicht zwingend.

    items
    Code:
    String OfficeCalName0 "Termin jetzt [%s]" <calendar> { caldavPersonal="calendar:dienstlich type:ACTIVE eventNr:1 value:NAME" } //eventNr for concurrent events
    DateTime OfficeCalTime0 "Beginn [%1$tT, %1$td.%1$tm.%1$tY]" <calendar> { caldavPersonal="calendar:dienstlich type:ACTIVE eventNr:1 value:START" } //eventNr for concurrent events
    String OfficeCalName1 "nächster Termin [%s]" <calendar> { caldavPersonal="calendar:dienstlich type:UPCOMING eventNr:1 value:NAME" }
    DateTime OfficeCalTime1 "Beginn [%1$tT, %1$td.%1$tm.%1$tY]" <calendar> { caldavPersonal="calendar:dienstlich type:UPCOMING eventNr:1 value:START" }
    String OfficeCalName2 "übernächster Termin [%s]" <calendar> { caldavPersonal="calendar:dienstlich type:UPCOMING eventNr:2 value:NAME" }
    DateTime OfficeCalTime2 "Beginn [%1$tT, %1$td.%1$tm.%1$tY]" <calendar> { caldavPersonal="calendar:dienstlich type:UPCOMING eventNr:2 value:START" }
    sitemap
    Code:
    Frame label="Infos" {
    Text item=OfficeCalName0
    Text item=OfficeCalName1
    Text item=OfficeCalName2
    }
    Logfile Auszug aus log:display org.openhab.io.caldav (karaf)
    Code:
    10:25:32.079 [ERROR] [org.openhab.io.caldav ] - [org.openhab.io.caldav.caldavloader(179)] Error during instantiation of the implementation object
    java.lang.IllegalStateException: something went wrong, the loader service should be singleton
    at org.openhab.io.caldav.internal.CalDavLoaderImpl.<i nit>(CalDavLoaderImpl.java:100)
    at sun.reflect.GeneratedConstructorAccessor175.newIns tance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_121]
    at java.lang.reflect.Constructor.newInstance(Construc tor.java:423)[:1.8.0_121]
    at java.lang.Class.newInstance(Class.java:442)[:1.8.0_121]
    at org.apache.felix.scr.impl.manager.SingleComponentM anager.createImplementationObject(SingleComponentM anager.java:236)[32rg.apache.felix.scr:2.0.6]
    at org.apache.felix.scr.impl.manager.SingleComponentM anager.createComponent(SingleComponentManager.java :108)[32rg.apache.felix.scr:2.0.6]
    at org.apache.felix.scr.impl.manager.SingleComponentM anager.getService(SingleComponentManager.java:906)[32rg.apache.felix.scr:2.0.6]
    at org.apache.felix.scr.impl.manager.SingleComponentM anager.getServiceInternal(SingleComponentManager.j ava:879)[32rg.apache.felix.scr:2.0.6]
    at org.apache.felix.scr.impl.manager.SingleComponentM anager.getService(SingleComponentManager.java:823)[32rg.apache.felix.scr:2.0.6]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse$1.run(ServiceFactoryUse.java:212)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_121]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse.factoryGetService(ServiceFactoryUse.java :210)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse.getService(ServiceFactoryUse.java:111)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceC onsumer$2.getService(ServiceConsumer.java:45)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceR egistrationImpl.getService(ServiceRegistrationImpl .java:496)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceR egistry.getService(ServiceRegistry.java:461)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.framework.BundleContextI mpl.getService(BundleContextImpl.java:619)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.apache.felix.scr.impl.manager.SingleRefPair.ge tServiceObject(SingleRefPair.java:72)
    at org.apache.felix.scr.impl.inject.BindMethod.getSer viceObject(BindMethod.java:648)
    at org.apache.felix.scr.impl.manager.DependencyManage r.getServiceObject(DependencyManager.java:2201)
    at org.apache.felix.scr.impl.manager.DependencyManage r$SingleStaticCustomizer.prebind(DependencyManager .java:1118)
    at org.apache.felix.scr.impl.manager.DependencyManage r.prebind(DependencyManager.java:1520)
    at org.apache.felix.scr.impl.manager.AbstractComponen tManager.collectDependencies(AbstractComponentMana ger.java:1005)
    at org.apache.felix.scr.impl.manager.SingleComponentM anager.getServiceInternal(SingleComponentManager.j ava:859)[32rg.apache.felix.scr:2.0.6]
    at org.apache.felix.scr.impl.manager.SingleComponentM anager.getService(SingleComponentManager.java:823)[32rg.apache.felix.scr:2.0.6]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse$1.run(ServiceFactoryUse.java:212)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_121]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse.factoryGetService(ServiceFactoryUse.java :210)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse.getService(ServiceFactoryUse.java:111)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceC onsumer$2.getService(ServiceConsumer.java:45)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceR egistrationImpl.getService(ServiceRegistrationImpl .java:496)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceR egistry.getService(ServiceRegistry.java:461)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.framework.BundleContextI mpl.getService(BundleContextImpl.java:619)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.apache.felix.eventadmin.impl.handler.EventHand lerProxy.obtain(EventHandlerProxy.java:286)[6rg.apache.karaf.services.eventadmin:4.0.8]
    at org.apache.felix.eventadmin.impl.handler.EventHand lerProxy.sendEvent(EventHandlerProxy.java:407)[6rg.apache.karaf.services.eventadmin:4.0.8]
    at org.apache.felix.eventadmin.impl.tasks.HandlerTask .runWithoutBlacklistTiming(HandlerTask.java:102)[6rg.apache.karaf.services.eventadmin:4.0.8]
    at org.apache.felix.eventadmin.impl.tasks.SyncDeliver Tasks.execute(SyncDeliverTasks.java:104)[6rg.apache.karaf.services.eventadmin:4.0.8]
    at org.apache.felix.eventadmin.impl.tasks.AsyncDelive rTasks$TaskExecuter.run(AsyncDeliverTasks.java:166 )[6rg.apache.karaf.services.eventadmin:4.0.8]
    at java.util.concurrent.Executors$RunnableAdapter.cal l(Executors.java:511)[:1.8.0_121]
    at java.util.concurrent.FutureTask.run(FutureTask.jav a:266)[:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1142)[:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)[:1.8.0_121]
    at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
    10:25:32.134 [WARN ] [org.openhab.io.caldav ] - FrameworkEvent WARNING - org.openhab.io.caldav
    org.osgi.framework.ServiceException: org.apache.felix.scr.impl.manager.SingleComponentM anager.getService() returned a null service object
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse.factoryGetService(ServiceFactoryUse.java :232)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse.getService(ServiceFactoryUse.java:111)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceC onsumer$2.getService(ServiceConsumer.java:45)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceR egistrationImpl.getService(ServiceRegistrationImpl .java:496)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceR egistry.getService(ServiceRegistry.java:461)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.framework.BundleContextI mpl.getService(BundleContextImpl.java:619)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.apache.felix.scr.impl.manager.SingleRefPair.ge tServiceObject(SingleRefPair.java:72)
    at org.apache.felix.scr.impl.inject.BindMethod.getSer viceObject(BindMethod.java:648)
    at org.apache.felix.scr.impl.manager.DependencyManage r.getServiceObject(DependencyManager.java:2201)
    at org.apache.felix.scr.impl.manager.DependencyManage r$SingleStaticCustomizer.prebind(DependencyManager .java:1118)
    at org.apache.felix.scr.impl.manager.DependencyManage r.prebind(DependencyManager.java:1520)
    at org.apache.felix.scr.impl.manager.AbstractComponen tManager.collectDependencies(AbstractComponentMana ger.java:1005)
    at org.apache.felix.scr.impl.manager.SingleComponentM anager.getServiceInternal(SingleComponentManager.j ava:859)[32rg.apache.felix.scr:2.0.6]
    at org.apache.felix.scr.impl.manager.SingleComponentM anager.getService(SingleComponentManager.java:823)[32rg.apache.felix.scr:2.0.6]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse$1.run(ServiceFactoryUse.java:212)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_121]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse.factoryGetService(ServiceFactoryUse.java :210)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceF actoryUse.getService(ServiceFactoryUse.java:111)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceC onsumer$2.getService(ServiceConsumer.java:45)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceR egistrationImpl.getService(ServiceRegistrationImpl .java:496)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.serviceregistry.ServiceR egistry.getService(ServiceRegistry.java:461)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.eclipse.osgi.internal.framework.BundleContextI mpl.getService(BundleContextImpl.java:619)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
    at org.apache.felix.eventadmin.impl.handler.EventHand lerProxy.obtain(EventHandlerProxy.java:286)[6rg.apache.karaf.services.eventadmin:4.0.8]
    at org.apache.felix.eventadmin.impl.handler.EventHand lerProxy.sendEvent(EventHandlerProxy.java:407)[6rg.apache.karaf.services.eventadmin:4.0.8]
    at org.apache.felix.eventadmin.impl.tasks.HandlerTask .runWithoutBlacklistTiming(HandlerTask.java:102)[6rg.apache.karaf.services.eventadmin:4.0.8]
    at org.apache.felix.eventadmin.impl.tasks.SyncDeliver Tasks.execute(SyncDeliverTasks.java:104)[6rg.apache.karaf.services.eventadmin:4.0.8]
    at org.apache.felix.eventadmin.impl.tasks.AsyncDelive rTasks$TaskExecuter.run(AsyncDeliverTasks.java:166 )[6rg.apache.karaf.services.eventadmin:4.0.8]
    at java.util.concurrent.Executors$RunnableAdapter.cal l(Executors.java:511)[:1.8.0_121]
    at java.util.concurrent.FutureTask.run(FutureTask.jav a:266)[:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1142)[:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)[:1.8.0_121]
    at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
    meine Version:
    166 | Active | 90 | 2.1.0.201701270707 | openHAB Core
    181 | Active | 80 | 1.10.0.201701270211 | openHAB CalDav Command Binding
    182 | Active | 80 | 1.10.0.201701270211 | openHAB CalDav Binding


    Ich werde aus dem Ding nicht schlau.
    Fehlt da was?
    Zuletzt geändert von neo2000; 31.01.2017, 10:32.

    #2
    Ist caldav nicht bei den unterstützten Bindings? Ansonsten solltest Du die Konfiguration in einer eigenen Datei vornehmen, dann darf aber caldavio: nicht vorne dran stehen. openHAB2 sollte bei der Installation des Bindings eine default Konfiguration unterhalb ./services/erzeugt haben, die kannst Du dann einfach bearbeiten.

    Kommentar


      #3
      Bei caldav muss aktuell noch caldav davor stehen. Seit der beta4 funktioniert es leider nicht mehr, gibt es eine Issue auf GitHub aber aktuell leider wenig Bewegung. Das ist das letzte was mir zum Wechsel auf OH2 fehlt.

      Kommentar


        #4
        Zitat von irgendwer Beitrag anzeigen
        Bei caldav muss aktuell noch caldav davor stehen.
        Was heißt das? Wenn Du meinst, dass in den einzelnen *.cfg Dateien das Prefix stehen muss, so wie bei OH1, dann funktioniert das leider bei mir nicht. Z.B
        caldavio.cfg müsste so aussehen für OH2:
        Code:
        timeZone=Europe/Berlin
        Ich habe allerdings auch diese Variante ausprobiert, nachdem Hr. Google auch diesen Vorschlag hatte:
        Code:
        caldavio:timeZone=Europe/Berlin
        Das habe ich bei allen caldav*.cfg Dateien gemacht, hat aber wie gesagt nichts geholfen ...

        Wenn Du also eine Lösung hast, wäre ich Dir sehr dankbar.

        Viele Grüße
        Michael

        Kommentar


          #5
          Wie gesagt, die aktuelle Version funktioniert seit OH2 Beta 4 nicht mehr, selbst der Entwickler scheint noch keine Idee zu haben. Wenn ich es richtig verstanden habe hat es schon mit OH2 funktioniert, eben bis zur Beta 4.

          Finde leider die Issue auf GitHub nicht mehr.

          Vielleicht kann querdenker2k ja kurz einen Status dazu sagen.

          Kommentar


            #6
            Hi,
            Ja der Stand stimmt so. Ich benutze es leider aktuell auch nicht mehr. Hatte auch schon bei OH2 direkt das Problem das es mit caldavio:* geschrieben werden musste und mir keiner der admins sagen konnte warum das bei dem Binding so ist und bei allen anderen ohne dem Präfix funktioniert. Ich schaffe es auch aktuell auch nicht die OH2 Runtime für die Entwicklung bei mir aufzusetzen.

            Aktuell scheint die einzige Option eine OH1 Installation nebenbei laufen zu lassen. Habe ich aktuell auch für alte Bindings die nicht OH2 kompatibel sind.

            Kommentar


              #7
              Hmm... Wenn ich das hier so lese erscheint mir mein Umstieg auf openHAB 2 doch wieder etwas verfrüht
              Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's einfach gemacht.

              http://cleveres-heim.de

              Kommentar


                #8
                querdenker2k
                Schade, das hört sich so an als ob es erstmal von deiner Seite aus keine weiteren Versuche gibt hieran etwas zu ändern? Fachlich kann ich hier leider auch nicht weiter helfen. Habe schon etwas mit Habpanel rumgespielt und das ist schon ein gutes Argument für einen Wechsel auf 2.0. Hier würden sich die Termine aus meinem Google Calender gut machen

                Einigen Threds im OH2 Forum entnehme ich, das es dem Project wohl derzeit sehr an Manpower für diverse Dinge fehlt. Zuletzt wurde aber auch an vielen Stellen herum geschraubt, mal sehen ob sich das nach dem Release der 2.0 bessert. Das KNX Binding für die 2.0 ist wohl endlich in einem halbwegs lauffähigem Zustand, u.a. mit Thing Erstellung durch ETS Import. Das will ich mir demnächst noch anschauen.

                Kommentar


                  #9
                  Also wenn ich mir das durchlese, dann funktioniert caldav bisher eher nicht.
                  Da bin ich ja beruhigt, dass es nicht an meiner Konfiguration .iegt.

                  Kommentar


                    #10
                    Also bei mir funktioniert calDav. Allerdings müssen bei allen caldavio.cfg, caldavPersonal.cfg und caldavCommand.cfg jeweils das Präfix angehängt werden. Da ich allerdings mit meiner ownCloud Probleme habe, bekomme ich bei manchen Terminen Fehlermeldungen. Grundsätzlich werden jedoch Termine in Items übernommen.

                    Kommentar


                      #11
                      Welche Version vom calDav Binding hast du?
                      Wie schaut die caldavio.cfg aus?

                      Kommentar


                        #12
                        Also mein karaf gibt folgendes aus:
                        Code:
                        openhab> bundle:list|grep Cal
                        207 | Active   |  80 | 1.9.0                 | openHAB CalDav Command Binding
                        208 | Active   |  80 | 1.9.0                 | openHAB CalDav Binding
                        223 | Active   |  80 | 1.9.0                 | openHAB CalDav Calendar
                        Folgende openhab Version:
                        Code:
                        dpkg -l | grep openhab
                        ii  openhab2                              2.0.0-1                           all          openhab2
                        Code:
                        caldavio:timeZone=Europe/Berlin
                        
                        # Dienstlicher/privater Kalender
                        caldavio:dienstlich:url=https://url_zum_kalender
                        caldavio:dienstlich:username=user
                        caldavio:dienstlich:password=passwd
                        caldavio:dienstlich:reloadInterval=360
                        caldavio:dienstlich:preloadTime=45000
                        caldavio:dienstlich:historicLoadTime=0
                        caldavio:dienstlich:disableCertificateVerification=true
                        In den anderen cfg Dateien habe ich ebenso die Präfixe stehen, so wie hier das caldavio:

                        Kommentar


                          #13
                          Ich hab eine neuere Version laufen.

                          Code:
                          184 | Active   |  80 | 1.10.0.201702140757   | openHAB CalDav Command Binding
                          185 | Active   |  80 | 1.10.0.201702140757   | openHAB CalDav Binding
                          190 | Active   |  80 | 1.10.0.201702140757   | openHAB CalDav Calendar
                          Code:
                          [13:03:50] pi@openHAB:~$ dpkg -l|grep openhab
                          ii  openhab2                        2.1.0~20170214032758-1       all          openhab2
                          Die config hab ich schon in allen Varianten laufen lassen. Kein Erfolg.

                          Kommentar


                            #14
                            Dann wurde wohl in der neueren Version was geändert, was das calDav Binding nicht verträgt :-(
                            Gibt es dazu bereits einen issue?

                            Kommentar


                              #15
                              Ich hab den selben Fehler auch in älteren Versionen gehabt. Darum hab ich das Update vom openHab und Binding gemacht.
                              Issues gibts einige, aber keine Lösungen. Was ist bisher gefunden habe.

                              Kommentar

                              Lädt...
                              X