Autor Thema: update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)  (Gelesen 20928 mal)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 21339
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #15 am: 17 August 2015, 09:50:54 »
this is intentional. everything that is not a reading and has no name (i.e. heading elements) is affected by nameStyle instead of valueStyle.

you can use the 'more modern' way of using !<pseudo reading>    (!timestamp) with valueFormat instead of <{...}>. this will then be affected by the value... attributes.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, …

https://github.com/sponsors/justme-1968

Offline fruit

  • Full Member
  • ***
  • Beiträge: 289
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #16 am: 17 August 2015, 10:29:45 »
OK, nameStyle makes sense.
Struggling with the second bit but I'll take a look through the module - and as said I can do what I need with what I have (or with what I can understand)

I think I need an O'Reilly's "fhem: readingsGroup" book ;)
Feel free to follow up in German if you prefer

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 21339
update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #17 am: 17 August 2015, 10:54:34 »
you just define the timestamp as you would a normal reading. but add an ! in front of the name to force ist to display even if there is no real reading with this name. then use valueFormat to set the value exactly aus you have done with ReadingsTimestamp above.

the only advatage of the <{...}> version is that you can append an @<reading> after the } to get longpoll update of the timestamp. this is (currently) not possible with the 'newer' version.

als much als i like the o'reilly books... i fear this will not happen ;)
« Letzte Änderung: 17 August 2015, 19:26:52 von justme1968 »
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, …

https://github.com/sponsors/justme-1968

Offline fruit

  • Full Member
  • ***
  • Beiträge: 289
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #18 am: 17 August 2015, 19:21:09 »
Thanks for the extra explanation, I got there in the end :)
Feel free to follow up in German if you prefer

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1475
  • FHEMonaut
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #19 am: 19 August 2015, 14:25:34 »
hallo Andre,

hmmmm..
bin wieder mal per Zufall auf diese Erweiterung gestoßen , hätte ich mal eher lesen sollen.
Danke
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Offline hneu

  • New Member
  • *
  • Beiträge: 49
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #20 am: 21 August 2015, 12:17:40 »
Hallo,

wie kann ich denn beispielsweise folgende Aufgabe lösen?

Ich habe das Beispiel der RSSI Werte aus dem WIKI an meine Enocean Komponenten angepasst. Das funktioniert soweit.

Zu den RSSI Werten enthält die Tabelle auch den Zeitstempel des letzten Readings eines Gerätes.

Wie kann ich nun in einer weiteren Spalte das Alter dieses Zeitstempels berechnen?

Ich will einen Hinweis auf verlorene Readings erhalten.


Hat jemand eine Idee?

mfg
Helmut

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 21339
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #21 am: 21 August 2015, 12:51:44 »
das geht normalerweise über ...,<{...}>,... und eigenem perl code. irgendwo im forum gibt es auch ein kleines javascript modul das alle zeitsempel in eine altersangabe umrechnet.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, …

https://github.com/sponsors/justme-1968

Offline macmattes

  • Jr. Member
  • **
  • Beiträge: 73
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #22 am: 23 August 2015, 12:56:21 »
hallo

gibts irgendwo ein besipiel für eine eigene Funktion für die myUtils?
ich komm da nicht weiter, ich möchte ein delta der werte von oben nach unten machen, also vom oberen alle unteren abziehen.
ein beispiel wie ich es bisher versuche

sub
myrgDelta
{
  my @values = @{$_[0]};
  my $cnt = scalar @values;
  my $ret = $values[0];
  for (my $i=1;$i<@values;$i++){
     $ret = $ret - $values[$i];
  }
  return undef if( !$cnt );
  return $ret;
}

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 21339
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #23 am: 23 August 2015, 13:21:37 »
die count routine wäre ein beispiel. da siehst du wie die werte übergeben werden.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, …

https://github.com/sponsors/justme-1968

Offline Afterburner

  • Full Member
  • ***
  • Beiträge: 213
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #24 am: 02 Januar 2016, 10:40:28 »
Servus,

ich bin gerade dabei mit eine RG für meinen Stromverbrauch zu basteln in der ich dann im Endeffekt die Summe aller Einzelverbraucher vom Gesamtverbrauch (durch ESA2000 gemessen) abziehe.
DEF
<%message_socket_ch_3>,<Power>,<Voltage>,<Strom>
TYPE=Revolt:power,voltage,current
Arbeitszimmer.Steckdose_Pwr:power,voltage,current
TYPE=FBDECT:power,voltage,current
TYPE=UbiquitiOut:power,voltage,current
TYPE=ESA2000:actual,day,raw_total
Strom.Uebersicht:$sum(2..12:1)
<Differenz>


