From 766625c8c6aa9adb377cf7051f8d98c875294f2c Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Thu, 12 Oct 2017 13:00:06 +0000 Subject: [PATCH] zwave_alliancelinks: patch from krikan & update of data (Forum #77917) git-svn-id: https://svn.fhem.de/fhem/trunk@15239 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/lib/zwave_alliancelinks.csv.gz | Bin 10377 -> 21723 bytes fhem/contrib/zwavealliance.images.parse | 560 +---------------------- 2 files changed, 15 insertions(+), 545 deletions(-) diff --git a/fhem/FHEM/lib/zwave_alliancelinks.csv.gz b/fhem/FHEM/lib/zwave_alliancelinks.csv.gz index 2d6ce8a1e595de68a8e0de2d0482e5f864461ac5..636aca86c72ce7faba68f143e830966527b2684e 100644 GIT binary patch literal 21723 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 diff --git a/fhem/contrib/zwavealliance.images.parse b/fhem/contrib/zwavealliance.images.parse index b1d15815b..b2052a28a 100644 --- a/fhem/contrib/zwavealliance.images.parse +++ b/fhem/contrib/zwavealliance.images.parse @@ -5,28 +5,16 @@ # Usage: zwavealliance.images.parse downloaddir # Downloaddir is filled with the following script: # i=1 -# while test $i -lt 2063 +# while test $i -lt 2680 # do # echo $i -# wget -q http://products.z-wavealliance.org/products/$i +# wget -O $i -q http://products.z-wavealliance.org/products/$i/XML # i=`expr $i + 1` # done die("Usage: zwavealliance.images.parse downloaddir\n") if(int(@ARGV) != 1); - -my %mf; -while(my $l = ) { - chomp($l); - my @a = split(" ", $l, 2); - $a[1] =~ s/[^A-Za-z0-9]//g; - $a[1] = lc($a[1]); - die("Double entry for $l\n") if($mf{$a[1]}); - $mf{$a[1]} = $a[0]; - print "MF ADD >$a[1]<\n"; -} - -open(OF, ">zwavealliance_links.csv"); +open(OF, ">zwave_alliancelinks.csv"); opendir(DIRH, $ARGV[0]) || die("Cant open $ARGV[0]\n"); my @files; while(my $fn = readdir(DIRH)) { @@ -38,21 +26,16 @@ for my $fn (sort { $a <=> $b } @files) { next if (! -f $path); print("$fn\n"); open(FH, $path) || die("Cant open $path\n"); - my ($bn,$bn2,$mi,$pti,$pi,$pic) = ('','','','','',''); + my ($bn,$mi,$pti,$pi,$pic,$em) = ('','','','','',''); while(my $l = ) { chomp($l); - if($l =~ m,
Brand Name:(.*)
,) { - $bn = $1; - $bn2 = $bn; - $bn2 =~ s/[^A-Za-z0-9]//g; - $bn2 = lc($bn2); - $mi = $mf{$bn2} if(defined($mf{$bn2})); - } - - $pti = $1 if($l =~ m,
Product Type ID: 0x(....)
,); - $pi = $1 if($l =~ m,
Product ID: 0x(....)
,); - $pic = $1 if($l =~ m,productName=(.*)'.*class=.ProductDetails,); + $em = empty if($l =~ m,

Oh no ... we encountered an error!

,); + $bn = $1 if($l =~ m,(.*),); + $mi = $1 if($l =~ m,0x(....),); + $pti = $1 if($l =~ m,0x(....),); + $pi = $1 if($l =~ m,0x(....),); + $pic = $1 if($l =~ m,.*productName=(.*),); } close(FH); @@ -60,528 +43,15 @@ for my $fn (sort { $a <=> $b } @files) { printf "DELETE empty $path\n"; next; } - if($mi eq '') { - printf "Missing manufId for $fn: $bn/$bn2\n"; + if($em eq 'empty') { + printf "Empty for $fn\n"; next; } - if($pti eq '' || $pi eq '') { - printf "Missing parameters for $fn: $bn/$bn2/$mi/$pti/$pi\n"; + if($mi eq '' || $pti eq '' || $pi eq '') { + printf "Missing parameters for $fn: $bn/$mi/$pti/$pi\n"; next; } - printf OF "%s-%s-%s,%s,%s\n", $mi,$pti,$pi,$fn,$pic; + printf OF "%s-%s-%s,%s,%s,%s\n", $mi,$pti,$pi,$fn,$pic,$bn; } closedir(DIRH); close(OF); - -__DATA__ -0000 Sigma Designs (Former Zensys) -0000 sigmadesigns -0001 ACT - Advanced Control Technologies -0002 Danfoss -0003 Wr@p -0004 Exhausto -0005 Intermatic -0006 Intel -0007 Vimar CRS -0008 Wayne Dalton -0009 Sylvania -000A Techniku -000B CasaWorks -000C HomeSeer Technologies -000C HomeSeer -000D Home Automated Living -000E Mohito Networks -000F ConvergeX Ltd. -0010 Residential Control Systems, Inc. (RCS) -0010 rcs -0011 iCOM Technology b.v. -0012 Tell It Online -0013 Internet Dom -0014 Cyberhouse -0015 Lexel -0016 PowerLynx -0017 HiTech Automation -0018 Balboa Instruments -0019 ControlThink LC -001A Cooper Wiring Devices -001A aspirerfwirelessbyeatonwiring -001B ELK Products, Inc. -001C IntelliCon -001D Leviton -001D visiarf -001E Express Controls -001E expresscontrolsllc -001F Scientia Technologies, Inc. -0020 Universal Electronics Inc. -0020 GE -0021 Zykronix -0022 A-1 Components -0023 Boca Devices -0024 Flue Sentinel -0025 Loudwater Technologies, LLC -0026 BuLogics -0027 Meedio, LLC -0028 2B Electronics -0029 Asia Heading -002A 3e Technologies -002B Atech -002C BeSafer -002D Broadband Energy Networks Inc. -002E Carrier -002F Color Kinetics Incorporated -0030 Cytech Technology Pre Ltd. -0031 Destiny Networks -0032 Digital 5, Inc. -0033 Electronic Solutions -0033 electronicsolutionsinc -0034 El-Gev Electronics LTD -0035 Embedit A/S -0036 Exceptional Innovations -0037 Foard Systems -0038 Home Director -0039 Honeywell -0039 mkelectric -003A Inlon Srl -003B Allegion -003C Lifestyle Networks -003D Marmitek BV -003E Martec Access Products -003F Motorola -0040 Novar Electrical Devices and Systems (EDS) -0041 OpenPeak Inc. -0042 Pragmatic Consulting Inc. -0043 Senmatic A/S -0044 Sequoia Technology LTD -0045 Sine Wireless -0046 Smart Products, Inc. -0047 Somfy -0048 Telsey -0049 Twisthink -004A Visualize -004B Watt Stopper -004C Woodward Labs -004D Xanboo -004E Zdata, LLC. -004F Z-Wave Technologia -0050 Homepro -0050 advancedcontroltechnologiesinc -0051 Lagotek Corporation -0052 Bit7 Inc. -0053 Viewsonic -0054 Superna -0055 Tridium -0056 Impact Technologies and Products -0057 Whirlpool -0058 Vitelec -0059 Horstmann Controls Limited -0059 Horstmann -005A American Grid, Inc. -005B Home Automation Inc. -005B HAI -005C Terra Optima B.V. (tidligere Primair Services) -005D Pulse Technologies (Aspalis) -005E ViewSonic Corporation -005F IQ-Group -0060 Everspring -0061 Impact Technologies BV -0062 LVI Produkter AB -0063 Jasco Products -0063 jascoproductscompany -0064 Reitz-Group.de -0064 reitzgmbh -0065 RS Scene Automation -0066 TrickleStar -0067 CyberTAN Technology, Inc. -0068 Good Way Technology Co., Ltd -0069 Seluxit -006A Kellendonk Elektronik -006B Tricklestar Ltd. (former Empower Controls Ltd.) -006C Ingersoll Rand (Schlage) -006C Schlage -006D Nefit -006E Manodo / KTC -006E Manodo -006F Erone -0070 Homemanageables, Inc. -0071 LS Control -0072 Interactive Electronics Systems (IES) -0073 Hawking Technologies Inc. -0073 Hawking -0074 PowerLinx -0075 NextEnergy -0076 Goggin Research -0077 INNOVUS -0078 anyCOMM Corporation -0079 Cooper Lighting -007A Merten -007B PiTech -007C Hunter Douglas -007D CoolGuard -007E Monster Cable -007F Logitech -0080 Vero Duco -0080 Duco -0081 SIEGENIA-AUBI KG -0082 Cisco Consumer Business Group -0082 ciscosystemsinc -0083 MTC Maintronic Germany -0084 FortrezZ LLC -0084 FortrezZ -0085 Fakro -0086 AEON Labs -0086 aeotec -0087 Eka Systems -0088 Airvent SAM S.p.A. -0089 Team Precision PCL -0089 teamprecisionpubliccoltd -008A BeNext -008A BeNextbv -008B Trane Corporation -008B Trane -008C Vera Control -008C veracontrolltd -008D Modstrøm -008E Raritan -008E raritancomputerinc -008F MB Turn Key Design -0090 Black & Decker -0090 kwikset -0091 Kamstrup A/S -0092 Martin Renz GmbH -0093 San Shih Electrical Enterprise Co., Ltd. -0094 Alarm.com -0095 Qees -0095 qeesaps -0096 NorthQ -0096 northqaps -0097 Wintop -0097 wintopelectric -0098 Radio Thermostat Company of America (RTC) -0098 radiothermostatcompanyofamerica -0099 GreenWave Reality Inc. -0099 GreenWave Systems -009A Home Automation Europe -009B 2gig Technologies Inc. -009C Cameo Communications Inc. -009D Coventive Technologies Inc. -009E Adventure Interactive -009F Exigent Sensors -0100 Insignia -0101 ADOX, Inc. -0102 SMK Manufacturing Inc. -0102 SMK -0103 Diehl AKO -0103 diehlcontrols -0104 Panasonic Electric Works Co., Ltd. -0105 Sumitomo -0106 Icontrol Networks -0106 iControl -0107 MegaChips -0108 D-Link -0108 dlinkcorporation -0109 Vision Security -0109 Vision -010A VDA -010B Sharp -010B sharpcorporation -010C There Corporation -010C There -010D e-Home AUTOMATION -010E Poly-control -010E polycontrolaps -010E danalock -010F Fibargroup -010F Fibaro -0110 Frostdale -0111 Airline Mechanical Co., Ltd. -0112 MITSUMI -0112 mitsumielectriccoltd -0113 Evolve -0113 evolveguestcontrols -0114 Kichler -0114 Kichler Lighting -0115 Z-Wave.Me -0116 Chromagic Technologies Corporation -0116 Chromagic -0117 Abilia -0118 TKB Home -0119 Omnima Limited -011A Wenzhou MTLC Electric Appliances Co.,Ltd. -011A enerwave -011A enerwavegreenautomation -011B Connected Object -011C TKH Group / Eminent -011C Eminent -011D Foxconn -011E Secure Wireless -011F Ingersoll Rand (was Ecolink) -0120 Zonoff -0121 Napco Security Technologies, Inc. -0121 Napco -0122 MSK - Miyakawa Seisakusho -0122 miyakawaelectricworksltd -0123 IWATSU -0124 Square Connect -0125 Motion Control Systems -0126 Alertme -0126 Iris -0127 DMP (Digital Monitoring Products) -0127 DMP -0128 Prodrive Technologies -0128 prodrivebv -0129 ASSA ABLOY -0129 yalelocksamphardware -0129 yale -012A Qolsys -012A Qolsysinc -012B Infusion Development -012C SANAV -012D Wilshine Holding Co., Ltd -012E Wuhan NWD Technology Co., Ltd. -012F Tecom Co., Ltd. -0130 Quby -0131 Zipato -0132 DynaQuip Controls -0132 DynaQuip -0133 Netgear -0134 AT&T -0135 ZyXEL -0136 Systech Corporation -0137 FollowGood Technology Company Ltd. -0137 FollowGood -0138 BRK Brands, Inc. -0138 firstalert -0139 Zhome -013A Living Style Enterprises, Ltd. -013B AstraLink -013C Philio Technology Corp -013C Philio -013D Pella -013E Holtec Electronics BV -013F Defacontrols BV -0140 Computime -0141 Innoband Technologies, Inc -0142 Rademacher Geräte-Elektronik GmbH & Co. KG -0143 myStrom -0144 Applied Micro Electronics "AME" BV -0145 Buffalo Inc. -0145 Buffalo -0146 Axesstel Inc -0147 R-import Ltd. -0148 Eurotronics -0148 eurotronictechnologygmbh -0148 stella -0149 wiDom -014A Ecolink -014A ecolinkintelligenttechnology -014B BFT S.p.A. -014C OnSite Pro -014D Enblink Co. Ltd -014D Enblink -014E Check-It Solutions Inc. -014E Check-It -014F Linear Corp -014F Linear -0150 Physical Graph Corporation -0151 Sercomm Corp -0151 Sercomm -0152 UFairy G.R. Tech -0152 ufairygr -0152 ufairygriottechcoltd -0153 Revolv Inc -0154 Popp & Co -0154 Popp -0155 Avadesign Technology Co., Ltd. -0156 Vivint -0157 EcoNet Controls -0158 GuangZhou Zeewave Information Technology Co., Ltd. -0159 Goap -0159 qubino -015A Jin Tao Bao -015B LG Electronics -015C Bosch Security Systems, Inc -015C Bosch -015D Willis Electric Co., Ltd. -015E Locstar Technology Co., Ltd -015E Locstar -015F McoHome Technology Co., Ltd -015F McoHome -0160 Essence Security -0160 essencegroup -0161 Promixis, LLC -0162 HomeScenario -0162 homescenarioinc -0163 Queenlock Ind. Co., Ltd. -0164 JSW Pacific Corporation -0165 ID-RF -0165 nodon -0166 CBCC Domotique SAS -0166 swiid -0167 SecureNet Technologies -0168 STRATTEC Security Corporation -0169 Bönig und Kallenbach oHG -016A Fantem -016B Echostar -016C Advanced Optronic Devices Co.,Ltd -016D Guangzhou Ruixiang M&E Co., Ltd -016E Nanjing Easthouse Electrical Co., Ltd. -016F Zhejiang Jiuxing Electric Co Ltd -0170 Powerhouse Dynamics -0171 WeBeHome AB -0171 WeBeHome -0172 PassivSystems Limited -0173 Leak Intelligence, LLC -0174 Kopera Development Inc. -0175 Devolo -0176 Telldus Technologies AB -0176 Telldus -0177 Domino sistemi d.o.o. -0178 Nexia Home Intelligence -0178 Nexa -0178 Nexia -0179 ConnectHome -017A Liveguard Ltd. -017B Vs-Safety AS -017C EbV -017D DRACOR Inc. -017E Telular -017F Wink Inc. -017F Wink -0180 Huapin Information Technology Co.,Ltd -0181 Holion Electronic Engineering Co., Ltd -0182 Securifi Ltd. -0182 Securifi -0183 Universe Future -0184 Dragon Tech Industrial, Ltd. -0185 Ningbo Sentek Electronics Co., Ltd -0185 Sentek -0186 Team Digital Limited -0187 LEVION Technologies Gmbh -0188 Vipa-Star -0189 Ness Corporation Pty Ltd -018A Globalchina-Tech -018B Grib -018C Dawon DNS -018D Flextronics -018E Climax Technology, Ltd. -018E Climax Technology -018F Focal Point Limited -0190 Building 36 Technologies -0190 Building 36 -0191 Swann Communications Pty Ltd -0193 Universal Devices, Inc -0193 Universal Devices -0195 M2M Solution -0196 Bellatrix Systems, Inc. -0197 RPE Ajax LLC (dbs Secur Ltd) -0198 Venstar Inc. -0198 Venstar -0199 Wireless Maingate AB -019A Sensative AB -019A Sensative -019B ThermoFloor -019B thermoflooras -019B heatit -019C Amdocs -019C Amdocs Software Systems Ltd -019D MOBILUS MOTOR Spólka z o.o. -019E iEXERGY GmbH -019F Webee Life -019F Webee -0200 Cloud Media -0201 Samsung Electronics Co., Ltd. -0201 Samsung -0202 Monoprice -0203 Newland Communication Science Technology Co., Ltd. -0204 Beijing Sino-American Boyi Software Development Co., Ltd -0205 Shanghai Longchuang Eco-energy Systems Co., Ltd -0207 Forest Group Nederland B.V -0209 UTC Fire and Security Americas Corp -020A Decoris Intelligent System Limited -020B Embedded System Design Limited -020C Dongguan Zhou Da Electronics Co.,Ltd -020D Novateqni HK Ltd -020E Domitech Products, LLC -020F Herald Datanetics Limited -0210 Light Engine Limited -0211 Shenzhen Liao Wang Tong Da Technology Ltd -0212 iRevo -0213 BMS Evler LTD -0214 Kaipule Technology Co., Ltd. -0214 shenzhenkaipuletechnologycoltd -0214 KT -0215 Shangdong Smart Life Data System Co.,Ltd -0216 RET Nanjing Intelligence System CO.,Ltd -0217 Strattec Advanced Logic,LLC -0218 iAutomade Pte Ltd -0219 Enwox Technologies s.r.o. -021A SHENZHEN AOYA INDUSTRY CO. LTD -021B ST&T Electric Corporation -021C Shenzhen iSurpass Technology Co. ,Ltd -021C iSurpass -021D Shenzhen Kaadas Intelligent Technology Co., Ltd -021E Red Bee Co. Ltd -021F Elexa Consumer Products Inc. -0221 HOSEOTELNET -0222 MCT CO., LTD -0223 DTV Research Unipessoal, Lda -0224 LifeShield, LLC -0228 DigitalZone -022A TIMEVALVE, Inc. -022A TIMEVALVE -022B GKB Security Corporation -022C Remote Solution -022D Mercury Corporation -022D Mercury -022E Samsung SDS -022F WRT Intelligent Technology CO., LTD. -0230 Alphonsus Tech -0231 ASITEQ -0232 MODACOM CO., LTD. -0233 eZEX Corporation -0235 TAEWON Lighting Co., Ltd. -0236 Bandi Comm Tech Inc. -0236 Bandi -0237 Vestel Elektronik Ticaret ve Sanayi A.S. -0238 Milanity, Inc. -0239 Stelpro -023A KUMHO ELECTRIC, INC -023B ROC-Connect, Inc. -023C SafeTech Products -023D Honest Technology Co., Ltd. -023E Shanghai Dorlink Intelligent Technologies Co.,Ltd -0240 Technicolor -0242 Winytechnology -0243 casenio AG -0244 Athom BV -0244 Athom -0245 permundo GmbH -0245 permundo -0246 CentraLite Systems, Inc -0247 EASY SAVER Co., Inc -024A BTSTAR(HK) TECHNOLOGY COMPANY LIMITED -024A BTSTAR -024B Huawei Technologies Co., Ltd. -024C Hankook Gas Kiki CO.,LTD. -024C Hank -024D Z-works Inc. -024D Z-works -024E Digital Home Systems Pty Ltd, -024F Smartly AS -024F Smartly -0250 Shenzhen Tripath Digital Audio Equipment Co.,Ltd -0251 Beijing Universal Energy Huaxia Technology Co.,Ltd -0252 North China University of Technology -0253 iungo.nl B.V. -0254 Spectrum Brands -0256 Inkel Corp. -0257 PARATECH -0258 Shenzhen Neo Electronics Co., Ltd -0258 shenzhenneoelectronics -0258 Coolcam -0259 Starkoff -025A GES -025C Hauppauge -5254 Remotec -5254 remotetechnologiesincorporated -5254 remotectechnologyltd