FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: katylemon am 17 Mai 2019, 11:51:19

Titel: contrib / zwavealliance.images.parse
Beitrag von: katylemon am 17 Mai 2019, 11:51:19
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 (https://products.z-wavealliance.org/products/2057) bzw. https://products.z-wavealliance.org/products/2057/XML (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>,);
Titel: Antw:contrib / zwavealliance.images.parse
Beitrag von: krikan am 19 Juli 2019, 13:22:52
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