contrib / zwavealliance.images.parse

Begonnen von katylemon, 17 Mai 2019, 11:51:19

Vorheriges Thema - Nächstes Thema

katylemon

In der Datenbank der ZWave alliance befinden sich einige Einträge mit fehlerhaften Manufacturer-ID, ProductType-ID und/oder Product-ID.
Ein Beispiel ist unter https://products.z-wavealliance.org/products/2057 bzw. https://products.z-wavealliance.org/products/2057/XML zu sehen.
Dort ist als ProductTypeID '0x0x01' statt '0x0001' und als ProductID '0x0x12' statt '0x0012' eingetragen.

Da das Script 'zwavealliance.images.parse' überträgt die fehlerhaften IDs ohne Änderung in 'zwave_alliancelinks.csv' schreibt, fehlen bei betroffenen Produkten u.a. das Produktbild und der Eintrag "Details in alliance DB" in der Detailansicht des device.

Mit folgendem patch konnte ich das Problem lösen, aber ggf. hat ein Perl-Fachmann eine elegantere Version... ;D

35,37c35,37
<     $mi  = $1 if($l =~ m,<ManufacturerId>0x(....)</ManufacturerId>,);
<     $pti = $1 if($l =~ m,<ProductTypeId>0x(....)</ProductTypeId>,);
<     $pi  = $1 if($l =~ m,<ProductId>0x(....)</ProductId>,);
---
>     $mi  = sprintf("%04s", $2) if($l =~ m,<ManufacturerId>(0x)+([^<]*)</ManufacturerId>,);
>     $pti = sprintf("%04s", $2) if($l =~ m,<ProductTypeId>(0x)+([^<]*)</ProductTypeId>,);
>     $pi  = sprintf("%04s", $2) if($l =~ m,<ProductId>(0x)+([^<]*)</ProductId>,);

krikan

Danke für den Hinweis. Habe gestern eine aktualisierte Fassung der "zwave_alliancelinks.csv.gz" eingecheckt, bei der ich die Ersetzung vorgenommen habe. 'zwavealliance.images.parse' habe ich aber (noch?) nicht angepasst, da ich auf die "richtige" Lösung bei der alliance hoffe.

Den Thread habe ich nur per Zufall gefunden. Es wäre besser, wenn Du solche ZWave-bezogenen Beiträge im Board für ZWave postet; dort fällt das mehr/eher auf.

Gruß, Christian