Hauptmenü

Berechnungsproblem

Begonnen von Kaspi, 29 Januar 2020, 06:37:11

Vorheriges Thema - Nächstes Thema

Kaspi

Moin,

ich habe einen Stromzähler der die Leistung in Watt positiv und negativ (PV-Anlage) anzeigt.
Nun möchte ich positive Werte in einem Reading und negative Werte in einem anderen Reading haben.

Reading: E_ZAEHLER_HAUS:0_VIF_ELECTRIC_POWER_value

Wie stelle ich das an ?

Kaspi   :(

sash.sc

Mit einem doif kannst du prüfen, ob grösser null oder kleiner null und dann in dein entsprechendes reading schreiben.

Gesendet von meinem MI 9 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

KölnSolar

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Kaspi

#3
Eine Lösung mittels userReading wäre mir am liebsten.
Aber wie??? Perl ist nicht gerade mein Ding  :o

CoolTux

Darf man nach dem Hintergrund fragen? Wieso möchtest Du positive nummerische Werte und negative trennen?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Kaspi

Berechnung des momentanen Autarkie und der Eigenverbrauchsquote.

CoolTux

Etwas Hilfe zur Selbsthilfe biete ich gerne an. Bei Problemen schreibe bitte die Fehlermeldung und ein List vom eigentlichen Device.
Hier mal ein Beispiel für ein Userreading auf Basis vom Reading temperature.

pos:temperature:.\d+(\.\d+)? { ReadingsVal($name,'temperature',10000) },neg:temperature:.-\d+(\.\d+)? { ReadingsVal($name,'temperature',10000) }
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DS_Starter

#7
Guten Morgen,

Die Eigenverbrauchsquote und Autarkiequote wird gebildet aus:

Eigenverbrauchsquote (%) = (Erzeugung - Einspeisung) / Erzeugung * 100

Autarkiequote (%) = (Erzeugung - Einspeisung) / (Erzeugung - Einspeisung + Bezug) * 100

Du brauchst also dazu auch noch die Werte des Wechselrichters dazu. Im Wiki hatte ich eine umfassende Lösung mit Hilfe einer Datenabnkauswertung mal beschrieben:

https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#datenbankgest.C3.BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_.C3.9Cberschu.C3.9Feinspeisung

Grüße,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Kaspi

#8
Jaja....
die Werte des Wechselrichters habe ich.
Aber die Werte von Einspeisung und Bezug nicht direkt.
Ich habe nur einen Wert. Positiv bzw. negativ.
Darum muss ich den Wert trennen.

PS: Der Link klappt nicht

DS_Starter

ZitatPS: Der Link klappt nicht
Sorry, habs korrigiert.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Kaspi

#10
BEZUG:0_VIF_ELECTRIC_POWER_value:.\d+(\.\d+)? { ReadingsVal($name,'0_VIF_ELECTRIC_POWER_value',0) },
EINSPEISUNG:0_VIF_ELECTRIC_POWER_value:.-\d+(\.\d+)? { ReadingsVal($name,'0_VIF_ELECTRIC_POWER_value',0) }


es sieht gut aus  :)

Kaspi

#11
nun bekomme ich natürlich ein Division by Zero wenn die Erzeugung "0" ist.
Wie umgehe ich das?

EIGENVERBRAUCH__AKTUELL {(ReadingsVal("SMA_STP_6","SPOT_PACTOT",0)-ReadingsVal("E_ZAEHLER_HAUS","EINSPEISUNG",0))/ReadingsVal("SMA_STP_6","SPOT_PACTOT",0)*100;;},

Kaspi

Und wenn der Wert von positiv auf negativ (oder umgekehrt) wechselt, bleibt der letzte Wert stehen, statt auf 0 zu gehen. :-\

DS_Starter

Frage:
Loggst du deine Evets mit Filelog oder DbLog ?
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Kaspi