FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: misux am 26 Dezember 2021, 16:10:53

Titel: (ERLEDIGT)UserReading zählt nicht richtig zusammen...
Beitrag von: misux am 26 Dezember 2021, 16:10:53
HI!

Ich habe mir ein UserAttrib zusammengebaut welches mit 3 der readings zusammenzählen soll und als eigenständiges Reading "Hausverbrauch" angezeigt werden soll...

Leider zählt er nicht richtig...

Hat einer eine Idee woras es liegen kann?

So sieht mein userreading aus:
Hausverbrauch {(ReadingsVal($NAME,"NetzBezug",0)+($NAME,"PVBezug",0)+($NAME,"BatterieBezug"),0)}

HIer ein List vom Device:
Internals:
   DEF        71 5 192.168.1.37:1502 TCP
   DeviceName 192.168.1.37:1502
   EXPECT     idle
   FD         33
   FUUID      61c5cb53-f33f-e7ed-4848-ca7995b3573dd751
   IODev      Plenticore
   Interval   5
   LASTOPEN   1640529792.04861
   MODBUSID   71
   MODE       master
   MODULEVERSION Modbus 4.4.02 - 31.3.2021
   NAME       Plenticore
   NOTIFYDEV  global
   NR         205
   NTFY_ORDER 50-Plenticore
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 3
   nextOpenDelay 60
   OLDREADINGS:
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2021-12-26 16:07:34   BatterieBezug   189
     2021-12-26 16:07:34   Batterieladung  91%
     2021-12-26 16:07:35   Hausverbrauch   0
     2021-12-26 16:07:34   NetzBezug       0
     2021-12-26 16:07:35   PV-Leistung     53
     2021-12-26 16:07:34   PVBezug         37
     2021-12-26 15:43:12   state           opened
   REMEMBER:
     lid        71
     lname      Plenticore
     lrecv      1640531255.04361
     lsend      1640531255.01886
   defptr:
     Plenticore 71
   gotReadings:
     PV-Leistung 53
   hmccu:
   lastRead:
     h106       1640531254.58096
     h1066      1640531255.04585
     h108       1640531254.6868
     h116       1640531254.80984
     h172       1640530059.54056
     h210       1640531254.91681
Attributes:
   dev-type-Fl_R2-format %.0f
   dev-type-Fl_R2-len 2
   dev-type-Fl_R2-revRegs 1
   dev-type-Fl_R2-unpack f>
   obj-h106-poll 1
   obj-h106-reading BatterieBezug
   obj-h106-type Fl_R2
   obj-h1066-poll 1
   obj-h1066-reading PV-Leistung
   obj-h1066-type Fl_R2
   obj-h108-poll 1
   obj-h108-reading NetzBezug
   obj-h108-type Fl_R2
   obj-h116-poll 1
   obj-h116-reading PVBezug
   obj-h116-type Fl_R2
   obj-h210-format %s%
   obj-h210-poll 1
   obj-h210-reading Batterieladung
   obj-h210-type Fl_R2
   room       PV-Anlage
   userReadings Hausverbrauch {(ReadingsVal($NAME,"NetzBezug",0)+($NAME,"PvBezug",0)+($NAME,"BatterieBezug"),0)}
   userattr   obj-h208-format obj-h512-len obj-h515-len
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: MadMax-FHEM am 26 Dezember 2021, 16:19:09
1. Du solltest einen Trigger mit angeben! So wird es bei JEDER Änderung JEDES Readings "berechnet"!

2. Hausverbrauch {(ReadingsVal($NAME,"NetzBezug",0)+($NAME,"PVBezug",0)+($NAME,"BatterieBezug"),0)} -> was denkst du soll da passieren? Gibt das keinen Fehler?

Verm. so:


Hausverbrauch {(ReadingsVal($name,"NetzBezug",0)+ReadingsVal($name,"PVBezug",0)+ReadingsVal($name,"BatterieBezug",0))}


Auch $NAME gibt es nicht denke ich... Ich habe zumindest bei mir $name stehen ;)
Da es nur Zahlen sind? Noch besser ReadingsNum statt ReadingsVal...
Die ganz äußeren runden Klammern? Wozu? Können denke ich weg...

Gruß, Joachim
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: misux am 26 Dezember 2021, 17:05:44
 ::)
Da habe ich ja mal wieder alles gegeben... ;D :-X

