-
Notifications
You must be signed in to change notification settings - Fork 0
/
wu_post-v2.pl
105 lines (81 loc) · 2.51 KB
/
wu_post-v2.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/usr/bin/perl
# gswann 7 November 2015
# see http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol
# No! See: https://feedback.weather.com/customer/en/portal/articles/2924682-pws-upload-protocol?b_id=17298
# for description of protocol
open(my $fh, "secrets.txt")
or die "Could not open file";
my $row = <$fh>;
chomp $row;
$ID = $row;
my $row = <$fh>;
chomp $row;
$PW = $row;
close $fh;
$str1 = "http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=";
$str2 = "&PASSWORD=";
$str3 = "&dateutc=now";
$str35 = "&tempf=";
$str36 = "&temp2f=";
$str4 = "&humidity=";
$str45 = "&dewptf=";
$str6 = "&windspeedmph=";
$str7 = "&winddir=";
$str9 = "&action=updateraw";
$degrees = <stdin>;
$humidity = <stdin>;
$windspeed = <stdin>;
$winddir = <stdin>;
$degrees2 = <stdin>;
if ($degrees != "un"){
$celsius = (($degrees-32.0)*5.0)/9.0 ;
$dewpoint = $celsius - ((100-$humidity) / 5.00) ;
$dewpoint = (($dewpoint * 9.0 ) / 5.0) + 32.0;
}
print ("Degrees= $s ", $degrees);
print (" Humidity = $s ", $humidity) ;
printf (" Dew point = %3.3f ", $dewpoint) ;
printf (" Windspeed = $s ", $windspeed);
printf (" Winddir = $s ", $winddir);
printf (" Lanai temp = $s ", $degrees2);
print ("\n");
if ($degrees != "un"){
$degrees = sprintf("%.1f",$degrees);
}
printf($degrees);
print ("\n");
if ($degrees2 != "un"){
$degrees2 = sprintf("%.1f",$degrees2);
}
printf($degrees2);
print ("\n");
if ($humidity != "un"){
$humidity = sprintf("%.0f",$humidity);
}
if ($windspeed != "un"){
$windspeed = sprintf("%.1f", $windspeed);
}
if ($winddir != "un"){
$winddir = sprintf("%.0f", $winddir);
}
printf($humidity);
print ("\n");
printf($windspeed);
print ("\n");
printf($winddir);
print ("\n");
$dewpoint = sprintf("%.0f",$dewpoint);
printf($dewpoint);
print ("\n");
# $getstr = $str1 . $ID . $str2 . $PW . $str3 . $degrees . $str4 . $humidity . $str45 . $dewpoint . $str6 . $windspeed . $str7 . $winddir . $str9 ;
$getstr = $str1 . $ID . $str2 . $PW . $str3 ;
if ($degrees != "un" ) { $getstr = $getstr . $str35 . $degrees ;}
if ($humidity != "un" ) { $getstr = $getstr . $str4 . $humidity ;}
if ($dewpoint != "un") { $getstr = $getstr . $str45 . $dewpoint;}
if ($windspeed != "un" ) { $getstr = $getstr . $str6 . $windspeed ;}
if ($winddir != "un" ) { $getstr = $getstr . $str7 . $winddir ;}
if ($degrees2 != "un") { $getstr = $getstr . $str36 . $degrees2 ;}
$getstr = $getstr . $str9 ;
print $getstr;
print ("\n");
system ("wget \"" . $getstr . "\" -O result.txt");