mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
UConv: add bft2condition()
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@14008 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
82a2832794
commit
71de1391e5
200
FHEM/UConv.pm
200
FHEM/UConv.pm
@ -1,9 +1,6 @@
|
||||
###############################################################################
|
||||
# $Id$
|
||||
package main;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Data::Dumper;
|
||||
sub UConv_Initialize() { }
|
||||
|
||||
package UConv;
|
||||
@ -326,160 +323,98 @@ sub kph2kn($;$) {
|
||||
# Speed: convert km/h to Beaufort wind force scale
|
||||
sub kph2bft($) {
|
||||
my ($data) = @_;
|
||||
my $val = "0";
|
||||
my $rgb = "FEFEFE";
|
||||
my $cond = "calm";
|
||||
my $warn = " ";
|
||||
my $val = "0";
|
||||
|
||||
if ( $data >= 118 ) {
|
||||
$val = "12";
|
||||
$rgb = "E93323";
|
||||
$cond = "hurricane_force";
|
||||
$warn = "hurricane_force";
|
||||
$val = "12";
|
||||
}
|
||||
elsif ( $data >= 103 ) {
|
||||
$val = "11";
|
||||
$rgb = "EB4826";
|
||||
$cond = "violent_storm";
|
||||
$warn = "storm_force";
|
||||
$val = "11";
|
||||
}
|
||||
elsif ( $data >= 89 ) {
|
||||
$val = "10";
|
||||
$rgb = "E96E2C";
|
||||
$cond = "storm";
|
||||
$warn = "storm_force";
|
||||
$val = "10";
|
||||
}
|
||||
elsif ( $data >= 75 ) {
|
||||
$val = "9";
|
||||
$rgb = "F19E38";
|
||||
$cond = "strong_gale";
|
||||
$warn = "gale_force";
|
||||
$val = "9";
|
||||
}
|
||||
elsif ( $data >= 62 ) {
|
||||
$val = "8";
|
||||
$rgb = "F7CE46";
|
||||
$cond = "gale";
|
||||
$warn = "gale_force";
|
||||
$val = "8";
|
||||
}
|
||||
elsif ( $data >= 50 ) {
|
||||
$val = "7";
|
||||
$rgb = "FFFF54";
|
||||
$cond = "near_gale";
|
||||
$warn = "high_winds";
|
||||
$val = "7";
|
||||
}
|
||||
elsif ( $data >= 39 ) {
|
||||
$val = "6";
|
||||
$rgb = "D6FD51";
|
||||
$cond = "strong_breeze";
|
||||
$warn = "high_winds";
|
||||
$val = "6";
|
||||
}
|
||||
elsif ( $data >= 29 ) {
|
||||
$val = "5";
|
||||
$rgb = "B1FC4F";
|
||||
$cond = "fresh_breeze";
|
||||
$val = "5";
|
||||
}
|
||||
elsif ( $data >= 20 ) {
|
||||
$val = "4";
|
||||
$rgb = "B1FC7B";
|
||||
$cond = "moderate_breeze";
|
||||
$val = "4";
|
||||
}
|
||||
elsif ( $data >= 12 ) {
|
||||
$val = "3";
|
||||
$rgb = "B1FCA3";
|
||||
$cond = "gentle_breeze";
|
||||
$val = "3";
|
||||
}
|
||||
elsif ( $data >= 6 ) {
|
||||
$val = "2";
|
||||
$rgb = "B1FCD0";
|
||||
$cond = "light_breeze";
|
||||
$val = "2";
|
||||
}
|
||||
elsif ( $data >= 1 ) {
|
||||
$val = "1";
|
||||
$rgb = "D6FEFE";
|
||||
$cond = "light_air";
|
||||
$val = "1";
|
||||
}
|
||||
|
||||
return ( $val, $rgb, $cond, $warn ) if (wantarray);
|
||||
if (wantarray) {
|
||||
my ( $cond, $rgb, $warn ) = bft2condition($val);
|
||||
return ( $val, $rgb, $cond, $warn );
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
|
||||
# Speed: convert mph (miles per hour) to Beaufort wind force scale
|
||||
sub mph2bft($) {
|
||||
my ($data) = @_;
|
||||
my $val = "0";
|
||||
my $rgb = "FEFEFE";
|
||||
my $cond = "calm";
|
||||
my $warn = " ";
|
||||
my $val = "0";
|
||||
|
||||
if ( $data >= 73 ) {
|
||||
$val = "12";
|
||||
$rgb = "E93323";
|
||||
$cond = "hurricane_force";
|
||||
$warn = "hurricane_force";
|
||||
$val = "12";
|
||||
}
|
||||
elsif ( $data >= 64 ) {
|
||||
$val = "11";
|
||||
$rgb = "EB4826";
|
||||
$cond = "violent_storm";
|
||||
$warn = "storm_force";
|
||||
$val = "11";
|
||||
}
|
||||
elsif ( $data >= 55 ) {
|
||||
$val = "10";
|
||||
$rgb = "E96E2C";
|
||||
$cond = "storm";
|
||||
$warn = "storm_force";
|
||||
$val = "10";
|
||||
}
|
||||
elsif ( $data >= 47 ) {
|
||||
$val = "9";
|
||||
$rgb = "F19E38";
|
||||
$cond = "strong_gale";
|
||||
$warn = "gale_force";
|
||||
$val = "9";
|
||||
}
|
||||
elsif ( $data >= 39 ) {
|
||||
$val = "8";
|
||||
$rgb = "F7CE46";
|
||||
$cond = "gale";
|
||||
$warn = "gale_force";
|
||||
$val = "8";
|
||||
}
|
||||
elsif ( $data >= 32 ) {
|
||||
$val = "7";
|
||||
$rgb = "FFFF54";
|
||||
$cond = "near_gale";
|
||||
$warn = "high_winds";
|
||||
$val = "7";
|
||||
}
|
||||
elsif ( $data >= 25 ) {
|
||||
$val = "6";
|
||||
$rgb = "D6FD51";
|
||||
$cond = "strong_breeze";
|
||||
$warn = "high_winds";
|
||||
$val = "6";
|
||||
}
|
||||
elsif ( $data >= 19 ) {
|
||||
$val = "5";
|
||||
$rgb = "B1FC4F";
|
||||
$cond = "fresh_breeze";
|
||||
$val = "5";
|
||||
}
|
||||
elsif ( $data >= 13 ) {
|
||||
$val = "4";
|
||||
$rgb = "B1FC7B";
|
||||
$cond = "moderate_breeze";
|
||||
$val = "4";
|
||||
}
|
||||
elsif ( $data >= 8 ) {
|
||||
$val = "3";
|
||||
$rgb = "B1FCA3";
|
||||
$cond = "gentle_breeze";
|
||||
$val = "3";
|
||||
}
|
||||
elsif ( $data >= 4 ) {
|
||||
$val = "2";
|
||||
$rgb = "B1FCD0";
|
||||
$cond = "light_breeze";
|
||||
$val = "2";
|
||||
}
|
||||
elsif ( $data >= 1 ) {
|
||||
$val = "1";
|
||||
$rgb = "D6FEFE";
|
||||
$cond = "light_air";
|
||||
$val = "1";
|
||||
}
|
||||
|
||||
return ( $val, $rgb, $cond, $warn ) if (wantarray);
|
||||
if (wantarray) {
|
||||
my ( $cond, $rgb, $warn ) = bft2condition($val);
|
||||
return ( $val, $rgb, $cond, $warn );
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
|
||||
@ -577,6 +512,73 @@ sub uvi2condition($) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
# Condition: convert Beaufort to wind condition
|
||||
sub bft2condition($) {
|
||||
my ($data) = @_;
|
||||
my $rgb = "FEFEFE";
|
||||
my $cond = "calm";
|
||||
my $warn = " ";
|
||||
|
||||
if ( $data == 12 ) {
|
||||
$rgb = "E93323";
|
||||
$cond = "hurricane_force";
|
||||
$warn = "hurricane_force";
|
||||
}
|
||||
elsif ( $data == 11 ) {
|
||||
$rgb = "EB4826";
|
||||
$cond = "violent_storm";
|
||||
$warn = "storm_force";
|
||||
}
|
||||
elsif ( $data == 10 ) {
|
||||
$rgb = "E96E2C";
|
||||
$cond = "storm";
|
||||
$warn = "storm_force";
|
||||
}
|
||||
elsif ( $data == 9 ) {
|
||||
$rgb = "F19E38";
|
||||
$cond = "strong_gale";
|
||||
$warn = "gale_force";
|
||||
}
|
||||
elsif ( $data == 8 ) {
|
||||
$rgb = "F7CE46";
|
||||
$cond = "gale";
|
||||
$warn = "gale_force";
|
||||
}
|
||||
elsif ( $data == 7 ) {
|
||||
$rgb = "FFFF54";
|
||||
$cond = "near_gale";
|
||||
$warn = "high_winds";
|
||||
}
|
||||
elsif ( $data == 6 ) {
|
||||
$rgb = "D6FD51";
|
||||
$cond = "strong_breeze";
|
||||
$warn = "high_winds";
|
||||
}
|
||||
elsif ( $data == 5 ) {
|
||||
$rgb = "B1FC4F";
|
||||
$cond = "fresh_breeze";
|
||||
}
|
||||
elsif ( $data == 4 ) {
|
||||
$rgb = "B1FC7B";
|
||||
$cond = "moderate_breeze";
|
||||
}
|
||||
elsif ( $data == 3 ) {
|
||||
$rgb = "B1FCA3";
|
||||
$cond = "gentle_breeze";
|
||||
}
|
||||
elsif ( $data == 2 ) {
|
||||
$rgb = "B1FCD0";
|
||||
$cond = "light_breeze";
|
||||
}
|
||||
elsif ( $data == 1 ) {
|
||||
$rgb = "D6FEFE";
|
||||
$cond = "light_air";
|
||||
}
|
||||
|
||||
return ( $cond, $rgb, $warn ) if (wantarray);
|
||||
return $cond;
|
||||
}
|
||||
|
||||
sub values2weathercondition($$$$$) {
|
||||
my ( $temp, $hum, $light, $isday, $israining ) = @_;
|
||||
my $val = "clear";
|
||||
|
Loading…
x
Reference in New Issue
Block a user