Ich habe hier ein Problem mit der ETS5.
In ein vor längerem aus der ETS3 importiertes Projekt soll ein zusätzlicher Präsenzmelder hinzugefügt werden.
Dabei erhalte ich folgenden Fehler:
Ein interner Fehler ist aufgetreten.
The product has a different hash than the existing product.
Details:
Knx.Ets.Common.Types.Exceptions.DifferentHashExcep tion: The product has a different hash than the existing product.
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Internal HardwareMerger.h(XElement A_0, XElement A_1)
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Internal HardwareMerger.f(XElement A_0, XElement A_1, Predicate`1 A_2)
bei Knx.Ets.ObjectModel.Import.XmlMerger.<>c__DisplayC lass9.<Merge>b__6(XElement existingSource)
bei System.Linq.Enumerable.WhereSelectListIterator`2.M oveNext()
bei System.Collections.Generic.List`1..ctor(IEnumerabl e`1 collection)
bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
bei Knx.Ets.ObjectModel.Import.XmlMerger.Merge(XElemen t source, XElement target, NamingPair childElementName, Func`4 mergeExisting, String objectType, Func`1 createEmtpyParentCollection, Predicate`1 shouldMerge)
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Internal HardwareMerger.g(XElement A_0, XElement A_1, Predicate`1 A_2)
bei Knx.Ets.ObjectModel.Import.XmlMerger.<>c__DisplayC lass9.<Merge>b__6(XElement existingSource)
bei System.Linq.Enumerable.WhereSelectListIterator`2.M oveNext()
bei System.Collections.Generic.List`1..ctor(IEnumerabl e`1 collection)
bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
bei Knx.Ets.ObjectModel.Import.XmlMerger.Merge(XElemen t source, XElement target, NamingPair childElementName, Func`4 mergeExisting, String objectType, Func`1 createEmtpyParentCollection, Predicate`1 shouldMerge)
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Internal HardwareMerger.Merge(XElement source, XElement target, Predicate`1 shouldMerge)
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Merge()
bei Knx.Ets.ObjectModel.Import.ManufacturerDataProcess or.<>c__DisplayClass19.<>c__DisplayClass1b.<Proces s>b__12()
bei Knx.Ets.ObjectModel.ProgressManagerExtension.Next[T](ProgressManager manager, Func`1 action)
bei Knx.Ets.ObjectModel.Import.ManufacturerDataProcess or.<>c__DisplayClass19.<Process>b__10(Manufacturer Id manufacturerId)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass3 2`2.<PartitionerForEachWorker>b__30()
bei System.Threading.Tasks.Task.InnerInvoke()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Tas k childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass11.<E xecuteSelfReplicating>b__10(Object param0)
Es handelt sich um einen B&J 6131/21.
Das gleiche Problem habe ich, wenn ich die aktuelle Applikation in den Katalog importieren möchte. Die neue .knxprod bringt beim Import die gleiche Meldung.
Lege ich ein neues Testprojekt an, kann ich dort das Gerät hinzufügen. Es liegt daher weder an der ETS, noch an den Gerätedateien.
Dann habe ich anschließend aus dem Problemprojekt sämtliche Geräte entfernt einschließlich aus dem Katalog und das Projekt exportiert.
Neu Importieren in den Katalog und anschließendes Hinzufügen des Gerätes bringt die gleiche Fehler-Meldung.
Das heißt, das unbekannte existierende Gerät mit anderem Hash-Wert ist noch irgendwo vergraben.
Daher vermutete ich verbliebene Reste trotz Löschen sämtlicher Einträge, die ich zu dem 6131/21 finden konnte.
Das exportierte Projekt habe dann mal entpackt und mir die XML-Files angekuckt. Wie vermutet, ist der Präsenzmelder noch enthalten, obwohl ich den überall raus gelöscht hatte.
B&J meinte das liegt an der KNX, die meinen das liegt an B&J.
Ich solle doch erstmal die ETS updaten. Ich bezweifle jedoch, dass damit das Problem gelöst ist.
Busch und Jäger hat das Problem seit Mai auf dem Tisch, aber da kommt nichts, außer dass sie ständig über die ETS und KNX her ziehen und ich solle erst mal updaten.
Ich glaube langsam, dass B&J dem ganzen KNX-Thema nicht mehr gewachsen ist.
Die ETS auf die 5.5 updaten geht sowieso nicht. Aktuell habe ich die 5.0.8 laufen. Mit dem Update wird der Dongel mit angefasst und der läuft dann anschließend nicht mehr mit der 5.0.8.
Zudem werden mit der 5.5 keine nicht zertifizierten IP-Gateways, wie z.B. das ibbgateway, mehr laufen und ohne die Teile geht es quasi nicht mehr.
Hatte jemand das Problem mit den Hashwerten schon mal?
Ich vermute, man muss die Reste aus dem Projekt raus fummeln. Über die ETS-GUI sehe ich da keinen Weg.
Das ZIP-Archiv auspacken, die XMLs bearbeiten ist nicht das Problem.
Kennt jemand die Methoden, wie die ETS5 das Projekt hasht?
Viele Grüße
Ralf
In ein vor längerem aus der ETS3 importiertes Projekt soll ein zusätzlicher Präsenzmelder hinzugefügt werden.
Dabei erhalte ich folgenden Fehler:
Ein interner Fehler ist aufgetreten.
The product has a different hash than the existing product.
Details:
Knx.Ets.Common.Types.Exceptions.DifferentHashExcep tion: The product has a different hash than the existing product.
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Internal HardwareMerger.h(XElement A_0, XElement A_1)
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Internal HardwareMerger.f(XElement A_0, XElement A_1, Predicate`1 A_2)
bei Knx.Ets.ObjectModel.Import.XmlMerger.<>c__DisplayC lass9.<Merge>b__6(XElement existingSource)
bei System.Linq.Enumerable.WhereSelectListIterator`2.M oveNext()
bei System.Collections.Generic.List`1..ctor(IEnumerabl e`1 collection)
bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
bei Knx.Ets.ObjectModel.Import.XmlMerger.Merge(XElemen t source, XElement target, NamingPair childElementName, Func`4 mergeExisting, String objectType, Func`1 createEmtpyParentCollection, Predicate`1 shouldMerge)
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Internal HardwareMerger.g(XElement A_0, XElement A_1, Predicate`1 A_2)
bei Knx.Ets.ObjectModel.Import.XmlMerger.<>c__DisplayC lass9.<Merge>b__6(XElement existingSource)
bei System.Linq.Enumerable.WhereSelectListIterator`2.M oveNext()
bei System.Collections.Generic.List`1..ctor(IEnumerabl e`1 collection)
bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
bei Knx.Ets.ObjectModel.Import.XmlMerger.Merge(XElemen t source, XElement target, NamingPair childElementName, Func`4 mergeExisting, String objectType, Func`1 createEmtpyParentCollection, Predicate`1 shouldMerge)
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Internal HardwareMerger.Merge(XElement source, XElement target, Predicate`1 shouldMerge)
bei Knx.Ets.ObjectModel.Import.HardwareMerger.Merge()
bei Knx.Ets.ObjectModel.Import.ManufacturerDataProcess or.<>c__DisplayClass19.<>c__DisplayClass1b.<Proces s>b__12()
bei Knx.Ets.ObjectModel.ProgressManagerExtension.Next[T](ProgressManager manager, Func`1 action)
bei Knx.Ets.ObjectModel.Import.ManufacturerDataProcess or.<>c__DisplayClass19.<Process>b__10(Manufacturer Id manufacturerId)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass3 2`2.<PartitionerForEachWorker>b__30()
bei System.Threading.Tasks.Task.InnerInvoke()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Tas k childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass11.<E xecuteSelfReplicating>b__10(Object param0)
Es handelt sich um einen B&J 6131/21.
Das gleiche Problem habe ich, wenn ich die aktuelle Applikation in den Katalog importieren möchte. Die neue .knxprod bringt beim Import die gleiche Meldung.
Lege ich ein neues Testprojekt an, kann ich dort das Gerät hinzufügen. Es liegt daher weder an der ETS, noch an den Gerätedateien.
Dann habe ich anschließend aus dem Problemprojekt sämtliche Geräte entfernt einschließlich aus dem Katalog und das Projekt exportiert.
Neu Importieren in den Katalog und anschließendes Hinzufügen des Gerätes bringt die gleiche Fehler-Meldung.
Das heißt, das unbekannte existierende Gerät mit anderem Hash-Wert ist noch irgendwo vergraben.
Daher vermutete ich verbliebene Reste trotz Löschen sämtlicher Einträge, die ich zu dem 6131/21 finden konnte.
Das exportierte Projekt habe dann mal entpackt und mir die XML-Files angekuckt. Wie vermutet, ist der Präsenzmelder noch enthalten, obwohl ich den überall raus gelöscht hatte.
B&J meinte das liegt an der KNX, die meinen das liegt an B&J.
Ich solle doch erstmal die ETS updaten. Ich bezweifle jedoch, dass damit das Problem gelöst ist.
Busch und Jäger hat das Problem seit Mai auf dem Tisch, aber da kommt nichts, außer dass sie ständig über die ETS und KNX her ziehen und ich solle erst mal updaten.
Ich glaube langsam, dass B&J dem ganzen KNX-Thema nicht mehr gewachsen ist.
Die ETS auf die 5.5 updaten geht sowieso nicht. Aktuell habe ich die 5.0.8 laufen. Mit dem Update wird der Dongel mit angefasst und der läuft dann anschließend nicht mehr mit der 5.0.8.
Zudem werden mit der 5.5 keine nicht zertifizierten IP-Gateways, wie z.B. das ibbgateway, mehr laufen und ohne die Teile geht es quasi nicht mehr.
Hatte jemand das Problem mit den Hashwerten schon mal?
Ich vermute, man muss die Reste aus dem Projekt raus fummeln. Über die ETS-GUI sehe ich da keinen Weg.
Das ZIP-Archiv auspacken, die XMLs bearbeiten ist nicht das Problem.
Kennt jemand die Methoden, wie die ETS5 das Projekt hasht?
Viele Grüße
Ralf
Kommentar