Hallo,
vielleicht habe ich das richtige noch nicht gefunden, ich weiss momentan auch nicht wo ich richtig ansetzen soll.
Wir tauschen momentan alle möglichen Zähler gegen WM-Bus Varianten aus. Das funktioniert auch alles einwandfrei in FHEM.
Jedoch haben wir die Zähler an versch. Stellen eingebaut und jetzt würde ich gerne direkt in FHEM mit diesen rechnen.
Ich habe einen KW Zähler, (Wert steht in 2_value) einen WW Zähler -- Ziel ist es einen Gesamtverbrauch zu errechnen, also WW + KW in einen neuen Dummy Device Total.
könnte mir einer auf die Sprünge helfen!
Dies ist prinzipiell ganz einfach, in Fhem direkt geht das allerdings nicht. Du musst mit {} in perl wechseln und dann kannst du mit Variablen oder deinen Readings weiter arbeiten. Rechenzeichen sind ganz normal + - * /
Ok, das ganze dann mit user readings oder readingsval. Irgendwie Stehen ich auf der Leitung und Kriegsfuß mit Perl
Vielleicht hilft das:
https://forum.fhem.de/index.php?topic=16972.0
Gruß, Joachim
Hallo Hyper2910,
das geht auch mit DOIF ... 8)
define di_gesamt DOIF ([":^2_value"]) (set Dummy_gesamt {([WW:2_value]+[KW:2_value])})
attr di_gesamt do always
Bei jeder Aktualisierung von deinen Werten in 2_value wird im Dummy_gesamt die Summe auf WW & KW geschrieben.
Das kann man natürlich noch weiter verfeinern, wenn die Device den entsprechenden Syntax haben.
Gruß Jens
mit DOIF habe ich auch schon gefunden, aber das klappt bei mir nicht
Illegal octal digit '8' at (eval 4833) line 1, at end of line syntax error at (eval 4833) line 1, near "14 16" Illegal octal digit '8' at (eval 4833) line 1, at end of line
Ein list der entsprechenden Devices wäre vielleicht hilfreich.
Hi,
hier das List, die beiden sehen absolut identisch aus, sind die gleich Zähler.
Internals:
DEF BMT 16157095 19 7
DeviceMedium Water
DeviceType 7
IODev nanoCUL_WM
IdentNumber 16157095
LASTInputDev nanoCUL_WM
MSGCNT 160
Manufacturer BMT
MessageEncoding CUL
NAME Warmwasser_Dirk
NR 1098
STATE no errors
TYPE WMBUS
Version 19
addr BMT_16157095_19_7
nanoCUL_WM_MSGCNT 160
nanoCUL_WM_RAWMSG b2144B409957015161307773B7A3B0000000C1379010000046D22302EBC56280F050E00000000DE2380::-70
nanoCUL_WM_RSSI -70
nanoCUL_WM_TIME 2017-08-14 16:34:18
READINGS:
2017-08-14 16:34:18 1_storage_no 0
2017-08-14 16:34:18 1_type VIF_VOLUME
2017-08-14 16:34:18 1_unit m³
2017-08-14 16:34:18 1_value 0.179
2017-08-14 16:34:18 1_value_type Instantaneous value
2017-08-14 16:34:18 2_storage_no 0
2017-08-14 16:34:18 2_type VIF_TIME_POINT_DATE_TIME
2017-08-14 16:34:18 2_unit
2017-08-14 16:34:18 2_value 2017-08-14 16:34
2017-08-14 16:34:18 2_value_type Instantaneous value
2017-08-14 16:34:18 LQI 128
2017-08-14 16:34:18 RSSI -70
2017-08-14 16:34:18 battery ok
2017-08-14 16:34:18 decryption_ok 1
2017-08-14 16:34:18 is_encrypted 0
2017-08-14 16:34:18 state no errors
2017-08-14 16:34:18 unit m³
2017-08-14 16:34:18 volume 0.179
Attributes:
IODev nanoCUL_WM
room 9.09 Hilfe
Hallo hyper2910,
mit den Angaben aus deinem list sollte es dann etwa so aussehen:
define di_gesamt DOIF ([":^1_value"]) (set Dummy_gesamt {([Warmwasser_Dirk:1_value]+[Kaltwasser_Dirk:1_value])})
attr di_gesamt do always
Deine Werte stehen nicht in 2_value sondern in 1_value (oder volume). ::)
Gruß Jens