use Mojo::UserAgent; #use Data::Printer; use File::Slurp; use JSON; my $ua = Mojo::UserAgent->new; my $tx = $ua->get('https://wetter.lauters.heim-server.de/current.html')->result->body; my $netext = $tx =~ s/\R//rg; my $wohin = ''; my $referenz = { "uvindex" => "0", "solarstrahlung" => "0", "taupunkt" => "0", "luftdruck" => "0", "luftfeuchte" => "0", "temp" => "0" }; if ( -e $wohin.'wetter.json') { my $red = read_file( $wohin. 'wetter.json'); $referenz = decode_json($red); } my $json = { "uvindex" => "0", "solarstrahlung" => "0", "taupunkt" => "0", "luftdruck" => "0", "luftfeuchte" => "0", "temp" => "0" }; my @tr = $netext =~ /(.*?)<\/tr>/g; for my $t ( @tr ) { if ( $t =~ /Temperatur Außen<\/nobr>/ ) { my ($aktuell) = $t =~ /aktuell<\/font><\/b>
(.*?)°C<\/font><\/b/g; $json->{temp} = $aktuell =~ s/,/\./r; } if ( $t =~ /
Luftfeuchte Außen<\/nobr>/ ) { my ($aktuell) = $t =~ /aktuell<\/font><\/b>
(.*?)%<\/font><\/b/g; $json->{luftfeuchte} = $aktuell; } if ( $t =~ /
Luftdruck<\/nobr>/ ) { my ($aktuell) = $t =~ /aktuell<\/font><\/b>
(.*?)hPa<\/font><\/b/g; $json->{luftdruck} = $aktuell =~ s/,/\./r; } if ( $t =~ /
Taupunkt<\/nobr>/ ) { my ($aktuell) = $t =~ /aktuell<\/font><\/b>
(.*?)°C<\/font><\/b/g; $json->{taupunkt} = $aktuell =~ s/,/\./r; } if ( $t =~ /
UV-Index<\/nobr>/ ) { my ($aktuell) = $t =~ /aktuell<\/font><\/b>
(.*?)UV-I<\/font><\/b/g; $json->{uvindex} = $aktuell =~ s/,/\./r; } if ( $t =~ /
Solarstrahlung<\/nobr>/ ) { my ($aktuell) = $t =~ /aktuell<\/font><\/b>
(.*?)W\/m²<\/font><\/b/g; $json->{solarstrahlung} = $aktuell =~ s/,/\./r; } } my $aenderungen; for my $ref ( keys %{$referenz} ) { if ( $referenz->{$ref} ne $json->{$ref} ) { $aenderungen = 1; } } write_file( $wohin.'wetter.json', encode_json($json) ) if $aenderungen; # write_file( "/var/www/html/wetter/wetter.json", encode_json($json) );