diff --git a/59_Weather.pm b/59_Weather.pm
index e167789..b4e3465 100755
--- a/59_Weather.pm
+++ b/59_Weather.pm
@@ -717,17 +717,24 @@ sub WeatherAsHtmlV($;$$) {
my ( $d, $op1, $op2 ) = @_;
my $items = $op2;
my $f = $op1;
- if($op1 =~ /[0-9]/g){ $items = $op1; }
- if($op2 =~ /[dh]/g){ $f = $op2; }
- $f =~ tr/dh/./cd;
- $f = "h" if ( !$f || length($f) > 1);
- $items =~ tr/0-9/./cd;
+ if( defined($op1) and $op1 and $op1 =~ /[0-9]/g){ $items = $op1; }
+ if( defined($op2) and $op2 and $op2 =~ /[dh]/g){ $f = $op2; }
+
+ $f =~ tr/dh/./cd if ( defined $f and $f );
+ $items =~ tr/0-9/./cd if (defined($items) and $items );
+
$items = 6 if ( !$items );
return "$d is not a Weather instance
"
if ( !$defs{$d} || $defs{$d}->{TYPE} ne "Weather" );
+ if ( AttrVal($d,'forecast','none') ne 'none' ) {
+ $f = ( AttrVal($d,'forecast','none') eq 'daily' ? 'd' : 'h' );
+ }
+
+ $f = 'h' if ( !$f || length($f) > 1);
+
my $h = $defs{$d};
my $width = int( ICONSCALE * ICONWIDTH );
@@ -793,13 +800,23 @@ sub WeatherAsHtml($;$$) {
my ( $d, $op1, $op2 ) = @_;
my $items = $op2;
my $f = $op1;
- if($op1 =~ /[0-9]/g){ $items = $op1; }
- if($op2 =~ /[dh]/g){ $f = $op2; }
-
- $f =~ tr/dh/./cd;
- $f = "h" if ( !$f || length($f) > 1);
- $items =~ tr/0-9/./cd;
+
+ if( defined($op1) and $op1 and $op1 =~ /[0-9]/g){ $items = $op1; }
+ if( defined($op2) and $op2 and $op2 =~ /[dh]/g){ $f = $op2; }
+
+ $f =~ tr/dh/./cd if ( defined $f and $f );
+ $items =~ tr/0-9/./cd if (defined($items) and $items );
+
$items = 6 if ( !$items );
+
+ return "$d is not a Weather instance
"
+ if ( !$defs{$d} || $defs{$d}->{TYPE} ne "Weather" );
+
+ if ( AttrVal($d,'forecast','none') ne 'none' ) {
+ $f = ( AttrVal($d,'forecast','none') eq 'daily' ? 'd' : 'h' );
+ }
+
+ $f = 'h' if ( !$f || length($f) > 1);
WeatherAsHtmlV( $d, $f, $items );
}
@@ -808,17 +825,24 @@ sub WeatherAsHtmlH($;$$) {
my ( $d, $op1, $op2 ) = @_;
my $items = $op2;
my $f = $op1;
- if($op1 =~ /[0-9]/g){ $items = $op1; }
- if($op2 =~ /[dh]/g){ $f = $op2; }
- $f =~ tr/dh/./cd;
- $f = "h" if ( !$f || length($f) > 1);
- $items =~ tr/0-9/./cd;
+ if( defined($op1) and $op1 and $op1 =~ /[0-9]/g){ $items = $op1; }
+ if( defined($op2) and $op2 and $op2 =~ /[dh]/g){ $f = $op2; }
+
+ $f =~ tr/dh/./cd if ( defined $f and $f );
+ $items =~ tr/0-9/./cd if (defined($items) and $items );
+
$items = 6 if ( !$items );
return "$d is not a Weather instance
"
if ( !$defs{$d} || $defs{$d}->{TYPE} ne "Weather" );
+ if ( AttrVal($d,'forecast','none') ne 'none' ) {
+ $f = ( AttrVal($d,'forecast','none') eq 'daily' ? 'd' : 'h' );
+ }
+
+ $f = 'h' if ( !$f || length($f) > 1);
+
my $h = $defs{$d};
my $width = int( ICONSCALE * ICONWIDTH );
@@ -904,13 +928,23 @@ sub WeatherAsHtmlD($;$$) {
my ( $d, $op1, $op2 ) = @_;
my $items = $op2;
my $f = $op1;
- if($op1 =~ /[0-9]/g){ $items = $op1; }
- if($op2 =~ /[dh]/g){ $f = $op2; }
+
+ if( defined($op1) and $op1 and $op1 =~ /[0-9]/g){ $items = $op1; }
+ if( defined($op2) and $op2 and $op2 =~ /[dh]/g){ $f = $op2; }
- $f =~ tr/dh/./cd;
- $f = "h" if ( !$f || length($f) > 1);
- $items =~ tr/0-9/./cd;
+ $f =~ tr/dh/./cd if ( defined $f and $f );
+ $items =~ tr/0-9/./cd if (defined($items) and $items );
+
$items = 6 if ( !$items );
+
+ return "$d is not a Weather instance
"
+ if ( !$defs{$d} || $defs{$d}->{TYPE} ne "Weather" );
+
+ if ( AttrVal($d,'forecast','none') ne 'none' ) {
+ $f = ( AttrVal($d,'forecast','none') eq 'daily' ? 'd' : 'h' );
+ }
+
+ $f = 'h' if ( !$f || length($f) > 1);
if ($FW_ss) {
WeatherAsHtmlV( $d, $f , $items);
diff --git a/DarkSkyAPI.pm b/DarkSkyAPI.pm
index 715c40b..0255e29 100644
--- a/DarkSkyAPI.pm
+++ b/DarkSkyAPI.pm
@@ -166,7 +166,7 @@ sub _RetrieveDataFromDarkSky($) {
. $self->{long}
. '?lang='
. $self->{lang}
- . '&units=auto';
+ . '&units=auto&extend=hourly';
if ( lc($self->{key}) eq 'demo' )
{ _RetrieveDataFinished($paramRef,undef,DEMODATA); }