zwave_pepperconvert.pl 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/bin/perl
  2. # Details in Forum #35416
  3. if(@ARGV == 0) {
  4. print "Usage:\n".
  5. " mkdir -p <fhem>/www/deviceimages/zwave\n".
  6. " cd <fhem>/www/deviceimages/zwave\n".
  7. " wget http://www.pepper1.net/zwavedb/device/export/device_archive.zip\n".
  8. " unzip device_archive.zip\n".
  9. " perl <fhem>/contrib/zwave_pepperconvert.pl *.xml\n".
  10. " sh getpics.sh\n".
  11. " rm *.xml *.txt *.sh *.zip\n".
  12. " gzip zwave_pepperlinks.csv\n";
  13. " mv zwave_pepperlinks.csv.gz <fhem>/FHEM/lib\n";
  14. exit 1;
  15. }
  16. open(F1, ">zwave_pepperlinks.csv") || die("zwave_pepperlinks.csv: $!\n");
  17. open(F2, ">getpics.sh") || die("getpics.sh: $!\n");
  18. my $d="";
  19. my %toget;
  20. while(my $l = <>) {
  21. if($l =~ m,<deviceImage\s*url="(.*)"\s*/>,) {
  22. $d = $1;
  23. $d =~ s/^\s*//;
  24. $d =~ s/\s*$//;
  25. }
  26. if($l =~ m,</ZWaveDevice,i) {
  27. my $lf = $d;
  28. $lf =~ s,^.*/,,;
  29. if($ARGV =~ m/^([0-9A-F]+)-([0-9A-F]+)-([0-9A-F]+)-([0-9A-F]+)-/i) {
  30. print F1 "$2-$3-$4,$1,$lf\n";
  31. } else {
  32. print F1 "$ARGV\n";
  33. }
  34. if($lf && !-f $lf && !$toget{$lf}) {
  35. printf F2 "wget $d\n";
  36. $toget{$lf} = 1;
  37. }
  38. $d="";
  39. }
  40. }
  41. close(F1);
  42. close(F2);