FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Mickey am 21 Oktober 2016, 09:29:55

Titel: userReadings Gaszähler
Beitrag von: Mickey am 21 Oktober 2016, 09:29:55
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
Titel: Antw:userReadings Gaszähler
Beitrag von: DeeSPe am 21 Oktober 2016, 09:53:06
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.
Titel: Antw:userReadings Gaszähler
Beitrag von: Mickey am 21 Oktober 2016, 09:58:52
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  (https://forum.fhem.de/index.php/topic,30936.msg260721.html#msg260721Danke)
Titel: Antw:userReadings Gaszähler
Beitrag von: DeeSPe am 21 Oktober 2016, 10:26:51
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
Titel: Antw:userReadings Gaszähler
Beitrag von: Mickey am 21 Oktober 2016, 11:02:57
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}
Titel: Antw:userReadings Gaszähler
Beitrag von: DeeSPe am 21 Oktober 2016, 11:17:04
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
Titel: Antw:userReadings Gaszähler
Beitrag von: Mickey am 21 Oktober 2016, 12:03:32
 :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
Titel: Antw:userReadings Gaszähler
Beitrag von: DeeSPe am 21 Oktober 2016, 12:17:40
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
Titel: Antw:userReadings Gaszähler
Beitrag von: Mickey am 21 Oktober 2016, 12:23:12
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
Titel: Antw:userReadings Gaszähler
Beitrag von: DeeSPe am 21 Oktober 2016, 12:50:19
Wenn es das macht was es soll ist es ja gut.

Gruß
Dan