mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-09 20:57:11 +00:00
98_feels_like.pm: Improved algorithms, fix reDEFINE
git-svn-id: https://svn.fhem.de/fhem/trunk@16976 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
1f8b0a685a
commit
ba99523629
@ -1,5 +1,6 @@
|
||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||
# Do not insert empty lines here, update check depends on it.
|
||||
- change: 98_feels_like.pm: Improved algorithms, fix reDEFINE
|
||||
- new: 42_AptToDate: Modul to retrieves apt information about Debian
|
||||
update state
|
||||
- bugfix: 74_NUKIDevice: fix Perl Warnings
|
||||
|
@ -41,8 +41,8 @@ feels_like_Define($$)
|
||||
my @a = split(/\s+/, $def);
|
||||
|
||||
return "wrong syntax: " .
|
||||
"define <name> feels_like devicename temperature humidity " .
|
||||
"[wind_speed [solar_radiation [pressure]]]" if (@a < 4 || @a> 8);
|
||||
"define <name> feels_like devicename temperature humidity " .
|
||||
"[wind_speed [solar_radiation [pressure]]]" if (@a < 4 || @a> 8);
|
||||
|
||||
my $name = $a[0];
|
||||
my $devname = $a[2];
|
||||
@ -50,22 +50,26 @@ feels_like_Define($$)
|
||||
my $match = 0;
|
||||
my $i = 3;
|
||||
foreach my $k ('T', 'H', 'W', 'S', 'P') {
|
||||
my $rk = $k . '_READING';
|
||||
my $dk = $k . '_DEV';
|
||||
my $rk = $k . '_READING';
|
||||
my $dk = $k . '_DEV';
|
||||
|
||||
if($#a >= $i) {
|
||||
my @x = split(/:/, $a[$i]);
|
||||
if (@x == 2) {
|
||||
$hash->{$dk} = $x[0];
|
||||
$hash->{$rk} = $x[1];
|
||||
} else {
|
||||
$hash->{$dk} = $devname;
|
||||
$hash->{$rk} = $x[0];
|
||||
$match++;
|
||||
}
|
||||
}
|
||||
# in case it's a redefine
|
||||
delete($hash->{$dk});
|
||||
delete($hash->{$rk});
|
||||
|
||||
$i++;
|
||||
if($#a >= $i) {
|
||||
my @x = split(/:/, $a[$i]);
|
||||
if (@x == 2) {
|
||||
$hash->{$dk} = $x[0];
|
||||
$hash->{$rk} = $x[1];
|
||||
} else {
|
||||
$hash->{$dk} = $devname;
|
||||
$hash->{$rk} = $x[0];
|
||||
$match++;
|
||||
}
|
||||
}
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
return "feels_like: at least one reading device must match $devname" if ($match == 0);
|
||||
@ -638,39 +642,39 @@ my $alpha_min = 0.28;
|
||||
my $alpha_max = 3.20;
|
||||
my $nx = 7;
|
||||
my $ny = 11;
|
||||
my @poly = (-100.5272916306846,0.3851772804214305,-0.020922056671224352,
|
||||
-0.009606197418741177,0.0005849132515498935,-1.7702695912133926e-05,
|
||||
2.7723251864128576e-07,-2.2008421407093293e-09,7.98312106634558e-12,
|
||||
-9.927125805770036e-15,-8.604877467953387e-21,2.265317645670313e-20,
|
||||
4.1772609913122905,-0.003382646065288795,0.004002144590164501,
|
||||
-5.4211809684315803e-05,-5.444706499364457e-10,6.634114173659209e-08,
|
||||
-1.401016073554696e-09,8.827874472272314e-12,2.0449918292777215e-15,
|
||||
-9.736015250496609e-17,-1.2628485998738518e-19,-6.528639259121269e-25,
|
||||
-0.07111355060845763,-0.0004529543069338071,-4.4021806663494164e-05,
|
||||
9.059712530819742e-07,-3.995683044901134e-08,4.267728767926248e-10,
|
||||
-8.99216222938747e-13,8.946809361917819e-16,3.0559393103807377e-18,
|
||||
-1.2161164440370677e-18,6.327425020223698e-21,-2.1093293979784917e-26,
|
||||
0.0006548417964461427,8.616725227583858e-06,1.4214703156380296e-07,
|
||||
1.6194971096239993e-09,1.193961278874705e-10,-9.867892387318816e-13,
|
||||
7.731533627631885e-18,-2.51758137182563e-17,4.666842950199576e-20,
|
||||
-8.087375804440922e-23,2.998974830829665e-23,-9.232094285359054e-26,
|
||||
-3.5328742295575905e-06,-6.514191698173193e-08,-8.815469844312648e-11,
|
||||
-2.6046214918557725e-11,2.5650664629227075e-18,-7.427126643548995e-15,
|
||||
8.6511961126834e-17,3.5992628695651026e-20,-2.1167091228911203e-21,
|
||||
3.56544713533269e-23,-2.7851859628863135e-25,2.6191072037006313e-30,
|
||||
1.1177254065064902e-08,2.51900546433227e-10,3.3655023796213395e-13,
|
||||
5.924476158904615e-16,2.0127621492146657e-15,3.9839039995943257e-19,
|
||||
-1.1548464713367492e-20,-1.6688968404500252e-21,1.6961916774893855e-27,
|
||||
3.3572561967420015e-28,-1.1826537287436407e-29,4.088004745053708e-30,
|
||||
-1.9204337282521175e-11,-5.084099801020134e-13,-1.5629771424170198e-15,
|
||||
1.8775095429271391e-16,-7.621571993423269e-18,2.270611143279266e-20,
|
||||
2.0566602640908184e-22,-1.7224083003014677e-24,3.3573830492178875e-26,
|
||||
-1.1092599050757706e-29,7.847387568022642e-37,-1.0904825142536614e-32,
|
||||
1.3817373460788212e-14,4.358054579743455e-16,-3.8996192297342614e-19,
|
||||
-1.0123638207451001e-19,1.37960356223409e-21,1.3930087304289616e-22,
|
||||
-2.609911374214054e-24,1.786316983808703e-26,6.149662788070821e-30,
|
||||
-1.2557848634303272e-30,6.885372725269743e-33,-1.8993544603666883e-36);
|
||||
# numdp: 3648, mean error: 0.05819
|
||||
my @poly = (-106.92078815088152,1.1559639672742617,-0.10641701193735834,
|
||||
-0.003289004759141109,0.00024341610319517833,-7.393885292177471e-06,
|
||||
1.1036469480601365e-07,-8.433653719722458e-10,4.6816105400180725e-12,
|
||||
-2.2915699724588908e-14,5.1558807208283076e-17,-1.079309274936794e-21,
|
||||
4.475568377940087,-0.02979654850540337,0.004700175671662923,
|
||||
-2.0556721233089508e-05,-6.038914362044792e-08,2.006751148263329e-08,
|
||||
-3.111327815305771e-10,-1.374995798484272e-12,1.9735294352791308e-14,
|
||||
2.1301007272254039e-19,-1.1889565579254942e-22,-6.300423390960505e-22,
|
||||
-0.07727338274859613,0.00020814642590810098,-6.394225596258378e-05,
|
||||
7.868630252758761e-09,-7.464104467557937e-09,1.1747261979615144e-10,
|
||||
6.942150907013742e-13,3.4379341050323286e-15,6.450994446627346e-18,
|
||||
-4.444113964025086e-19,6.797271157288228e-22,-2.4187064817431376e-26,
|
||||
0.0007233278231093484,-2.738439691372625e-07,5.245059294961144e-07,
|
||||
3.0960830052172135e-09,-8.666235563108327e-12,-8.543981121106956e-13,
|
||||
-3.0921133374358243e-16,-3.403768199365476e-18,2.0279200191426042e-21,
|
||||
-4.248840692118507e-21,1.7318873922658786e-23,8.574899408718153e-28,
|
||||
-3.97231902915211e-06,-5.352290412779365e-10,-3.192650063883535e-09,
|
||||
-8.74015720283199e-12,2.283911280963708e-13,7.341513792108321e-16,
|
||||
-1.646709199019733e-19,1.3337349967893863e-19,-1.768592696157379e-24,
|
||||
1.8081165441415707e-23,-9.255858370952993e-28,-6.417530710544851e-29,
|
||||
1.2816665080935244e-08,-1.1922083845200477e-11,1.3421147775930614e-11,
|
||||
-8.568582018392473e-14,1.9981576527458447e-16,-3.2157555342893155e-22,
|
||||
6.697464022398249e-20,-1.7492784034332204e-21,2.9982339842976173e-26,
|
||||
3.1608055013268483e-26,-4.358123093981532e-28,-4.283467678330636e-31,
|
||||
-2.2523634293967502e-11,7.160123195453301e-14,-3.16054616229181e-14,
|
||||
4.4391029509107566e-16,-3.1617351024523765e-18,-1.106231164369411e-20,
|
||||
1.3620891422547596e-26,4.542693150881559e-24,-1.1189308112788874e-26,
|
||||
-2.7544251659486844e-29,1.8059972620664227e-36,6.576920263313157e-33,
|
||||
1.6644569253648212e-14,-1.0182652809916555e-16,2.986157294663078e-17,
|
||||
-5.245136086661749e-19,1.8660756935566013e-21,1.0544047345884695e-22,
|
||||
-1.6410689680364017e-24,1.0506963847508829e-26,-5.70549250231417e-29,
|
||||
3.5859454340809775e-32,2.027506749740463e-33,-1.4181289166467323e-35);
|
||||
# numdp: 3936, mean error: 0.06565
|
||||
|
||||
# azimuth, sday
|
||||
sub sensor_factor($$) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user