Das funktioniert bis zur Summe (Zeile 2 bis 12, Spalte 1), allerdings bekomme ich dabei Log-Einträge da die FritzDECT Dosen ihre Werte mit Maßeinheit liefern

2016.01.02 10:19:43 1: PERL WARNING: Argument "26.82 W" isn't numeric in subroutine entry at (eval 9350) line 1.
2016.01.02 10:19:43 1: PERL WARNING: Argument "14.87 W" isn't numeric in subroutine entry at (eval 9350) line 1.
2016.01.02 10:19:54 1: PERL WARNING: Argument "26.82 W" isn't numeric in subroutine entry at (eval 9366) line 1.
2016.01.02 10:19:54 1: PERL WARNING: Argument "14.94 W" isn't numeric in subroutine entry at (eval 9366) line 1.

Für das Valueformat und Style habe ich schon eine Lösung gefunden mittels einen "PHP str_replace clones",

99_my...
sub str_replace {
my $replace_this = shift;
my $with_this  = shift;
my $string   = shift;

my $length = length($string);
my $target = length($replace_this);

for(my $i=0; $i<$length - $target + 1; $i++) {
if(substr($string,$i,$target) eq $replace_this) {
$string = substr($string,0,$i) . $with_this . substr($string,$i+$target);
return $string;
}
}
return $string;
}

schaut dann so aus:

valueFormat
{
'Arbeitszimmer.Steckdose_Pwr.current' => '{sprintf("%.2f A",$VALUE/1000)}',
power => '{sprintf("%1.f W",str_replace(" W","",$VALUE))}',
voltage => '{sprintf("%.1f V",str_replace(" V","",$VALUE))}',
current => '{sprintf("%.2f A",str_replace(" A","",$VALUE))}',
actual => '%.3f KW',
day => '%.2f KW',
raw_total => '%.1f'
}


valueStyle
{
if($READING eq "voltage" && str_replace(' V','',$VALUE) > 232){
'style="color:orange;;font-weight:bold;;font-size:16px"'
}elsif( $READING eq "voltage" && str_replace(' V','',$VALUE) <= 232 && str_replace(' V','',$VALUE) >= 228 ){
'style="color:green;;font-size:16px"'
}elsif( $READING eq "voltage" && str_replace(' V','',$VALUE) < 228 && str_replace(' V','',$VALUE) >= 220 ){
'style="color:orange;;font-size:16px"'
}elsif( $READING eq "voltage" && str_replace(' V','',$VALUE) < 220 ){
'style="color:red;;font-size:16px"'
}elsif($READING eq "power" && str_replace(' W','',$VALUE) > 500){
'style="color:red;;font-weight:bold;;font-size:16px"'
}elsif( $READING eq "power" && str_replace(' W','',$VALUE) <= 500 && str_replace(' W','',$VALUE) >= 50){
'style="color:orange;;font-size:16px"'
}elsif( $READING eq "power" && str_replace(' W','',$VALUE) < 50 ){
'style="color:green;;font-size:16px"'
}else{
'style="color:gray;;text-align:right"'
}
}


Hat jemand eine Idee wie ich diese Einträge vermeiden kann ?
Sprich ich müsste dem readingsGroup Modul irgendwie str_replace(' W','',$VALUE) zur Summierung übergeben

Oder könnte der "Modulverwalter" im Modul eine Funktion einbauen die nicht nummerische Werte automatisch "korrigiert" um so z.B. die " W", " V" und " A" zu entfernen

Der nächste Punkt welcher mir jetzt noch fehlt ist die Subtraktion, ich möchte dort
Strom.Uebersicht:$sum(2..12:1)
von
TYPE=ESA2000:actual
abziehen, wobei TYPE=ESA2000:actual noch in KW angegeben ist und auch noch umgerechnet werden müsste ^^

Ach ja Strom.Uebersicht:$sum(2..12:1) wird in der Ausgabe als
Strom.Uebersicht:sum 123.4
dargestellt, kann man da den Namen irgendwie ändern in "Freitext" und mit Maßeinheit?
Summer Verbraucher 123.4 W
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 21339
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #25 am: 02 Januar 2016, 11:23:41 »
wenn du $NUM statt $VALUE verwendest werden die einheiten abgeschnitten. zum formatieren der ausgabe solltest du die einheiten mit valueSuffix anhängen. nicht mit valueFormat. dann beeinflusst es die Berechnungen nicht.

