Hauptmenü

userReadings Gaszähler

Begonnen von Mickey, 21 Oktober 2016, 09:29:55

Vorheriges Thema - Nächstes Thema

Mickey

Hallo, das habe ich aus dem Forum:

leider mache ich was falsch.
"Gas" habe ich durch mein Device HM_3DFAF5_IEC_01 ausgetauscht.
Sub gehört doch in "99_myUtils.pm"

attr userReadings realPower:gasPower {gasRealPower();},gasPrevCnt:gasCnt {ReadingsVal("HM_3DFAF5_IEC_01","gasCnt",0);}

sub gasRealPower
{
  return ReadingsVal("HM_3DFAF5_IEC_01", "gasPower", 0) if ((ReadingsVal("HM_3DFAF5_IEC_01", "gasCnt", 0) - ReadingsVal("HM_3DFAF5_IEC_01", "gasPrevCnt", 0)) > 0);
  return 0;
}


so sieht das im "Original" aus:

attr userReadings realPower:gasPower {gasRealPower();},gasPrevCnt:gasCnt {ReadingsVal("Gas","gasCnt",0);}

sub gasRealPower
{
  return ReadingsVal("Gas", "gasPower", 0) if ((ReadingsVal("Gas", "gasCnt", 0) - ReadingsVal("Gas", "gasPrevCnt", 0)) > 0);
  return 0;
}


Ich habe bereits ein UserReading unter dem Device und trenne das "neue" mir einen " , "

Was mache ich falsch?

LG, Michael
Zu mir:
Ich bin leider fast blind (EU Rentner) und nicht zu "faul" was nachzulesen. Bitte seht mir nach, wenn ich einmal zu viel frage oder auch mal Schreibfehler mache. Danke, Michael

DeeSPe

Was genau ist jetzt Dein Problem?
Das vermisse ich in Deinem Beitrag leider!

Gruß
Dan

P.S. Und bitte list(s) von allen involvierten Geräten.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Mickey

#2
Hallo DeeSPe,

mein Problem ist: Das UserReading geht nicht.
Ich habe es auch wieder gelöscht.

Meine Frage ist: Stimmt der Code so und muss die SUB in die "99_myUtils.pm"?

Bitte habt Nachsicht, ich bin ein blutiger Anfänger.

List:

ZitatInternals:
   DEF        3DFAF501
   NAME       HM_3DFAF5_IEC_01
   NOTIFYDEV  global
   NR         384
   NTFY_ORDER 50-HM_3DFAF5_IEC_01
   STATE      39.75 m3
   TYPE       CUL_HM
   chanNo     01
   device     HM_3DFAF5
   Readings:
     2016-10-14 08:41:40   R-sign          off
     2016-10-14 08:41:40   RegL_01.        08:00 30:06 95:01 96:00 97:64 98:00 99:0A 9A:27  9B:10 9C:00 00:00
     2016-10-15 01:22:38   Wert1           996
     2016-10-21 09:55:51   Zaehlerstand    39.75
     2016-10-21 09:55:51   boot            off
     2016-10-21 09:55:51   eState          E: 28.04 P: 2.819
     2016-10-21 09:55:51   gasCnt          28.04
     2016-10-21 09:55:51   gasCntCalc      342.75
     2016-10-13 10:56:50   gasCntOffset    314.71
     2016-10-21 09:55:51   gasPower        2.819
   Helper:
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Role:
       chn        1
Attributes:
   alias      Zählerstand
   group      Gas
   icon       time_graph
   model      HM-ES-TX-WM
   peerIDs
   room       energie
   sortby     a
   stateFormat Zaehlerstand m3
   userReadings Zaehlerstand {my $t=ReadingsVal($name,"gasCntCalc","0")-303;}


Hier das Problem:

https://forum.fhem.de/index.php/topic,30936.msg260721.html#msg260721Danke
Zu mir:
Ich bin leider fast blind (EU Rentner) und nicht zu "faul" was nachzulesen. Bitte seht mir nach, wenn ich einmal zu viel frage oder auch mal Schreibfehler mache. Danke, Michael

DeeSPe

#3
Klar gehören eigene Funktionen die 99_myUtils.pm!

