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
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.
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)
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
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}
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
: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
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
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
Wenn es das macht was es soll ist es ja gut.
Gruß
Dan