Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

KNX Zeit update am KNX bus geht seit 1.8.2 nicht mehr

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

    KNX Zeit update am KNX bus geht seit 1.8.2 nicht mehr

    Hallo!

    Seit dem OH update auf 1.8.2 liefert die zeile im items file
    Code:
    DateTime  Date "Date [%1$tA, %1$td.%1$tm.%1$tY]" <calendar> { ntp="Europe/Berlin:de_DE", knx="11.001:0/0/202, 10.001:0/0/201"}
    den fehler
    Code:
    2016-03-29 16:03:06.522 [INFO ] [c.internal.ModelRepositoryImpl] - Refreshing model 'knx.items'
    2016-03-29 16:03:07.320 [ERROR] [i.internal.GenericItemProvider] - Binding configuration of type 'knx' of item ‘Date‘ could not be parsed correctly.
    org.openhab.model.item.binding.BindingConfigParseException: No more than 1 datapoint definitions are allowed for this item.
            at org.openhab.binding.knx.internal.config.KNXGenericBindingProvider.parseBindingConfigString(KNXGenericBindingProvider.java:429) ~[na:na]
            at org.openhab.binding.knx.internal.config.KNXGenericBindingProvider.processBindingConfiguration(KNXGenericBindingProvider.java:106) ~[na:na]
            at org.openhab.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:348) [org.openhab.model.item_1.8.2.jar:na]
            at org.openhab.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:324) [org.openhab.model.item_1.8.2.jar:na]
            at org.openhab.model.item.internal.GenericItemProvider.processBindingConfigsFromModel(GenericItemProvider.java:171) [org.openhab.model.item_1.8.2.jar:na]
            at org.openhab.model.item.internal.GenericItemProvider.modelChanged(GenericItemProvider.java:390) [org.openhab.model.item_1.8.2.jar:na]
            at org.openhab.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:159) [org.openhab.model.core_1.8.2.jar:na]
            at org.openhab.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:100) [org.openhab.model.core_1.8.2.jar:na]
            at org.openhab.model.core.internal.folder.FolderObserver.checkFolder(FolderObserver.java:142) [org.openhab.model.core_1.8.2.jar:na]
            at org.openhab.model.core.internal.folder.FolderObserver.run(FolderObserver.java:99) [org.openhab.model.core_1.8.2.jar:na]
    Meine definition oben schaut nicht so viel anders aus als jene in den Samples (https://github.com/openhab/openhab/w...rom-ntp-to-knx):
    Code:
    DateTime Date "Date & Time [%1$td.%1$tm.%1$tY %1$tT]" { ntp="Europe/Berlin:de_DE", knx="11.001:0/0/1, 10.001:0/0/2" }
    Ich haette wieder gerne eine aktuelle zeit am bus :-)
    Bitte um hilfe,
    Danke,
    Alex.
    Zuletzt geändert von alex73; 01.04.2016, 13:03. Grund: Geloest.

    #2
    Hallo,

    der Auslöser für diese Exception ist, dass in Version 1.8.2 in DateTimeItem.java die Zeile 37 neu hinzu kam. Der Quellcode ist hier: https://github.com/openhab/openhab/b...eTimeItem.java

    In KNXGenericBindingProvider (https://github.com/openhab/openhab/b...gProvider.java) steigt er dann in Zeile 338 aus, weil "getAcceptedCommandTypes().size()" mit der Größe 1 zwar "> 0" ist (Zeile 337), aber der "get"-Aufruf mit "i=1" führt zu einer IndexOutOfBoundsException. Ist auch klar, denn mit Größe 1 kann man "get(0)" aufrufen, aber nicht "get(1)".

    Der Code in den Zeilen 337 bis 339 in KNXGenericBindingProvider mit seinem geschachtelten Ternary-Ausdruck sieht für mich ein bisschen verstrahlt aus. Ein paar "if"-Statements an dieser Stelle würden sicherlich nicht schaden. Mal schauen, ob ich die Tage Zeit habe, das Problem zu lösen.

    Gruß,
    Martin

    Kommentar


      #3
      Dazu gibt es einen Issue (hier und hier), das Problem ist schon behoben, aber noch nicht in der1.8.2. Workaround wäre, knx doppelt zu binden, also
      Code:
      DateTime Date "Date & Time [%1$td.%1$tm.%1$tY %1$tT]" { ntp="Europe/Berlin:de_DE", knx="11.001:0/0/1", knx="10.001:0/0/2" }
      zu schreiben. Oder du ziehst Dir die gepatchte Version (läuft bei mir einwandfrei)

      Kommentar


        #4
        Hallo!

        Vielen dank fuer die hilfe! Funktioniert jetzt wieder!

        Danke,
        Alex.

        Kommentar

        Lädt...
        X