Hallo,
wieder ein Problem, ich habe einen Z-Wave Stromzähler, dieser sendet ein Reading energy mit dem Zählerstand, der natürlich bei 0 bekonnen hat.
Deshalb habe ich einen Dummy definiert mit den Startzählerstand (Stromzaehlerstand_original_Dummy) mit dem Reading "Stromzaehler_Ausgangsstand".
Jetzt habe ich ein userReading innerhalb meines z-Wave Stromzähler angelegt:
Gesamt {ReadingsNum($name,"energy",0) + ReadingsNum("Stromzaehlerstand_original_Dummy","Stromzaehler_Ausgangsstand",0)}
leider ist das Reading energie mit der Einheit XX kWh previous: 18.56 delta_time: 5 s behaftet, deshalb habe ich auch ReadingNum benutzt, aber ich bekomme immer einen Fehler im log, dass das reading nicht nummerisch ist.
Das userReading funktioniert aber.
list Stromzähler
Internals:
DEF f36eff30 6
IODev ZWDongle_1
LASTInputDev ZWDongle_1
MSGCNT 2049
NAME Stromzaehler
NR 90
STATE 68.516 W 0.915 A 233.873 V 72018.56118
TYPE ZWave
ZWDongle_1_MSGCNT 2049
ZWDongle_1_RAWMSG 000400060e3202216400004881000500004881
ZWDongle_1_TIME 2017-04-16 00:34:34
homeId f36eff30
nodeIdHex 06
Readings:
2017-04-16 00:34:34 Gesamt 72018.56118
2017-04-08 19:25:06 assocGroups 1
2017-04-16 00:34:34 current 0.915 A
2017-04-16 00:34:34 energy 18.561 kWh previous: 18.561 delta_time: 5 s
2017-04-15 21:37:29 meterSupported type: energy scales: 0:kWh, 2:W, 4:V, 5:A resetable: yes
2017-04-08 19:23:05 model Aeotec Home Energy Meter G2
2017-04-08 19:23:05 modelConfig aeotec/hemg2.xml
2017-04-08 19:23:05 modelId 0086-0002-001c
2017-04-08 19:25:24 neighborList empty
2017-04-16 00:33:44 power 68.516 W
2017-04-15 21:50:52 state configGroup1Reports 4144911
2017-04-15 21:50:53 transmit OK
2017-04-08 19:25:38 version Lib 3 Prot 3.67 App 1.8
2017-04-16 00:34:34 voltage 233.873 V
Attributes:
IODev ZWDongle_1
classes CONFIGURATION METER MULTI_CHANNEL ASSOCIATION MANUFACTURER_SPECIFIC VERSION
room Status,ZWave
stateFormat power current voltage Gesamt
userReadings Gesamt {ReadingsNum($name,"energy",0) + ReadingsNum("Stromzaehlerstand_original_Dummy","Stromzaehler_Ausgangsstand",0)}
list Stromzaehlerstand_original_Dummy
Save config ?
CUL_HM
FS20
Firmata
Garage
Logs
MAX
Schnittstellen
Status
Unsorted
ZWave
icoEverything Everything
Logfile
Commandref
Remote doc
Edit files
Select style
Event monitor
Internals:
NAME Stromzaehlerstand_original_Dummy
NR 100
STATE 72000
TYPE dummy
Readings:
2017-04-15 23:53:17 Stromzaehler_Ausgangsstand 72000
2017-04-15 23:03:28 state on
Attributes:
readingList Stromzaehler_Ausgangsstand
room Status
stateFormat Stromzaehler_Ausgangsstand
log:
2017.04.16 00:36:59 1: PERL WARNING: Argument "18.56118.5615" isn't numeric in addition (+) at (eval 10496) line 1.
2017.04.16 00:36:59 3: eval: {ReadingsNum($name,"energy",0) + ReadingsNum("Stromzaehlerstand_original_Dummy","Stromzaehler_Ausgangsstand",0)}
Danke
Marek
{my $r=ReadingsNum($name,"energy",0);
$r=~/([\d|\.]+)/;
return $1 + ReadingsNum("Stromzaehlerstand_original_Dummy","Stromzaehler_Ausgangsstand",0);}
Ungetestet, müsste aber so passen als UserReading.
lg, Stefan
attr <xyz> userReadings Gesamt {(split(' ', ReadingsVal("$name","energy",0)))[0]+ReadingsNum("Stromzaehlerstand_original_Dummy","Stromzaehler_Ausgangsstand",0);}
sollte auch gehen...
Danke, beides geht, auch wenn ich es noch nicht verstanden habe. :-)
Marek
lesen lesen lesen...
P.s. Icingers Lösung verstehe ich auch nicht... ??? wobei ich nicht anzweifele das es funktioniert!