Aber probiere doch mal diese Form (ohne die Funktion in der 99_myUtils):
Das userreading:
attr HM_3DFAF5_IEC_01 userReadings realPower:gasPower {ReadingsNum($name,"gasPower",0) if (ReadingsNum($name,"gasCnt",0) - ReadingsNum($name,"gasPrevCnt",0) > 0)},gasPrevCnt:gasCnt {ReadingsVal("$name,"gasCnt",0)},Zaehlerstand:gasCntCalc {ReadingsNum($name,"gasCntCalc",0)-303}

Habe hier alle Deine userReadings berücksichtigt.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Mickey

Hallo, leider geht das nicht.

List
I
Zitatnternals:
   DEF        3DFAF501
   NAME       HM_3DFAF5_IEC_01
   NOTIFYDEV  global
   NR         384
   NTFY_ORDER 50-HM_3DFAF5_IEC_01
   STATE      39.84 m3
   TYPE       CUL_HM
   chanNo     01
   device     HM_3DFAF5
   Readings:
     2016-10-14 08:41:40   R-sign          off
     2016-10-14 08:41:40   RegL_01.        08:00 30:06 95:01 96:00 97:64 98:00 99:0A 9A:27  9B:10 9C:00 00:00
     2016-10-15 01:22:38   Wert1           996
     2016-10-21 10:30:41   Zaehlerstand    39.84
     2016-10-21 11:00:33   boot            off
     2016-10-21 11:00:33   eState          E: 28.39 P: 2.839
     2016-10-21 11:00:33   gasCnt          28.39
     2016-10-21 11:00:33   gasCntCalc      343.1
     2016-10-13 10:56:50   gasCntOffset    314.71
     2016-10-21 11:00:33   gasPower        2.839
   Helper:
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Role:
       chn        1
Attributes:
   alias      Zählerstand
   group      Gas
   icon       time_graph
   model      HM-ES-TX-WM
   peerIDs
   room       energie
   sortby     a
   stateFormat Zaehlerstand m3
   userReadings realPower:gasPower {ReadingsNum($name,"gasPower",0) if (ReadingsNum($name,"gasCnt",0) - ReadingsNum($name,"gasPrevCnt",0) > 0)},gasPrevCnt:gasCnt {ReadingsVal("$name,"gasCnt",0)} , Zaehlerstand:gasCntCalc {ReadingsNum($name,"gasCntCalc",0)-303}
Zu mir:
Ich bin leider fast blind (EU Rentner) und nicht zu "faul" was nachzulesen. Bitte seht mir nach, wenn ich einmal zu viel frage oder auch mal Schreibfehler mache. Danke, Michael

DeeSPe

Da hatte sich noch ein falsches " dazwischen geschlichen.

attr HM_3DFAF5_IEC_01 userReadings realPower:gasPower.* {ReadingsNum($name,"gasPower",0) if (ReadingsNum($name,"gasCnt",0) - ReadingsNum($name,"gasPrevCnt",0) > 0)},gasPrevCnt:gasCnt.* {ReadingsVal($name,"gasCnt",0)},Zaehlerstand:gasCntCalc.* {ReadingsNum($name,"gasCntCalc",0)-303}

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Mickey

 :D :D :D

Hallo Dan,

es funktioniert und hat mich echt graue Haare gekostet  ;D

Vielen lieben Dank für deine Hilfe.

Zum Verständnis:

RealPower übernimmt den Wert von GasPower solange sich was am Reading (GasPower) ändert, wenn nicht, wird kein Wert
beim RealPower angezeigt?

Bin jetzt voll happy  ;) Danke

LG, Michael
Zu mir:
Ich bin leider fast blind (EU Rentner) und nicht zu "faul" was nachzulesen. Bitte seht mir nach, wenn ich einmal zu viel frage oder auch mal Schreibfehler mache. Danke, Michael

DeeSPe

Zitat von: Mickey am 21 Oktober 2016, 12:03:32
es funktioniert und hat mich echt graue Haare gekostet  ;D

Wieso?
Wenn man die userReadings 1x verstanden hat, sollte es da eigentlich keine Probleme geben.

Zitat von: Mickey am 21 Oktober 2016, 12:03:32
RealPower übernimmt den Wert von GasPower solange sich was am Reading (GasPower) ändert, wenn nicht, wird kein Wert
beim RealPower angezeigt?

So sollte es eigentlich sein, wird aber nicht klappen sehe ich gerade!
Laut userReading übernimmt gasPrevCnt den Wert von gasCnt. Der Vergleich von gasPrevCnt und gasCnt ergibt also immer 0.

Was wolltest Du denn eigentlich erreichen mit gasPrevCnt?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Mickey

#8
Hallo Dan,

hab das mal kopiert:

ZitatAntw:Spannend: HomeMatic®-Zählersensor für Strom- und Gasverbrauchserfassung
« Antwort #52 am: 12 Februar 2015, 12:32:39 »
Zitat
Nachdem ich meinen nun auch am laufen habe ist mir eine Sache aufgefallen (betrieb mit Gassensor).

Das reading gasPower gibt ja den aktuellen Verbrauch wieder, soweit passt das auch, jedoch wird dieser Wert nicht mehr auf 0 gesetzt, er bleibt immer auf dem letzten gemessenen Wert stehen. Der Eintrag im Logfile gibt als letzte Änderung 08:45 wieder, der Gesamtverbrauch steigt auch nicht.

Ist das bei euch genauso?


Antw:Spannend: HomeMatic®-Zählersensor für Strom- und Gasverbrauchserfassung
« Antwort #53 am: 12 Februar 2015, 14:34:19 »
Zitat
Zitat von: dennis87 am 12 Februar 2015, 12:32:39
Ist das bei euch genauso?

Ja, der Wert wird nur beim nächsten Impuls aktualisiert und da bei stehendem Zähler kein Impuls mehr kommt bleibt er... eigentlich ein Kandidat für einen Firmware-Fix, ich hab's derzeit so gelöst:

So, wie du es jetzt gemacht hast.

Ich möchte im Plot sehen, wieviel und wann ich Gas verbraucht habe.
LG,Michael
Zu mir:
Ich bin leider fast blind (EU Rentner) und nicht zu "faul" was nachzulesen. Bitte seht mir nach, wenn ich einmal zu viel frage oder auch mal Schreibfehler mache. Danke, Michael

DeeSPe

Wenn es das macht was es soll ist es ja gut.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe