Ahoj,
eingebunden mit MQTT2. Und genau das passende attrTemplate bin ich am suchen. 1PM wäre ja auch wieder nicht korrekt, habe ja die EM's. Also nur Verbraucherzähler mit Messzange.
Internals:
CID shellyem_98CDAC1EA52F
DEF shellyem_98CDAC1EA52F
DEVICETOPIC MQTT2_shellyem_98CDAC1EA52F
FUUID 6184d776-f33f-53f2-7758-d5c3ffdc62f0bae5
IODev myBroker
LASTInputDev myBroker
MSGCNT 1480
NAME MQTT2_shellyem_98CDAC1EA52F
NR 599
STATE Relay: off,<br>P1: 2.37 W / Total P1: unknown kWh<br>P2: 7.10 W / Total P2: unknown kWh<br>P3: unknown W / Total P3: unknown kWh
TYPE MQTT2_DEVICE
myBroker_MSGCNT 1480
myBroker_TIME 2021-11-05 08:57:33
READINGS:
2021-11-05 08:04:25 IODev myBroker
2021-11-05 08:56:53 emeter_0_energy 0
2021-11-05 08:57:33 emeter_0_power 2.37
2021-11-05 08:57:33 emeter_0_reactive_power 0.00
2021-11-05 08:56:53 emeter_0_returned_energy 0
2021-11-05 08:57:33 emeter_0_total 23.5
2021-11-05 08:57:33 emeter_0_total_returned 0.0
2021-11-05 08:57:33 emeter_0_voltage 235.74
2021-11-05 08:56:53 emeter_1_energy 7
2021-11-05 08:56:53 emeter_1_energy_total 1654
2021-11-05 08:57:33 emeter_1_power 7.10
2021-11-05 08:57:33 emeter_1_reactive_power 12.20
2021-11-05 08:56:53 emeter_1_returned_energy 0
2021-11-05 08:57:33 emeter_1_total 470.8
2021-11-05 08:57:33 emeter_1_total_returned 0.0
2021-11-05 08:57:33 emeter_1_voltage 235.74
2021-11-05 08:04:32 fw_ver 20210909-150325/v1.11.4-DNSfix-ge6b2f6d
2021-11-05 08:04:32 id shellyem-98CDAC1EA52F
2021-11-05 08:04:32 ip 192.168.1.76
2021-11-05 08:04:32 mac 98CDAC1EA52F
2021-11-05 08:04:32 model SHEM
2021-11-05 08:04:32 new_fw false
2021-11-05 08:04:32 online true
2021-11-05 08:57:33 relay0 off
2021-11-05 08:57:33 state off
Attributes:
alias shelly-em-uv-og-p1-1
comment To get appropriate loadState values: Change the default limit "100" in readingList to your needs.
devStateIcon {my $onl = ReadingsVal($name,"online","false") eq "false"?"10px-kreis-rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "10px-kreis-gelb" : "10px-kreis-gruen"; my $light = ReadingsVal($name,"state","off"); my $cons = ReadingsVal($name,"relay_0_power","unknown"); my $total = ReadingsVal($name,"relay_0_kWh","unknown"); my $temp = ReadingsVal($name,"temperature","-100"); "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"}
model shelly1_w_energy_measuring
readingList shellies/shellyem-98CDAC1EA52F/relay/0:.* state
shellies/shellyem-98CDAC1EA52F/relay/0:.* relay0
shellies/shellyem-98CDAC1EA52F/input/0:.* input0
shellies/shellyem-98CDAC1EA52F/online:.* online
shellies/announce:.* { $EVENT =~ m,..id...shellyem-98CDAC1EA52F...mac.*, ? json2nameValue($EVENT) : return }
shellies/shellyem-98CDAC1EA52F/announce:.* { json2nameValue($EVENT) }
shellies/shellyem-98CDAC1EA52F/relay/0/power:.* relay_0_power
shellies/shellyem-98CDAC1EA52F/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
shellies/shellyem-98CDAC1EA52F/temperature:.* temperature
shellies/shellyem-98CDAC1EA52F/temperature_f:.* temperature_f
shellies/shellyem-98CDAC1EA52F/input_event/0:.* { json2nameValue($EVENT) }
shellies/shellyem-98CDAC1EA52F/overtemperature:.* overtemperature
shellies/shellyem-98CDAC1EA52F/relay/0/energy:.* relay_0_energy
shellies/shellyem-98CDAC1EA52F/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
shellies/shellyem-98CDAC1EA52F/longpush/0:.* longpush_0
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/info:.* { json2nameValue($EVENT) }
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/power:.* emeter_0_power
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/reactive_power:.* emeter_0_reactive_power
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/voltage:.* emeter_0_voltage
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/total:.* emeter_0_total
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/total_returned:.* emeter_0_total_returned
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/power:.* emeter_1_power
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/reactive_power:.* emeter_1_reactive_power
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/voltage:.* emeter_1_voltage
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/total:.* emeter_1_total
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/total_returned:.* emeter_1_total_returned
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/energy:.* emeter_0_energy
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/returned_energy:.* emeter_0_returned_energy
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/energy:.* emeter_1_energy
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/returned_energy:.* emeter_1_returned_energy
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/online:.* online
room Unwichtig->Zähler
setList relay0:on,off,toggle shellies/shellyem-98CDAC1EA52F/relay/0/command $EVTPART1
toggle:noArg shellies/shellyem-98CDAC1EA52F/relay/0/command toggle
off:noArg shellies/shellyem-98CDAC1EA52F/relay/0/command off
on:noArg shellies/shellyem-98CDAC1EA52F/relay/0/command on
x_update:noArg shellies/shellyem-98CDAC1EA52F/command update_fw
x_mqttcom shellies/shellyem-98CDAC1EA52F/command $EVTPART1
setStateList on off toggle
stateFormat { my $light = ReadingsVal($name,"state","off"); my $cons1 = ReadingsVal($name,"emeter_0_power","unknown"); my $cons2 = ReadingsVal($name,"emeter_1_power","unknown"); my $cons3 = ReadingsVal($name,"emeter_2_power","unknown"); my $total1 = ReadingsVal($name,"emeter_0_kWh","unknown"); my $total2 = ReadingsVal($name,"emeter_1_kWh","unknown"); my $total3 = ReadingsVal($name,"emeter_2_kWh","unknown"); return qq(Relay: $light,<br>P1: $cons1 W / Total P1: $total1 kWh<br>P2: $cons2 W / Total P2: $total2 kWh<br>P3: $cons3 W / Total P3: $total3 kWh) }
userReadings relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)} emeter_0_energy_total:emeter_0_energy:.* monotonic {ReadingsNum("$name","emeter_0_energy",0)}, emeter_1_energy_total:emeter_1_energy:.* monotonic {ReadingsNum("$name","emeter_1_energy",0)}, emeter_2_energy_total:emeter_2_energy:.* monotonic {ReadingsNum("$name","emeter_2_energy",0)}
webCmd :
Da zeigt er ja sogar nen paar Sachen an... nur in der Übersicht ist nach wie vor "Verbrauch: unknown / Total: unknown/ Temp: -100 °C"
Grüße,
Sascha