(ERLEDIGT)UserReading zählt nicht richtig zusammen...

Begonnen von misux, 26 Dezember 2021, 16:10:53

Vorheriges Thema - Nächstes Thema

misux

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

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

misux

 ::)
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!

Otto123

#3
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

misux

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!

misux

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)}


MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Otto123

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 ...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

misux

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.

Otto123

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 :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

misux

huch! Ganz übersehen!

Sieht soweit ganz gut aus! Werde es beobachten!

Vielen Dank schon mal!

ch.eick

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
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

misux

#13
 :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)

ch.eick

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 :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick