Hi!
Ich habe ein paar Shelly EM Geräte bei mir. Diese zeigen jeweils nebendran den jeweiligen Verbrauch an. Soweit so gut.
Nun würde ich gerne eine Tabelle anlegen, bei dem ich nochmals alle Aufliste und zusammenrechne.
Ich habe somit einen dummy angelegt und herumprobiert. Wenn ich bei StateFormat das hier eintrage:
{ReadingsVal ('MQTT2_shellyem_98CDAC1EA52F','emeter_1_power','unknown')}
Dann klappts. Dann wird mir das korrekte angezeigt. Also habe ich gedacht, ich bau das gleich mal weiter. Aber sobald ich das ganze erweitere und noch eine Ausgabe dazu mache, klappt garnichts mehr:
{ my $kwh0 = ReadingsVal('MQTT2_shellyem_98CDAC1EA52F','emeter_0_kwh'); my $kwh1 = ReadingsVal('MQTT2_shellyem_98CDAC1EA52F','emeter_1_kwh','unknown'); return qq($kwh0 w / $kwh1) }
Ich habe natürlich die Anleitungsseiten, sowie google probiert - komme aber nicht auf meinen Fehler.
@deathworm
Wenn man nur Werte darstellen will, dann könnte man auch Folgendes verwenden:
attr MQTT2_shellyem_98CDAC1EA52F stateFormat emeter_0_kwh EINHEIT / emeter_1_kwh EINHEIT
U.a. unter https://wiki.fhem.de/wiki/DeviceOverview_anpassen (https://wiki.fhem.de/wiki/DeviceOverview_anpassen) findet man Info sowie Beispiele ...
Zitat von: deathworm am 07 Januar 2022, 20:32:36
my $kwh0 = ReadingsVal('MQTT2_shellyem_98CDAC1EA52F','emeter_0_kwh');
komme aber nicht auf meinen Fehler.
da fehlt zumindest schonmal der dritte Parameter beim Funktionsaufruf von ReadingsVal()...
Nabend,
joa, da hab ich wohl iwann das mal ausversehen rausgeworfen. Aber auch nachm wieder einfügen hats nicht geklappt. Ich habe nun statt dem kwh, die watt genommen und zack hats geklappt. Wahrscheinlich wird die kwh menge iwo noch vorher zusammengerechnet. Weshalb dann eine Zeile, aber nicht zwei gehen -> kA. Aber ich will ja sowieso nur Watt haben. kWh is mir da egal, da dies sowieso vom Hauptzähler übernommen wird.
{ my $power0 = ReadingsVal("MQTT2_shellyem_1EA52F","emeter_0_power","unknown"); my $power1 = ReadingsVal("MQTT2_shellyem_1EA52F","emeter_1_power","unknown"); "<div>1: $power0 W <br>2: $power1 W</div>"}
Das hat dann geklappt.
Hier noch mein fertiges zusammengefasstes für devstateicon:
{
my $power1 = ReadingsVal("MQTT2_shellyem_XXX","emeter_0_power","unknown");
my $power2 = ReadingsVal("MQTT2_shellyem_XXX","emeter_1_power","unknown");
my $power3 = ReadingsVal("MQTT2_shellyem_XXX","emeter_0_power","unknown");
my $power4 = ReadingsVal("MQTT2_shellyem_XXX","emeter_1_power","unknown");
my $power5 = ReadingsVal("MQTT2_shellyem_XXX","emeter_0_power","unknown");
my $power6 = ReadingsVal("MQTT2_shellyem_XXX","emeter_1_power","unknown");
my $powertotal = $power1+$power2+$power3+$power4+$power5+$power6;
"<table>
<tr><td align=left>Raumname</td><td align=right>$power1 W </td></tr>
<tr><td align=left>Raumname</td><td align=right>$power2 W </td></tr>
<tr><td align=left>Raumname</td><td align=right>$power3 W </td></tr>
<tr><td align=left>Raumname</td><td align=right>$power4 W </td></tr>
<tr><td align=left>Raumname</td><td align=right>$power5 W </td></tr>
<tr><td align=left>Raumname</td><td align=right>$power6 W </td></tr>
<tr><td> </td><td align=right> </td></tr>
<tr><td align=left>Alles:</td><td align=right>$powertotal W </td></tr>
</table>"}