FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: TobiasR am 30 Juli 2017, 21:20:14

Titel: Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 30 Juli 2017, 21:20:14
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
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 31 Juli 2017, 01:31:50
Kannst ein userReading definieren. https://wiki.fhem.de/wiki/UserReadings

Zitat von: CommandREFattr myEnergyMeter userReadings energy { ReadingsVal("myEnergyMeter","counters.A",0)/1250.0;; }
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 14 August 2017, 22:19:16
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?!
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 14 August 2017, 22:33:34
Das ist richtig. Und somit solltest Du ein neues Reading "energy" mit dem gewünschten Wert bekommen. Aber erst wenn Verbrauch_24h aktualisiert wird.
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 14 August 2017, 22:42:49
Ach so, dann muss ich noch ein paar Stunden warten.

Danke!
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 17 August 2017, 22:01:13
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  :( :(

Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 17 August 2017, 23:16:09
Zeig mal ein "list Verbrauch_24h" bitte
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 18 August 2017, 07:02:27
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
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 18 August 2017, 07:40:42
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?
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 18 August 2017, 07:46:54
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);}
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 18 August 2017, 08:56:39
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>)
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 18 August 2017, 11:11:42
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);}
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 18 August 2017, 12:38:24
Erzeugt den Volkszaehler Events im Eventmonitor, wenn du die Readings änderst?
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 18 August 2017, 12:48:58
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);}
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 18 August 2017, 12:57:58
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);}
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 18 August 2017, 13:05:29
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
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 18 August 2017, 13:14:17
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

Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 18 August 2017, 13:34:16
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.
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 18 August 2017, 17:48:09
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.
Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: amenomade am 18 August 2017, 18:32:13
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.

Titel: Antw:Ausgabe der Volkszählerwerte - Umgerechnet
Beitrag von: TobiasR am 18 August 2017, 21:10:39
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