Hi,
kann ich meine Messwerte des Volkszählers vor der Anzeige auf der TabletUI umrechnen.
Beispilsweise wird der 24h Wert mit 16345Wh angezeigt. Ich möchte durch 1000 teilen und ihn in Kwh anzeigen lassen.
Tobias
Kannst ein userReading definieren. https://wiki.fhem.de/wiki/UserReadings
Zitat von: CommandREFattr myEnergyMeter userReadings energy { ReadingsVal("myEnergyMeter","counters.A",0)/1250.0;; }
Hallo,
ich komme mit der Syntax leider nicht klar.
Meine Device heist "Verbrauch_24h"
Meine Tagesleistung wird unter "CONSUMPTION" in den Readings ausgewisen. Beispiel: "11652.5".
Wenn ich das Reading nun mit
attr Verbrauch_24h userReadings energy { ReadingsVal("Verbrauch_24h","CONSUMPTION",0)/1000.0;; }eingebe, erhalte ich unter den Attributs:
ZitatuserReadings energy { ReadingsVal("Verbrauch_24h","CONSUMPTION",0)/1000.0;; } deleteattr
Das ist doch falsch?!
Das ist richtig. Und somit solltest Du ein neues Reading "energy" mit dem gewünschten Wert bekommen. Aber erst wenn Verbrauch_24h aktualisiert wird.
Ach so, dann muss ich noch ein paar Stunden warten.
Danke!
Hallo, ich schon wieder.
Leider funktioniert das mit dem User Reading bei mir nicht.
Irgend etwas muss falsch sein:
userReadings
energy { ReadingsNum("Verbrauch_24h","CONSUMPTION",0)/1000;; }
In den Readings wird folgende Zeile angezeigt:
CONSUMPTION 11451.25 2017-08-16 22:38:01
Jetzt sollte in den Reading doch die Zeile auftauchen: energy 11,451
Es kommt aber gar nichts :( :(
Zeig mal ein "list Verbrauch_24h" bitte
ZitatInternals:
Channel 6cc10500-f10e-11e6-8ef9-516412ddb716
DEF 192.168.0.22 80 6cc10500-f10e-11e6-8ef9-516412ddb716 consumption 86400
Host 192.168.0.22
Host_Port 80
NAME Verbrauch_24h
NR 102
Reading consumption
STATE c: 12250
TYPE VOLKSZAEHLER
.userReadings:
HASH(0x342b780)
READINGS:
2017-08-17 23:31:20 AVERAGE 510.331
2017-08-17 23:31:20 CONSUMPTION 12250
2017-08-16 23:30:58 FROM
2017-08-17 23:31:13 LAST 510.331
2017-08-17 23:31:13 MAX 510.33084957276
2017-08-17 23:31:13 MIN 510.33084957276
2017-08-17 23:31:13 TO
Attributes:
delay 86400
group Stromverbrauch
room Volkszaehler
userReadings energy { ReadingsVal("Verbrauch_24h","CONSUMPTION",0)/1000}
Bitte schön. Super dass du mir hilfst
Zitat.userReadings:
HASH(0x342b780)
Das ist komisch
Versuch mal mit:
attr Verbrauch_24h userReadings energy { sprintf("%.1f",ReadingsNum("Verbrauch_24h","CONSUMPTION",0)/1000.0);;}
Werden überhaupt Events auf Verbrauch_24h generiert?
Hi,
hat sich leider nichts geändert:
ZitatInternals:
Channel 6cc10500-f10e-11e6-8ef9-516412ddb716
DEF 192.168.0.22 80 6cc10500-f10e-11e6-8ef9-516412ddb716 consumption 86400
Host 192.168.0.22
Host_Port 80
NAME Verbrauch_24h
NR 102
Reading consumption
STATE c: 11053.75
TYPE VOLKSZAEHLER
.userReadings:
HASH(0x31ec380)
READINGS:
2017-08-18 07:45:33 AVERAGE 460.52
2017-08-18 07:45:33 CONSUMPTION 11053.75
2017-08-17 07:45:19 FROM
2017-08-18 07:45:29 LAST 460.52
2017-08-18 07:45:29 MAX 460.52037790087
2017-08-18 07:45:29 MIN 460.52037790087
2017-08-18 07:45:29 TO
Attributes:
delay 86400
fp_Grundriss 521,1301,0,Verbrauch_24h,
group Stromverbrauch
room Volkszaehler
stateFormat Verbrauch heute: energie kW
userReadings energy { sprintf("%.1f",ReadingsNum("Verbrauch_24h","CONSUMPTION",0)/1000.0);}
Ja, userReadings werden erst bei einem Event (Aktualisierung eines anderen Reading oder State) aktualisiert. Evtl. kannst du es manuell triggern (setreading Verbrauch_24h <irgendwelchesReading> <irgendwelcherWert>)
Hallo,
da ich nicht bis heute Abend warten will, habe ich das Reading in meinen aktuellen Stromverbrauch eingebaut (Aktualierung jede Minute).
Leider kommt auch dort keine neue Berechnung raus. Der "Fehler" wird auch dort angezeigt:
ZitatInternals:
Channel 6cc10500-f10e-11e6-8ef9-516412ddb716
DEF 192.168.0.22 80 6cc10500-f10e-11e6-8ef9-516412ddb716 average 60
Host 192.168.0.22
Host_Port 80
NAME Verbrauch_aktuell
NR 99
Reading average
STATE a: 276.961
TYPE VOLKSZAEHLER
.userReadings:
HASH(0x32ad528)
READINGS:
2017-08-18 11:09:08 AVERAGE 276.961
2017-08-18 11:09:08 CONSUMPTION 5
2017-08-18 11:07:46 FROM
2017-08-18 11:08:51 LAST 276.961
2017-08-18 11:08:51 MAX 276.96142542814
2017-08-18 11:08:51 MIN 276.96142542814
2017-08-18 11:08:51 TO
Attributes:
delay 60
fp_Grundriss 469,1267,1,Verbrauch_aktuell,
group Stromverbrauch
room Volkszaehler
stateFormat Verbrauch aktuell: LAST W
userReadings energy { sprintf("%.1f",ReadingsNum("Verbrauch_aktuell","Average",0)/1000.0);}
Erzeugt den Volkszaehler Events im Eventmonitor, wenn du die Readings änderst?
ja, das macht er. Hier ein Auszug:
2017-08-18 12:48:00 Global global ATTR Verbrauch_aktuell userReadings energy_x { sprintf("%.1f",ReadingsNum("Verbrauch_aktuell","Average",0)/1000.0);}
Mouarf, sorry, nicht gesehen:
das reading heisst nicht Average, sondern AVERAGE. Deswegen ist mind. folgende Korrektur erforderlich:energy { sprintf("%.1f",ReadingsNum("Verbrauch_aktuell","AVERAGE",0)/1000.0);}
Zitatja, das macht er. Hier ein Auszug:
Code: [Auswählen]
2017-08-18 12:48:00 Global global ATTR Verbrauch_aktuell userReadings energy_x { sprintf("%.1f",ReadingsNum("Verbrauch_aktuell","Average",0)/1000.0);}
Das ist aber die Definition des userReadings, das ist kein Event vom Verbrauch_aktuell
Bei mir geht es mit einem dummy:
Internals:
NAME Verbrauch_aktuell
NR 21
STATE a: 276.961
TYPE dummy
Readings:
2017-08-18 13:03:55 AVERAGE 276.999
2017-08-18 12:55:51 CONSUMPTION 5000
2017-08-18 12:47:18 MAX 276.96142542814
2017-08-18 13:03:55 energy 0.3
2017-08-18 12:47:43 state a: 276.961
Attributes:
userReadings energy { sprintf("%.1f",ReadingsNum("Verbrauch_aktuell","AVERAGE",0)/1000.0);}
Wenn ich "setreading Verbrauch_aktuell AVERAGE 500" mache, bekomme ich im Eventmonitor:
2017-08-18 13:13:05 dummy Verbrauch_aktuell AVERAGE: 500
2017-08-18 13:13:05 dummy Verbrauch_aktuell energy: 0.5
Und geht auch mit einem VOLKSZAEHLER Device:
Internals:
CFGFN
Channel 6cc10500-f10e-11e6-8ef9-516412ddb716
DEF 127.0.0.1 80 6cc10500-f10e-11e6-8ef9-516412ddb716 average 60
Host 127.0.0.1
Host_Port 80
NAME Verbrauch_aktuell
NR 29
Reading average
STATE ???
TYPE VOLKSZAEHLER
Readings:
2017-08-18 13:31:36 AVERAGE 5000
2017-08-18 13:31:36 energy 5.0
Attributes:
delay 60
userReadings energy { sprintf("%.1f",ReadingsNum("Verbrauch_aktuell","AVERAGE",0)/1000.0);}
2017-08-18 13:33:04 VOLKSZAEHLER Verbrauch_aktuell AVERAGE: 5000
2017-08-18 13:33:04 VOLKSZAEHLER Verbrauch_aktuell energy: 5.0
Wie hast Du das userReading am Anfang kreiert??? Kannst Du die Raw definition des Devices bitte zeigen? Ansonsten würde ich vorschlagen, das Device zu löschen, und neu anlegen.
Kannst du daraus etwas lesen?
defmod Verbrauch_aktuell VOLKSZAEHLER 192.168.0.22 80 6cc10500-f10e-11e6-8ef9-516412ddb716 average 60
attr Verbrauch_aktuell delay 60
attr Verbrauch_aktuell fp_Grundriss 469,1267,1,Verbrauch_aktuell,
attr Verbrauch_aktuell group Stromverbrauch
attr Verbrauch_aktuell room Volkszaehler
attr Verbrauch_aktuell stateFormat Verbrauch aktuell: LAST W
attr Verbrauch_aktuell userReadings energy_x { sprintf("%.1f",ReadingsNum("Verbrauch_aktuell","Average",0)/1000.0);;}
setstate Verbrauch_aktuell a: 338.494
setstate Verbrauch_aktuell 2017-08-18 17:46:27 AVERAGE 338.494
setstate Verbrauch_aktuell 2017-08-18 17:46:27 CONSUMPTION 7.5
setstate Verbrauch_aktuell 2017-08-18 17:45:01 FROM
setstate Verbrauch_aktuell 2017-08-18 17:46:21 LAST 338.494
setstate Verbrauch_aktuell 2017-08-18 17:46:21 MAX 338.49432708581
setstate Verbrauch_aktuell 2017-08-18 17:46:21 MIN 338.49432708581
setstate Verbrauch_aktuell 2017-08-18 17:46:21 TO
Nachtrag:
Wie im Wiki vorgegeben habe ich noch einmal eine neue Abfrage an den Volkszähler als Device aufgenommen:
Zitatdefine <name> VOLKSZAEHLER <ip-address> <port-nr> <channel> <state:last/min/max/average/consumption> <poll-delay>
Auch da bekomme ich wieder diesen Fehler im List angezeigt.
Ne, ich verstehe nicht, warum es bei dir nicht geht, und bei mir doch. Hast Du die letzte Versionen von volkzaehler.pm und jsonreading?
Wenn Du "setreading Verbrauch_aktuell AVERAGE 2" machst, kommt nix in Eventmonitor?
Evtl. kannst Du versuchen, die gesamte raw Definition mit strg+c zu sichern, dann das device löschen, und dann neu anlegen (aus einem anderen Device, wo Du die raw Definition durch strg+V ersetzt.
Leider wird es auch nicht besser. Habe alles gelöscht und neue angelegt....
Man kann nicht alles haben, Trotzdem Danke für deine Unterstützung!
Tobias