Noch eine Frage dazu... Der "NetzBezug" kannn bei mir auch weit ins Minus gehen... Also Negativ werden... Kann ich irgendwie verhindern das er dannn das mitberechnet? Er soll eigentlich nur Positive Zahlen Rechnen...

Vielen Dank!
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: Otto123 am 26 Dezember 2021, 17:32:00
Die Frage ist: was soll er denn machen bei negativ? Vielleicht ist die Rückgabe von undef nicht gut ...
Hausverbrauch:Netzbezug.* {ReadingsNum($name,"NetzBezug",0) < 0 ? undef : ReadingsNum($name,"NetzBezug",0) + ReadingsNum($name,"PVBezug",0) + ReadingsNum($name,"BatterieBezug",0)}

Nicht getestet ;)

Schöne Feiertage

Otto
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: misux am 26 Dezember 2021, 18:09:17
Nee, undef ist nix gut... 0 wäre i.o.!

Hausverbrauch:Netzbezug.* {ReadingsNum($name,"NetzBezug",0) < 0 ? 0 : ReadingsNum($name,"NetzBezug",0) + ReadingsNum($name,"PVBezug",0) + ReadingsNum($name,"BatterieBezug",0)}

Werde es mal so testen!

Dankeschön!
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: misux am 26 Dezember 2021, 18:20:10
Hmm... Nee klappt nicht ganz... Sobald der Wert negativ wird bekomme ich insgesamt 0 angezeigt... Er sollte aber 0 + die anderen positiven Werte zusammenrechnen..

Hausverbrauch:NetzBezug.* {ReadingsNum($name,"NetzBezug",0) < 0 ? 0 : ReadingsNum($name,"NetzBezug",0) + ReadingsNum($name,"PVBezug",0) + ReadingsNum($name,"BatterieBezug",0)}

Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: MadMax-FHEM am 26 Dezember 2021, 19:47:34
Zitat von: misux am 26 Dezember 2021, 18:20:10
Hmm... Nee klappt nicht ganz... Sobald der Wert negativ wird bekomme ich insgesamt 0 angezeigt... Er sollte aber 0 + die anderen positiven Werte zusammenrechnen..

Hausverbrauch:NetzBezug.* {ReadingsNum($name,"NetzBezug",0) < 0 ? 0 : ReadingsNum($name,"NetzBezug",0) + ReadingsNum($name,"PVBezug",0) + ReadingsNum($name,"BatterieBezug",0)}

Dann musst du das auch so hinschreiben ;)

Schon mal nachgesehen was das "Fragezeichen" macht? ;)

Bedingung ? DasHierWennWahr : DasHierWennUnwahr

Also bei dir dann wohl:


Hausverbrauch:NetzBezug.* {ReadingsNum($name,"NetzBezug",0) < 0 ? 0 + ReadingsNum($name,"PVBezug",0) + ReadingsNum($name,"BatterieBezug",0) : ReadingsNum($name,"NetzBezug",0) + ReadingsNum($name,"PVBezug",0) + ReadingsNum($name,"BatterieBezug",0)}


Wenn ich mich nicht vertan habe...

Gruß, Joachim
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: Otto123 am 26 Dezember 2021, 19:53:19
Zitat von: Otto123 am 26 Dezember 2021, 17:32:00
Die Frage ist: was soll er denn machen bei negativ?
Die Frage hast Du ja nicht beantwortet - und mir erschließt sich der Sinn dieser Rechnung nicht?

Aber wie Joachim sagt, wir wollten Dir nur den Weg zeigen ...
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: misux am 26 Dezember 2021, 21:22:24
Also ich möchte einen Gesamtwert aller 3 Werte als Reading bekommen. Problem ist aber das halt ein Wert auch ins negative rutschen kann. Aber als Gesamtwert darf das negative nicht mit berechnet werden...

Beispiel:

Wert1 + Wert2 + Wert3 =Gesamtwert
2 + 2 + 2 = 6
So der Normall Fall!

Aber Manchmal kann das passieren:
-2 + 2 + 2 = 2
Und das darf nicht passieren! In diesem Fall muss da 4 als Ergebnis kommen.

Hoffe das ist verständlich.
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: Otto123 am 26 Dezember 2021, 21:25:55
Wenn dem so ist: Joachim hat lange die Lösung gepostet

Das Rechnen ist mir klar, die Logik hinter diesem "Schwinbdel" ist mir nicht klar :)
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: MadMax-FHEM am 26 Dezember 2021, 21:26:57
Zitat von: misux am 26 Dezember 2021, 21:22:24
Also ich möchte einen Gesamtwert aller 3 Werte als Reading bekommen. Problem ist aber das halt ein Wert auch ins negative rutschen kann. Aber als Gesamtwert darf das negative nicht mit berechnet werden...

Beispiel:

Wert1 + Wert2 + Wert3 =Gesamtwert
2 + 2 + 2 = 6
So der Normall Fall!

Aber Manchmal kann das passieren:
-2 + 2 + 2 = 2
Und das darf nicht passieren! In diesem Fall muss da 4 als Ergebnis kommen.

Hoffe das ist verständlich.

Sollte mein Vorschlag doch machen?
(so hatte ich das schon verstanden ;)  )
Sofern das der einzige Wert ist, der negativ werden kann...

Gruß, Joachim
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: misux am 26 Dezember 2021, 21:57:37
huch! Ganz übersehen!

Sieht soweit ganz gut aus! Werde es beobachten!

Vielen Dank schon mal!
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: ch.eick am 27 Dezember 2021, 16:48:47
Zitat von: misux am 26 Dezember 2021, 21:57:37
huch! Ganz übersehen!

Sieht soweit ganz gut aus! Werde es beobachten!

Vielen Dank schon mal!

Ich denke Du beziehst Dich auf Dein Plenticore Projekt.

Das wird im WR_1 Device bereits richtig berechnet

SW_Home_own_consumption:[Total_Active_P_EM:|Total_AC_Active_P:].* {round(ReadingsVal($NAME,"Total_Active_P_EM",0)+ReadingsVal($NAME,"Total_AC_Active_P",0)+ReadingsVal("WR_2","Total_AC_Active_P",0),0)}


ReadingsVal("WR_2","Total_AC_Active_P",0) ist bei Dir immer 0  , da Du nur einen WR hast.

VG Christian
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: misux am 27 Dezember 2021, 17:22:03
 :o bist ja überall unterwegs... Ja, es ist das Plenticore Projekt. Fahre gerade zweigleisig. Einmal das kleine hier um zu sehen wie das grundsätzlich funktioniert und meine FTUI schon mal zu versorgen. Und dann das große Projekt, was mir ja, wie du weist, noch problemchen breitet...

In diesem kleinen Projekt stelle ich mir noch die frage ob was dagegenspricht die werte alle 5sek und noch öfter abzulesen... es wird ja eigentlich nichts geloggt, nur die eine Berechnung und dann im FTUI dargestellt... Oder macht das Probleme?

Im Bild zu sehen wofür ich das mache... Ist spielerei für die Frau in der Küche... 8)
Titel: Antw:UserReading zählt nicht richtig zusammen...
Beitrag von: ch.eick am 27 Dezember 2021, 17:33:48
Zitat von: misux am 27 Dezember 2021, 17:22:03
:o bist ja überall unterwegs... Ja, es ist das Plenticore Projekt. Fahre gerade zweigleisig. Einmal das kleine hier um zu sehen wie das grundsätzlich funktioniert und meine FTUI schon mal zu versorgen. Und dann das große Projekt, was mir ja, wie du weist, noch problemchen breitet...

In diesem kleinen Projekt stelle ich mir noch die frage ob was dagegenspricht die werte alle 5sek und noch öfter abzulesen... es wird ja eigentlich nichts geloggt, nur die eine Berechnung und dann im FTUI dargestellt... Oder macht das Probleme?

Im Bild zu sehen wofür ich das mache... Ist spielerei für die Frau in der Küche... 8)
Das problem wird sein, dass der Plenticore sehr viele Daten liefert und diese dann auch logged, was in der detailtreue nicht notwendig ist.
Auch für die Eigenverbrauchsteuerung bietet es keinen wirklichen Mehrwert, da die meisten verbraucher viel zu träge sind.
Mit 60 Sekunden bist Du da schon sehr gut am Puls des Hauses.

Sobald Du das WR_1 Problem gelöst hast sind alle Werte, die Du Dir hier errechnest bereits im Device WR_1 vorhanden. Dann kannst Du das in FTUI einfach übernehmen.
Und bevor Du jetzt mit Statistiken anfängst, die kommen aus dem WR_1_API Device ;-) und sind auch ziemlich umfangreich.

Im Notfall melde Dich doch einfach per PN für eine Teamviewer Session, dann geht es sicherlich am schnellsten weiter, Du müsstest Dich jedoch mit Deiner Identität outen :-)