FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: deathworm am 07 Januar 2022, 20:32:36

Titel: dummy für reading von MQTT devices für zb Shelly 3EM & 2EM
Beitrag von: deathworm am 07 Januar 2022, 20:32:36
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.
Titel: Antw:dummy für reading von MQTT devices
Beitrag von: OdfFhem am 07 Januar 2022, 22:50:27
@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 ...
Titel: Antw:dummy für reading von MQTT devices
Beitrag von: betateilchen am 08 Januar 2022, 17:45:39
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()...
Titel: Antw:dummy für reading von MQTT devices
Beitrag von: deathworm am 08 Januar 2022, 21:26:54
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>&nbsp;</td><td align=right>&nbsp;</td></tr>
<tr><td align=left>Alles:</td><td align=right>$powertotal W </td></tr>

</table>"}