an die definition einer rechnung kannst du @<alias> und dann diesen alias verwenden um den wert mit den entsprechenden attributen zu formatieren.

sie bistraktion bekommst du z.b. in dem du dir einen eigenen operator definierst. oder in deinem fall vermutlich einfacher in dem du ein valueFormat für das summenfeld angibst und dort rechnest.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, …

https://github.com/sponsors/justme-1968

Offline Afterburner

  • Full Member
  • ***
  • Beiträge: 213
Antw:update readingsGroup (zeilen/spalten summe,min,max,durchschnitt,...)
« Antwort #26 am: 02 Januar 2016, 12:39:27 »
Danke für die Antwort

an die definition einer rechnung kannst du @<alias> und dann diesen alias verwenden um den wert mit den entsprechenden attributen zu formatieren.

OK das mit der Maßeinheit habe ich so hinbekommen,
Strom.Uebersicht:$sum(2..12:1)@SummeVerbraucheraber in der 1. Spalte steht noch bzw jetzt
Strom.Uebersicht:SummeVerbraucher
ich hätte da gerne
Summe Verbraucher
zu stehen.


wenn du $NUM statt $VALUE verwendest werden die einheiten abgeschnitten. zum formatieren der ausgabe solltest du die einheiten mit valueSuffix anhängen. nicht mit valueFormat. dann beeinflusst es die Berechnungen nicht.

OK wieder was dazu gelernt, macht zumindest mein valueStyle Code kürzer
{
if($READING eq "voltage" && $NUM > 232){
'style="color:orange;;font-weight:bold;;font-size:16px"'
}elsif( $READING eq "voltage" && $NUM <= 232 && $NUM >= 228 ){
'style="color:green;;font-size:16px"'
}elsif( $READING eq "voltage" && $NUM < 228 && $NUM >= 220 ){
'style="color:orange;;font-size:16px"'
}elsif( $READING eq "voltage" && $NUM < 220 ){
'style="color:red;;font-size:16px"'
}elsif($READING eq "power" && $NUM > 500){
'style="color:red;;font-weight:bold;;font-size:16px"'
}elsif( $READING eq "power" && $NUM <= 500 && $NUM >= 50){
'style="color:orange;;font-size:16px"'
}elsif( $READING eq "power" && $NUM < 50 ){
'style="color:green;;font-size:16px"'
}else{
'style="color:gray;;text-align:right"'
}
}

valueFormat habe ich momentan so
{
'Arbeitszimmer.Steckdose_Pwr.current' => '{sprintf("%.2f",$VALUE/1000)}',
power => '{sprintf("%1.f",str_replace(" W","",$VALUE))}',
voltage => '{sprintf("%.1f",str_replace(" V","",$VALUE))}',
current => '{sprintf("%.2f",str_replace(" A","",$VALUE))}',
actual => '%.3f',
day => '%.2f',
raw_total => '%.1f',
SummeVerbraucher => '%1.f'
}

wenn ich dort ins valueFormat $NUM statt $VALUE eintrage
{
'Arbeitszimmer.Steckdose_Pwr.current' => '{sprintf("%.2f",$NUM/1000)}',
power => '{sprintf("%1.f",$NUM)}',
voltage => '{sprintf("%.1f",$NUM)}',
current => '{sprintf("%.2f",$NUM)}',
actual => '%.3f',
day => '%.2f',
raw_total => '%.1f',
SummeVerbraucher => '%1.f'
}

dann werden die Einheiten bei den Fritzgeräten nicht abgeschnitten und auch die Umrechnung von mA in A bei Arbeitszimmer.Steckdose_Pwr.current geht nicht mehr. (siehe Anhang)
Des weiteren gibt es dann nen Haufen Einträge im Logfile ala

2016.01.02 12:32:13 2: Global symbol "$NUM" requires explicit package name at (eval 20935) line 1.
2016.01.02 12:32:13 2: Global symbol "$NUM" requires explicit package name at (eval 20938) line 1.
2016.01.02 12:32:13 2: Global symbol "$NUM" requires explicit package name at (eval 20941) line 1.


sie bistraktion bekommst du z.b. in dem du dir einen eigenen operator definierst. oder in deinem fall vermutlich einfacher in dem du ein valueFormat für das summenfeld angibst und dort rechnest.
das verstehe ich nicht wirklich
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

Offline C0mmanda

  • Sr. Member
  • ****
  • Beiträge: 562
Moin,

Habe mir eine Readingsgroup mit Berechnungen für meinen Stromverbrauch zusammengebastelt.
Die Readingsgroup funktioniert auch Einwandfrei nur wird mein Log nun hiermit regelrecht geflutet:

2016.04.26 10:59:37 1: readingsUpdate(Verbrauch,KWh,368.30) missed to call readingsBeginUpdate first.
2016.04.26 10:59:37 1: readingsUpdate(Verbrauch,ATotal,0.80) missed to call readingsBeginUpdate first.
2016.04.26 10:59:41 1: readingsUpdate(Verbrauch,KWh,368.30) missed to call readingsBeginUpdate first.
2016.04.26 10:59:41 1: readingsUpdate(Verbrauch,ATotal,0.80) missed to call readingsBeginUpdate first.
2016.04.26 10:59:41 1: readingsUpdate(Verbrauch,KWh,368.30) missed to call readingsBeginUpdate first.
2016.04.26 10:59:41 1: readingsUpdate(Verbrauch,ATotal,0.80) missed to call readingsBeginUpdate first.
2016.04.26 10:59:43 1: readingsUpdate(Verbrauch,KWh,368.30) missed to call readingsBeginUpdate first.
2016.04.26 10:59:43 1: readingsUpdate(Verbrauch,ATotal,0.80) missed to call readingsBeginUpdate first.
2016.04.26 10:59:45 1: readingsUpdate(Verbrauch,KWh,368.30) missed to call readingsBeginUpdate first.
2016.04.26 10:59:45 1: readingsUpdate(Verbrauch,ATotal,0.80) missed to call readingsBeginUpdate first.


Wo kann ich hier ansetzen um den Fehler zu finden?
Was will mir die Meldung überhaupt im genauen sagen?
Bin seit heute morgen auf der Suche, kann nur leider nichts finden.

Vielen Dank für eure Hilfe!

Grtz
CmdA

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 21339
zeig mal bitte ein list auf die readingsGroup und was im log steht wenn du stacktrace einschaltest.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, …

https://github.com/sponsors/justme-1968

Offline C0mmanda

  • Sr. Member
  • ****
  • Beiträge: 562
Anbei das list der Readingsgroup und stacktracemeldung.

List:
Internals:
   DEF        <Gerät>,<Aktuell>,<Gesamt>,<Amp>,<Volt> .*[Pp]ower:power,energyKWh,A,voltage TYPE=MilightDevice:actualW,energyKWh,A,VoltAVG@Verbrauch TYPE=WifiLight:actualW,energyKWh,A,VoltAVG@Verbrauch Taster_HausBeleuchtung_Sw_01:actualW,energyKWh,A,VoltAVG@Verbrauch GZ_TVLampe:actualW,energyKWh,A,VoltAVG@Verbrauch Openelec_.*:actualW,energyKWh,A,VoltAVG@Verbrauch <hr> Verbrauch:$sum(:1)@aktuellW,$sum(:2)@KWh,$sum(1..17:3)@AGesamt,$avg(1..5:4)@VoltAVG d_W_Diff_Calc:W_Diff,<->,A,VoltAVG@Verbrauch Stromzaehler:power,kWhTotal,ATotal@Verbrauch,VoltAVG@Verbrauch
   NAME       Verbrauch
   NR         1129
   NTFY_ORDER 50-Verbrauch
   STATE      Initialized
   TYPE       readingsGroup
   alwaysTrigger 2
   mayBeVisible 1
   Content:
     GZ_TVLampe 1
     KUE_Kuehlschrank_Power 1
     NUC_Server_Power 1
     OMV_Server_power 1
     Openelec_GZ 1
     Openelec_KUE 1
     Openelec_SZ 1
     Stromzaehler 1
     Taster_HausBeleuchtung_Sw_01 1
     Tiefkuehltruhe_Power 1
     Verbrauch  1
     WZ_Multimedia_Power 1
     d_W_Diff_Calc 1
     eg_KUE_RGBW_Regal 1
     eg_WZ_Couchlampe 1
     eg_WZ_Esszimmer_Stehlampe 1
     eg_WZ_Stehlampe 1
     eg_WZ_TV_RGBW 1
     og_AKZ_Lampe 1
     og_FL_Lampe 1
   Content2:
     Verbrauch  1
   DEVICES:
     ARRAY(0x629a7d8)
     ARRAY(0x636fbf0)
     ARRAY(0x6d363a0)
     ARRAY(0x6685de8)
     ARRAY(0x6d36c10)
     ARRAY(0x6686cf8)
     ARRAY(0x5fee298)
     ARRAY(0x6d367c0)
     ARRAY(0x66863c8)
     ARRAY(0x6392740)
     ARRAY(0x6d38298)
     ARRAY(0x62bb260)
     ARRAY(0x6d369b8)
     ARRAY(0x62d00d0)
     ARRAY(0x6d367d8)
     ARRAY(0x632e7e8)
     ARRAY(0x465e240)
     ARRAY(0x6685c08)
     ARRAY(0x60eabf0)
     ARRAY(0x6d387f0)
     ARRAY(0x6d38e38)
     ARRAY(0x6d39310)
   DEVICES2:
     ARRAY(0x629a7d8)
     ARRAY(0x636fbf0)
     ARRAY(0x6d363a0)
     ARRAY(0x6685de8)
     ARRAY(0x6d36c10)
     ARRAY(0x6686cf8)
     ARRAY(0x5fee298)
     ARRAY(0x6d367c0)
     ARRAY(0x66863c8)
     ARRAY(0x6392740)
     ARRAY(0x6d38298)
     ARRAY(0x62bb260)
     ARRAY(0x6d369b8)
     ARRAY(0x62d00d0)
     ARRAY(0x6d367d8)
     ARRAY(0x632e7e8)
     ARRAY(0x465e240)
     ARRAY(0x6685c08)
     ARRAY(0x60eabf0)
     ARRAY(0x6d387f0)
     ARRAY(0x6d38e38)
     ARRAY(0x6d39310)
     ARRAY(0x6d392b0)
     ARRAY(0x62e2a10)
   Helper:
     Dblog:
       Kwh:
         Logdb1:
           TIME       1461663406.01576
           VALUE      368.35
       Aktuellw:
         Logdb1:
           TIME       1461663406.10803
           VALUE      33.58
   Readings:
     2016-04-26 11:31:55   AGesamt         0.33
     2016-04-26 11:37:05   ATotal          0.59
     2016-04-26 11:36:45   KWh             368.35
     2016-04-26 11:36:43   VoltAVG         232.00
     2016-04-25 19:41:59   W_Diff          73.12
     2016-04-26 11:36:45   aktuellW        33.58
   Fhem:
     lastDefChange 1
     last_update 1461663336.27358
   Helper:
     DEF
     mapping    %ROOM %ALIAS
     valueStyle {
if ($DEVICE eq "KUE_Kuehlschrank_Power" && $READING eq "power" && $VALUE >= 40) {'style="color:red"'}
elsif
($DEVICE eq "KUE_Kuehlschrank_Power" && $READING eq "power" && $VALUE < 40) {'style="color:green"'}
elsif
($DEVICE eq "NUC_Server_Power" && $READING eq "power" && $VALUE >= 19.5) {'style="color:red"'}
elsif
($DEVICE eq "NUC_Server_Power" && $READING eq "power" && $VALUE < 19.5) {'style="color:green"'}
elsif
($DEVICE eq "OMV_Server_power" && $READING eq "power" && $VALUE >= 5) {'style="color:red"'}
elsif
($DEVICE eq "OMV_Server_power" && $READING eq "power" && $VALUE < 5) {'style="color:green"'}
elsif
($DEVICE eq "Tiefkuehltruhe_Power" && $READING eq "power" && $VALUE >= 4) {'style="color:red"'}
elsif
($DEVICE eq "Tiefkuehltruhe_Power" && $READING eq "power" && $VALUE < 4) {'style="color:green"'}
elsif
($DEVICE eq "WZ_Multimedia_Power" && $READING eq "power" && $VALUE >= 20) {'style="color:red"'}
elsif
($DEVICE eq "WZ_Multimedia_Power" && $READING eq "power" && $VALUE < 20) {'style="color:green"'}
elsif
($DEVICE eq "eg_WZ_Couchlampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "eg_WZ_Couchlampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "eg_WZ_Esszimmer_Stehlampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "eg_WZ_Esszimmer_Stehlampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "eg_WZ_Stehlampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "eg_WZ_Stehlampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "eg_WZ_TV_RGBW" && $READING eq "actualW" && $VALUE > 1) {'style="color:red"'}
elsif
($DEVICE eq "eg_WZ_TV_RGBW" && $READING eq "actualW" && $VALUE <= 1) {'style="color:green"'}
elsif
($DEVICE eq "og_AKZ_Lampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "og_AKZ_Lampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "og_FL_Lampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "og_FL_Lampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "eg_KUE_RGBW_Regal" && $READING eq "actualW" && $VALUE > 1) {'style="color:red"'}
elsif
($DEVICE eq "eg_KUE_RGBW_Regal" && $READING eq "actualW" && $VALUE <= 1) {'style="color:green"'}
elsif
($DEVICE eq "Taster_HausBeleuchtung_Sw_01" && $READING eq "actualW" && $VALUE > 0.5) {'style="color:red"'}
elsif
($DEVICE eq "Taster_HausBeleuchtung_Sw_01" && $READING eq "actualW" && $VALUE <= 0.5) {'style="color:green"'}
elsif
($DEVICE eq "Openelec_GZ" && $READING eq "actualW" && $VALUE > 10) {'style="color:red"'}
elsif
($DEVICE eq "Openelec_GZ" && $READING eq "actualW" && $VALUE <= 10) {'style="color:green"'}
elsif
($DEVICE eq "Openelec_SZ" && $READING eq "actualW" && $VALUE > 10) {'style="color:red"'}
elsif
($DEVICE eq "Openelec_SZ" && $READING eq "actualW" && $VALUE <= 10) {'style="color:green"'}
elsif
($DEVICE eq "GZ_TVLampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "GZ_TVLampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "Verbrauch" && $READING eq "aktuellW" && $VALUE > 34.5) {'style="color:red"'}
elsif
($DEVICE eq "Verbrauch" && $READING eq "aktuellW" && $VALUE <= 34.5) {'style="color:green"'}
}
     Cellstyle:
       c:0        style="text-align:left"
       c:1        style="text-align:right"
       c:2        style="text-align:right"
       c:3        style="text-align:right"
       c:4        style="text-align:right"
     Positions:
       GZ_TVLampe.A 15:3
       GZ_TVLampe.actualW 15:1
       GZ_TVLampe.energyKWh 15:2
       KUE_Kuehlschrank_Power.A 2:3
       KUE_Kuehlschrank_Power.energyKWh 2:2
       KUE_Kuehlschrank_Power.power 2:1
       KUE_Kuehlschrank_Power.voltage 2:4
       NUC_Server_Power.A 3:3
       NUC_Server_Power.energyKWh 3:2
       NUC_Server_Power.power 3:1
       NUC_Server_Power.voltage 3:4
       OMV_Server_power.A 4:3
       OMV_Server_power.energyKWh 4:2
       OMV_Server_power.power 4:1
       OMV_Server_power.voltage 4:4
       Openelec_GZ.A 16:3
       Openelec_GZ.actualW 16:1
       Openelec_GZ.energyKWh 16:2
       Openelec_KUE.A 17:3
       Openelec_KUE.actualW 17:1
       Openelec_KUE.energyKWh 17:2
       Openelec_SZ.A 18:3
       Openelec_SZ.actualW 18:1
       Openelec_SZ.energyKWh 18:2
       Stromzaehler.kWhTotal 22:2
       Stromzaehler.power 22:1
       Taster_HausBeleuchtung_Sw_01.A 14:3
       Taster_HausBeleuchtung_Sw_01.actualW 14:1
       Taster_HausBeleuchtung_Sw_01.energyKWh 14:2
       Tiefkuehltruhe_Power.A 5:3
       Tiefkuehltruhe_Power.energyKWh 5:2
       Tiefkuehltruhe_Power.power 5:1
       Tiefkuehltruhe_Power.voltage 5:4
       Verbrauch.ATotal 22:3
       Verbrauch.VoltAVG 7:4,8:4,9:4,10:4,11:4,12:4,13:4,14:4,15:4,16:4,17:4,18:4,21:4,22:4
       WZ_Multimedia_Power.A 6:3
       WZ_Multimedia_Power.energyKWh 6:2
       WZ_Multimedia_Power.power 6:1
       WZ_Multimedia_Power.voltage 6:4
       d_W_Diff_Calc.A 21:3
       d_W_Diff_Calc.W_Diff 21:1
       eg_KUE_RGBW_Regal.A 13:3
       eg_KUE_RGBW_Regal.actualW 13:1
       eg_KUE_RGBW_Regal.energyKWh 13:2
       eg_WZ_Couchlampe.A 7:3
       eg_WZ_Couchlampe.actualW 7:1
       eg_WZ_Couchlampe.energyKWh 7:2
       eg_WZ_Esszimmer_Stehlampe.A 8:3
       eg_WZ_Esszimmer_Stehlampe.actualW 8:1
       eg_WZ_Esszimmer_Stehlampe.energyKWh 8:2
       eg_WZ_Stehlampe.A 9:3
       eg_WZ_Stehlampe.actualW 9:1
       eg_WZ_Stehlampe.energyKWh 9:2
       eg_WZ_TV_RGBW.A 10:3
       eg_WZ_TV_RGBW.actualW 10:1
       eg_WZ_TV_RGBW.energyKWh 10:2
       og_AKZ_Lampe.A 11:3
       og_AKZ_Lampe.actualW 11:1
       og_AKZ_Lampe.energyKWh 11:2
       og_FL_Lampe.A 12:3
       og_FL_Lampe.actualW 12:1
       og_FL_Lampe.energyKWh 12:2
     recalc:

       ARRAY(0x6354cb0)
       ARRAY(0x6357118)
       ARRAY(0x6355a48)
       ARRAY(0x6369178)
     Valueformat:
       A          %.2f
       AGesamt    %.2f
       ATotal     %.2f
       KWh        %.2f
       VoltAVG    %.2f
       W_Diff     %.2f
       actualW    %.2f
       aktuellW   %.2f
       energyKWh  %.2f
       kWhTotal   %.2f
       power      %.2f
       sum        %.2f
       voltage    %.2f
     Values:
       calc:

         ARRAY(0x63531e8)
         ARRAY(0x6355418)
         ARRAY(0x6356ed8)
         ARRAY(0x6356d58)
       formated:

         ARRAY(0x6356f98)
         ARRAY(0x63571c0)
         ARRAY(0x6357298)
         ARRAY(0x6356548)
       orig:

         ARRAY(0x63792e8)
         ARRAY(0x6355b50)
         ARRAY(0x6369418)
         ARRAY(0x6355490)
       prefixsuffix:

         ARRAY(0x6357370)
         ARRAY(0x6355c40)
         ARRAY(0x63693b8)
         ARRAY(0x632fd58)
