mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
98_powerMap: improved modules support and change default reading name from pM_power to pM_consumption
git-svn-id: https://svn.fhem.de/fhem/trunk@13195 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
bc40337c95
commit
3d3708129a
@ -1,5 +1,9 @@
|
|||||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
# 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.
|
# Do not insert empty lines here, update check depends on it.
|
||||||
|
- change: 98_powerMap: default value for reading pM_power was renamed to
|
||||||
|
pM_consumption to circumvent overlapping of commonly
|
||||||
|
used reading 'power' where it is normally used as
|
||||||
|
boolean.
|
||||||
- update: 93_DbLog: its now version 2.10.4, some improvements and new
|
- update: 93_DbLog: its now version 2.10.4, some improvements and new
|
||||||
attributes
|
attributes
|
||||||
- update: 74_XiaomiFlowerSens: 0.6.0 rewrite subroutinen for better handling
|
- update: 74_XiaomiFlowerSens: 0.6.0 rewrite subroutinen for better handling
|
||||||
|
@ -111,6 +111,11 @@ my %powerMap_tmpl = (
|
|||||||
# },
|
# },
|
||||||
# },
|
# },
|
||||||
|
|
||||||
|
# TYPE alias to mirror values
|
||||||
|
#
|
||||||
|
# '<TYPE1>' => '<TYPE2>',
|
||||||
|
#
|
||||||
|
|
||||||
FS20 => {
|
FS20 => {
|
||||||
state => {
|
state => {
|
||||||
0 => 0.5,
|
0 => 0.5,
|
||||||
@ -177,32 +182,46 @@ my %powerMap_tmpl = (
|
|||||||
},
|
},
|
||||||
|
|
||||||
HUEBridge => {
|
HUEBridge => {
|
||||||
|
model => 'modelid',
|
||||||
modelid => {
|
modelid => {
|
||||||
BSB001 => {
|
BSB001 => {
|
||||||
state => {
|
rname_E => 'energy',
|
||||||
0 => 0,
|
rname_P => 'consumption',
|
||||||
'*' => 1.669,
|
map => {
|
||||||
|
state => {
|
||||||
|
0 => 0,
|
||||||
|
'*' => 1.669,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
BSB002 => {
|
BSB002 => {
|
||||||
state => {
|
rname_E => 'energy',
|
||||||
0 => 0,
|
rname_P => 'consumption',
|
||||||
'*' => 1.669,
|
map => {
|
||||||
|
state => {
|
||||||
|
0 => 0,
|
||||||
|
'*' => 1.669,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
HUEDevice => {
|
HUEDevice => {
|
||||||
|
model => 'modelid',
|
||||||
modelid => {
|
modelid => {
|
||||||
|
|
||||||
# Hue Bulb
|
# Hue Bulb
|
||||||
LCT001 => {
|
LCT001 => {
|
||||||
state => {
|
rname_E => 'energy',
|
||||||
unreachable => 0,
|
rname_P => 'consumption',
|
||||||
0 => 0.4,
|
map => {
|
||||||
100 => 8.5,
|
state => {
|
||||||
|
unreachable => 0,
|
||||||
|
0 => 0.4,
|
||||||
|
100 => 8.5,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -214,19 +233,27 @@ my %powerMap_tmpl = (
|
|||||||
|
|
||||||
# Hue Bulb V2
|
# Hue Bulb V2
|
||||||
LCT007 => {
|
LCT007 => {
|
||||||
state => {
|
rname_E => 'energy',
|
||||||
unreachable => 0,
|
rname_P => 'consumption',
|
||||||
0 => 0.4,
|
map => {
|
||||||
100 => 10,
|
state => {
|
||||||
|
unreachable => 0,
|
||||||
|
0 => 0.4,
|
||||||
|
100 => 10,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
# Hue Bulb V3
|
# Hue Bulb V3
|
||||||
LCT010 => {
|
LCT010 => {
|
||||||
state => {
|
rname_E => 'energy',
|
||||||
unreachable => 0,
|
rname_P => 'consumption',
|
||||||
0 => 0.4,
|
map => {
|
||||||
100 => 10,
|
state => {
|
||||||
|
unreachable => 0,
|
||||||
|
0 => 0.4,
|
||||||
|
100 => 10,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -268,55 +295,71 @@ my %powerMap_tmpl = (
|
|||||||
|
|
||||||
# Hue LightStrip
|
# Hue LightStrip
|
||||||
LST001 => {
|
LST001 => {
|
||||||
state => {
|
rname_E => 'energy',
|
||||||
unreachable => 0,
|
rname_P => 'consumption',
|
||||||
0 => 0.4,
|
map => {
|
||||||
100 => 12,
|
state => {
|
||||||
|
unreachable => 0,
|
||||||
|
0 => 0.4,
|
||||||
|
100 => 12,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
# Hue LightStrip Plus
|
# Hue LightStrip Plus
|
||||||
LST002 => {
|
LST002 => {
|
||||||
state => {
|
rname_E => 'energy',
|
||||||
unreachable => 0,
|
rname_P => 'consumption',
|
||||||
0 => 0.4,
|
map => {
|
||||||
100 => 20.5,
|
state => {
|
||||||
|
unreachable => 0,
|
||||||
|
0 => 0.4,
|
||||||
|
100 => 20.5,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
# Living Whites Bulb
|
# Living Whites Bulb
|
||||||
LWB001 => {
|
LWB001 => {
|
||||||
state => {
|
rname_E => 'energy',
|
||||||
unreachable => 0,
|
rname_P => 'consumption',
|
||||||
0 => 0.4,
|
map => {
|
||||||
10 => 1.2,
|
state => {
|
||||||
20 => 1.7,
|
unreachable => 0,
|
||||||
30 => 1.9,
|
0 => 0.4,
|
||||||
40 => 2.3,
|
10 => 1.2,
|
||||||
50 => 2.7,
|
20 => 1.7,
|
||||||
60 => 3.4,
|
30 => 1.9,
|
||||||
70 => 4.7,
|
40 => 2.3,
|
||||||
80 => 5.9,
|
50 => 2.7,
|
||||||
90 => 7.5,
|
60 => 3.4,
|
||||||
100 => 9.2,
|
70 => 4.7,
|
||||||
|
80 => 5.9,
|
||||||
|
90 => 7.5,
|
||||||
|
100 => 9.2,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
# Living Whites Bulb
|
# Living Whites Bulb
|
||||||
LWB003 => {
|
LWB003 => {
|
||||||
state => {
|
rname_E => 'energy',
|
||||||
unreachable => 0,
|
rname_P => 'consumption',
|
||||||
0 => 0.4,
|
map => {
|
||||||
10 => 1.2,
|
state => {
|
||||||
20 => 1.7,
|
unreachable => 0,
|
||||||
30 => 1.9,
|
0 => 0.4,
|
||||||
40 => 2.3,
|
10 => 1.2,
|
||||||
50 => 2.7,
|
20 => 1.7,
|
||||||
60 => 3.4,
|
30 => 1.9,
|
||||||
70 => 4.7,
|
40 => 2.3,
|
||||||
80 => 5.9,
|
50 => 2.7,
|
||||||
90 => 7.5,
|
60 => 3.4,
|
||||||
100 => 9.2,
|
70 => 4.7,
|
||||||
|
80 => 5.9,
|
||||||
|
90 => 7.5,
|
||||||
|
100 => 9.2,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -416,27 +459,6 @@ my %powerMap_tmpl = (
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
ONKYO_AVR => {
|
|
||||||
model => {
|
|
||||||
'TX-NR626' => {
|
|
||||||
stateAV => {
|
|
||||||
absent => 0,
|
|
||||||
off => 0,
|
|
||||||
muted => 85,
|
|
||||||
'*' => 140,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
ONKYO_AVR_ZONE => {
|
|
||||||
stateAV => {
|
|
||||||
off => 0,
|
|
||||||
muted => 10,
|
|
||||||
'*' => 20,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
Panstamp => {
|
Panstamp => {
|
||||||
'Pumpe_Heizkreis' => {
|
'Pumpe_Heizkreis' => {
|
||||||
'off' => "0,Pumpe_Boiler,Brenner",
|
'off' => "0,Pumpe_Boiler,Brenner",
|
||||||
@ -452,18 +474,6 @@ my %powerMap_tmpl = (
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
PHTV => {
|
|
||||||
model => {
|
|
||||||
'55PFL8008S/12' => {
|
|
||||||
stateAV => {
|
|
||||||
absent => 0,
|
|
||||||
off => 0.1,
|
|
||||||
'*' => 90,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
SONOSPLAYER => {
|
SONOSPLAYER => {
|
||||||
model => {
|
model => {
|
||||||
Sonos_S6 => {
|
Sonos_S6 => {
|
||||||
@ -507,29 +517,6 @@ my %powerMap_tmpl = (
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
THINKINGCLEANER => {
|
|
||||||
model => {
|
|
||||||
Roomba_700_Series => {
|
|
||||||
presence => {
|
|
||||||
absent => 0,
|
|
||||||
},
|
|
||||||
deviceStatus => {
|
|
||||||
base => 0.1,
|
|
||||||
plug => 0.1,
|
|
||||||
base_recon => 33,
|
|
||||||
plug_recon => 33,
|
|
||||||
base_full => 33,
|
|
||||||
plug_full => 33,
|
|
||||||
base_trickle => 5,
|
|
||||||
plug_trickle => 5,
|
|
||||||
base_wait => 0.1,
|
|
||||||
plug_wait => 0.1,
|
|
||||||
'*' => 0,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
|
|
||||||
# initialize ###################################################################
|
# initialize ###################################################################
|
||||||
@ -770,8 +757,13 @@ sub powerMap_Notify($$) {
|
|||||||
Log3 $name, 4, "$TYPE: UPDATED for $2";
|
Log3 $name, 4, "$TYPE: UPDATED for $2";
|
||||||
}
|
}
|
||||||
|
|
||||||
# device was newly defined, renamed or got deleted
|
# device was deleted
|
||||||
elsif ( $event =~ m/^(DEFINED|RENAMED|DELETED)\s(.*)/ ) {
|
elsif ( $event =~ m/^(DELETED)\s(.*)/ ) {
|
||||||
|
powerMap_unload( $name, $2 );
|
||||||
|
}
|
||||||
|
|
||||||
|
# device was newly defined, modified or renamed
|
||||||
|
elsif ( $event =~ m/^(DEFINED|MODIFIED|RENAMED)\s(.*)/ ) {
|
||||||
next unless ( powerMap_load( $name, $2 ) );
|
next unless ( powerMap_load( $name, $2 ) );
|
||||||
Log3 $name, 4, "$TYPE: INITIALIZED for $2";
|
Log3 $name, 4, "$TYPE: INITIALIZED for $2";
|
||||||
}
|
}
|
||||||
@ -781,7 +773,7 @@ sub powerMap_Notify($$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $rname_e = powerMap_AttrVal( $name, $dev, "rname_E", "pM_energy" );
|
my $rname_e = powerMap_AttrVal( $name, $dev, "rname_E", "pM_energy" );
|
||||||
my $rname_p = powerMap_AttrVal( $name, $dev, "rname_P", "pM_power" );
|
my $rname_p = powerMap_AttrVal( $name, $dev, "rname_P", "pM_consumption" );
|
||||||
|
|
||||||
my $powerRecalcDone;
|
my $powerRecalcDone;
|
||||||
|
|
||||||
@ -909,7 +901,7 @@ sub powerMap_load($$;$$) {
|
|||||||
|
|
||||||
my $powerMap = $unload ? undef : AttrVal( $dev, $TYPE, undef );
|
my $powerMap = $unload ? undef : AttrVal( $dev, $TYPE, undef );
|
||||||
my $rname_e = powerMap_AttrVal( $name, $dev, "rname_E", "pM_energy" );
|
my $rname_e = powerMap_AttrVal( $name, $dev, "rname_E", "pM_energy" );
|
||||||
my $rname_p = powerMap_AttrVal( $name, $dev, "rname_P", "pM_power" );
|
my $rname_p = powerMap_AttrVal( $name, $dev, "rname_P", "pM_consumption" );
|
||||||
|
|
||||||
# Support for Unit.pm
|
# Support for Unit.pm
|
||||||
$dev_hash->{readingsDesc}{$rname_e} = { rtype => 'whr', };
|
$dev_hash->{readingsDesc}{$rname_e} = { rtype => 'whr', };
|
||||||
@ -1047,32 +1039,43 @@ sub powerMap_findPowerMaps($;$) {
|
|||||||
foreach
|
foreach
|
||||||
my $TYPE ( $dev && $dev !~ /^:/ ? $defs{$dev}{TYPE} : keys %modules )
|
my $TYPE ( $dev && $dev !~ /^:/ ? $defs{$dev}{TYPE} : keys %modules )
|
||||||
{
|
{
|
||||||
next unless ( $modules{$TYPE}{powerMap} );
|
next
|
||||||
|
unless ( $modules{$TYPE}{powerMap}
|
||||||
|
&& keys %{ $modules{$TYPE}{powerMap} } );
|
||||||
my $t = $modules{$TYPE}{powerMap};
|
my $t = $modules{$TYPE}{powerMap};
|
||||||
my $modelSupport = 0;
|
my $modelSupport = 0;
|
||||||
|
|
||||||
# modules w/ model support
|
# modules w/ model support
|
||||||
unless ( $t->{map} ) {
|
unless ( $t->{map} ) {
|
||||||
foreach my $a ( keys %{$t} ) {
|
foreach my $ta ( keys %{$t} ) {
|
||||||
next unless ( ref( $t->{$a} ) eq "HASH" );
|
my $a = $t->{$ta};
|
||||||
|
$a = $t->{ $t->{$ta} }
|
||||||
|
if ( !ref( $t->{$ta} )
|
||||||
|
&& $t->{ $t->{$ta} } );
|
||||||
|
|
||||||
foreach my $m ( keys %{ $t->{$a} } ) {
|
next unless ( ref($a) eq "HASH" && !$a->{map} );
|
||||||
next
|
|
||||||
unless ( ref( $t->{$a}{$m} ) eq "HASH"
|
foreach my $tm ( keys %{$a} ) {
|
||||||
&& !$t->{$a}{map} );
|
|
||||||
|
my $m = $a->{$tm};
|
||||||
|
$m = $a->{ $a->{$tm} }
|
||||||
|
if ( !ref( $a->{$tm} )
|
||||||
|
&& $a->{ $a->{$tm} } );
|
||||||
|
|
||||||
|
next unless ( ref($m) eq "HASH" );
|
||||||
|
|
||||||
$modelSupport = 1;
|
$modelSupport = 1;
|
||||||
|
|
||||||
foreach ( devspec2array("TYPE=$TYPE:FILTER=$a=$m") ) {
|
foreach ( devspec2array("TYPE=$TYPE:FILTER=$ta=$tm") ) {
|
||||||
next if ( $maps{$_} );
|
next if ( $maps{$_} );
|
||||||
|
|
||||||
if ( $t->{$a}{$m}{map} ) {
|
if ( $m->{map} ) {
|
||||||
next unless ( keys %{ $t->{$a}{$m}{map} } );
|
next unless ( keys %{ $m->{map} } );
|
||||||
$maps{$_} = $t->{$a}{$m};
|
$maps{$_} = $m;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
next unless ( keys %{ $t->{$a}{$m} } );
|
next unless ( keys %{$m} );
|
||||||
$maps{$_}{map} = $t->{$a}{$m};
|
$maps{$_}{map} = $m;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1109,26 +1112,32 @@ sub powerMap_findPowerMaps($;$) {
|
|||||||
my $modelSupport = 0;
|
my $modelSupport = 0;
|
||||||
|
|
||||||
# modules w/ model support
|
# modules w/ model support
|
||||||
foreach my $a ( keys %{$t} ) {
|
foreach my $ta ( keys %{$t} ) {
|
||||||
next unless ( $t->{$a} );
|
|
||||||
|
|
||||||
foreach my $m ( keys %{ $t->{$a} } ) {
|
my $a = $t->{$ta};
|
||||||
|
$a = $t->{ $t->{$ta} }
|
||||||
|
if ( !ref( $t->{$ta} )
|
||||||
|
&& $t->{ $t->{$ta} } );
|
||||||
|
|
||||||
|
next unless ( ref($a) eq "HASH" );
|
||||||
|
|
||||||
|
foreach my $m ( keys %{$a} ) {
|
||||||
next
|
next
|
||||||
unless ( ref( $t->{$a}{$m} ) eq "HASH"
|
unless ( ref( $a->{$m} ) eq "HASH"
|
||||||
&& !$t->{$a}{map} );
|
&& !$a->{map} );
|
||||||
|
|
||||||
$modelSupport = 1;
|
$modelSupport = 1;
|
||||||
|
|
||||||
foreach ( devspec2array("TYPE=$TYPE:FILTER=$a=$m") ) {
|
foreach ( devspec2array("TYPE=$TYPE:FILTER=$ta=$m") ) {
|
||||||
next if ( $maps{$_} );
|
next if ( $maps{$_} );
|
||||||
|
|
||||||
if ( $t->{$a}{$m}{map} ) {
|
if ( $a->{$m}{map} ) {
|
||||||
next unless ( keys %{ $t->{$a}{$m}{map} } );
|
next unless ( keys %{ $a->{$m}{map} } );
|
||||||
$maps{$_} = $t->{$a}{$m};
|
$maps{$_} = $a->{$m};
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
next unless ( keys %{ $t->{$a}{$m} } );
|
next unless ( keys %{ $a->{$m} } );
|
||||||
$maps{$_}{map} = $t->{$a}{$m};
|
$maps{$_}{map} = $a->{$m};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1177,7 +1186,7 @@ sub powerMap_findPowerMaps($;$) {
|
|||||||
|
|
||||||
return {}
|
return {}
|
||||||
if ( $dev && $dev !~ /^:/ && !defined( $maps{$dev} ) );
|
if ( $dev && $dev !~ /^:/ && !defined( $maps{$dev} ) );
|
||||||
return \$maps{$dev} if ( $dev && $dev !~ /^:/ );
|
return $maps{$dev}{map} if ( $dev && $dev !~ /^:/ );
|
||||||
return \%maps;
|
return \%maps;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1460,7 +1469,7 @@ sub powerMap_energy($$;$) {
|
|||||||
my $dev_hash = $defs{$dev};
|
my $dev_hash = $defs{$dev};
|
||||||
my $TYPE = $hash->{TYPE};
|
my $TYPE = $hash->{TYPE};
|
||||||
my $rname_e = powerMap_AttrVal( $name, $dev, "rname_E", "pM_energy" );
|
my $rname_e = powerMap_AttrVal( $name, $dev, "rname_E", "pM_energy" );
|
||||||
my $rname_p = powerMap_AttrVal( $name, $dev, "rname_P", "pM_power" );
|
my $rname_p = powerMap_AttrVal( $name, $dev, "rname_P", "pM_consumption" );
|
||||||
|
|
||||||
Log3 $name, 5, "$TYPE: Entering powerMap_energy() for $dev";
|
Log3 $name, 5, "$TYPE: Entering powerMap_energy() for $dev";
|
||||||
|
|
||||||
@ -1504,7 +1513,7 @@ sub powerMap_update($;$) {
|
|||||||
Log3 $name, 5, "$TYPE: Entering powerMap_update() for $dev";
|
Log3 $name, 5, "$TYPE: Entering powerMap_update() for $dev";
|
||||||
|
|
||||||
my $rname_e = powerMap_AttrVal( $name, $dev, "rname_E", "pM_energy" );
|
my $rname_e = powerMap_AttrVal( $name, $dev, "rname_E", "pM_energy" );
|
||||||
my $rname_p = powerMap_AttrVal( $name, $dev, "rname_P", "pM_power" );
|
my $rname_p = powerMap_AttrVal( $name, $dev, "rname_P", "pM_consumption" );
|
||||||
|
|
||||||
readingsBeginUpdate($dev_hash);
|
readingsBeginUpdate($dev_hash);
|
||||||
|
|
||||||
@ -1610,7 +1619,7 @@ sub powerMap_update($;$) {
|
|||||||
energy for the very first time.
|
energy for the very first time.
|
||||||
</li><br>
|
</li><br>
|
||||||
<li>
|
<li>
|
||||||
<code>pM_power</code><br>
|
<code>pM_consumption</code><br>
|
||||||
Current power consumption of device in W.
|
Current power consumption of device in W.
|
||||||
</li>
|
</li>
|
||||||
</ul><br>
|
</ul><br>
|
||||||
@ -1651,7 +1660,7 @@ sub powerMap_update($;$) {
|
|||||||
<li>
|
<li>
|
||||||
<code>powerMap_rname_P</code><br>
|
<code>powerMap_rname_P</code><br>
|
||||||
Sets reading name for power consumption.<br>
|
Sets reading name for power consumption.<br>
|
||||||
Default value is 'pM_power'.
|
Default value is 'pM_consumption'.
|
||||||
</li><br>
|
</li><br>
|
||||||
<li>
|
<li>
|
||||||
<code>powerMap<pre>
|
<code>powerMap<pre>
|
||||||
@ -1777,7 +1786,7 @@ sub powerMap_update($;$) {
|
|||||||
Gerät erstmalig Energie verbraucht hat.
|
Gerät erstmalig Energie verbraucht hat.
|
||||||
</li><br>
|
</li><br>
|
||||||
<li>
|
<li>
|
||||||
<code>pM_power</code><br>
|
<code>pM_consumption</code><br>
|
||||||
Die aktuelle Leistungsaufnahme des Gerätes in W.
|
Die aktuelle Leistungsaufnahme des Gerätes in W.
|
||||||
</li>
|
</li>
|
||||||
</ul><br>
|
</ul><br>
|
||||||
@ -1822,7 +1831,7 @@ sub powerMap_update($;$) {
|
|||||||
<code>powerMap_rname_P</code><br>
|
<code>powerMap_rname_P</code><br>
|
||||||
Definiert den Reading Namen, in dem die aktuelle Leistungsaufnahme
|
Definiert den Reading Namen, in dem die aktuelle Leistungsaufnahme
|
||||||
des Gerätes gespeichert wird.<br>
|
des Gerätes gespeichert wird.<br>
|
||||||
Der Vorgabewert ist 'pM_power'.
|
Der Vorgabewert ist 'pM_consumption'.
|
||||||
</li><br>
|
</li><br>
|
||||||
<li>
|
<li>
|
||||||
<code>powerMap<pre>
|
<code>powerMap<pre>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user