Attributes:
   alwaysTrigger 2
   cellStyle  { "c:0" => 'style="text-align:left"', "c:1" => 'style="text-align:right"', "c:2" => 'style="text-align:right"', "c:3" => 'style="text-align:right"', "c:4" => 'style="text-align:right"' }
   firstCalcRow 2
   group      Infos
   mapping    %ROOM %ALIAS
   room       Energie,Home
   userReadings ATotal {sprintf("%.2f",(ReadingsNum("Verbrauch","AGesamt","???")+ReadingsNum("d_W_Diff_Calc","A","???")));}
   valueFormat {  ATotal => "%.2f", W_Diff => "%.2f", VoltAVG => "%.2f", aktuellW => "%.2f", kWhTotal => "%.2f", voltage => "%.2f", AGesamt => "%.2f", A => "%.2f", KWh => "%.2f", 'sum' => "%.2f", actualW => "%.2f", power => "%.2f", energyKWh => "%.2f"}
   valueStyle {
if ($DEVICE eq "KUE_Kuehlschrank_Power" && $READING eq "power" && $VALUE >= 40) {'style="color:red"'}
elsif
($DEVICE eq "KUE_Kuehlschrank_Power" && $READING eq "power" && $VALUE < 40) {'style="color:green"'}
elsif
($DEVICE eq "NUC_Server_Power" && $READING eq "power" && $VALUE >= 19.5) {'style="color:red"'}
elsif
($DEVICE eq "NUC_Server_Power" && $READING eq "power" && $VALUE < 19.5) {'style="color:green"'}
elsif
($DEVICE eq "OMV_Server_power" && $READING eq "power" && $VALUE >= 5) {'style="color:red"'}
elsif
($DEVICE eq "OMV_Server_power" && $READING eq "power" && $VALUE < 5) {'style="color:green"'}
elsif
($DEVICE eq "Tiefkuehltruhe_Power" && $READING eq "power" && $VALUE >= 4) {'style="color:red"'}
elsif
($DEVICE eq "Tiefkuehltruhe_Power" && $READING eq "power" && $VALUE < 4) {'style="color:green"'}
elsif
($DEVICE eq "WZ_Multimedia_Power" && $READING eq "power" && $VALUE >= 20) {'style="color:red"'}
elsif
($DEVICE eq "WZ_Multimedia_Power" && $READING eq "power" && $VALUE < 20) {'style="color:green"'}
elsif
($DEVICE eq "eg_WZ_Couchlampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "eg_WZ_Couchlampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "eg_WZ_Esszimmer_Stehlampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "eg_WZ_Esszimmer_Stehlampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "eg_WZ_Stehlampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "eg_WZ_Stehlampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "eg_WZ_TV_RGBW" && $READING eq "actualW" && $VALUE > 1) {'style="color:red"'}
elsif
($DEVICE eq "eg_WZ_TV_RGBW" && $READING eq "actualW" && $VALUE <= 1) {'style="color:green"'}
elsif
($DEVICE eq "og_AKZ_Lampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "og_AKZ_Lampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "og_FL_Lampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "og_FL_Lampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "eg_KUE_RGBW_Regal" && $READING eq "actualW" && $VALUE > 1) {'style="color:red"'}
elsif
($DEVICE eq "eg_KUE_RGBW_Regal" && $READING eq "actualW" && $VALUE <= 1) {'style="color:green"'}
elsif
($DEVICE eq "Taster_HausBeleuchtung_Sw_01" && $READING eq "actualW" && $VALUE > 0.5) {'style="color:red"'}
elsif
($DEVICE eq "Taster_HausBeleuchtung_Sw_01" && $READING eq "actualW" && $VALUE <= 0.5) {'style="color:green"'}
elsif
($DEVICE eq "Openelec_GZ" && $READING eq "actualW" && $VALUE > 10) {'style="color:red"'}
elsif
($DEVICE eq "Openelec_GZ" && $READING eq "actualW" && $VALUE <= 10) {'style="color:green"'}
elsif
($DEVICE eq "Openelec_SZ" && $READING eq "actualW" && $VALUE > 10) {'style="color:red"'}
elsif
($DEVICE eq "Openelec_SZ" && $READING eq "actualW" && $VALUE <= 10) {'style="color:green"'}
elsif
($DEVICE eq "GZ_TVLampe" && $READING eq "actualW" && $VALUE > 0) {'style="color:red"'}
elsif
($DEVICE eq "GZ_TVLampe" && $READING eq "actualW" && $VALUE == 0) {'style="color:green"'}
elsif
($DEVICE eq "Verbrauch" && $READING eq "aktuellW" && $VALUE > 34.5) {'style="color:red"'}
elsif
($DEVICE eq "Verbrauch" && $READING eq "aktuellW" && $VALUE <= 34.5) {'style="color:green"'}
}
   verbose    0

Stacktrace:

2016.04.26 12:04:41 1: readingsUpdate(Verbrauch,VoltAVG,234.33) missed to call readingsBeginUpdate first.
2016.04.26 12:04:41 1: readingsUpdate(Verbrauch,ATotal,0.66) missed to call readingsBeginUpdate first.
2016.04.26 12:04:52 1: readingsUpdate(Verbrauch,KWh,368.38) missed to call readingsBeginUpdate first.
2016.04.26 12:04:52 1: readingsUpdate(Verbrauch,ATotal,0.66) missed to call readingsBeginUpdate first.
2016.04.26 12:05:31 1: PERL WARNING: False [] range "/-\d" in regex; marked by <-- HERE in m/<dewpoint_c>([/-\d <-- HERE *\.]+)/ at ./FHEM/98_HTTPMOD.pm line 1537.
2016.04.26 12:05:31 3: stacktrace:
2016.04.26 12:05:31 3:     main::__ANON__                      called by ./FHEM/98_HTTPMOD.pm (1537)
2016.04.26 12:05:31 3:     main::HTTPMOD_ExtractReading        called by ./FHEM/98_HTTPMOD.pm (2097)
2016.04.26 12:05:31 3:     main::HTTPMOD_Read                  called by FHEM/HttpUtils.pm (298)
2016.04.26 12:05:31 3:     main::__ANON__                      called by fhem.pl (655)
2016.04.26 12:05:31 1: PERL WARNING: False [] range "/-\d" in regex; marked by <-- HERE in m/<temp_c>([/-\d <-- HERE *\.]+)/ at ./FHEM/98_HTTPMOD.pm line 1537.
2016.04.26 12:05:31 3: stacktrace:
2016.04.26 12:05:31 3:     main::__ANON__                      called by ./FHEM/98_HTTPMOD.pm (1537)
2016.04.26 12:05:31 3:     main::HTTPMOD_ExtractReading        called by ./FHEM/98_HTTPMOD.pm (2097)
2016.04.26 12:05:31 3:     main::HTTPMOD_Read                  called by FHEM/HttpUtils.pm (298)
2016.04.26 12:05:31 3:     main::__ANON__                      called by fhem.pl (655)
2016.04.26 12:06:29 1: readingsUpdate(Verbrauch,VoltAVG,234.25) missed to call readingsBeginUpdate first.
2016.04.26 12:06:29 1: readingsUpdate(Verbrauch,ATotal,0.66) missed to call readingsBeginUpdate first.
2016.04.26 12:06:31 1: readingsUpdate(Verbrauch,KWh,368.38) missed to call readingsBeginUpdate first.
2016.