[Gelöst] Statistik ohne Totalwert bzw. Absolut Wert

Begonnen von kask, 27 März 2023, 19:09:30

Vorheriges Thema - Nächstes Thema

kask

Hallo,
wie kann ich aus einem Gerät das mir keinen saldierenden Wert ausgibt eine Statistik erstellen.
Also z.B. "Leistungswert einer Steckdose aktueller Ist wert" in Watt in einen saldierenden Wert schreiben.
Also ich möchte man ende eine statistik haben mit letzte Stunde verbraucht, Verbrauch letzter Tag etc.
Mit einem saldierenden Wert habe ich es mit dem statistic Modul gemacht.Aber wie get das nicht saldierenden (hochzählenden Werten)?

Kann mir das einer helfen bzw. eine rawdefinition posten falls vorhanden? 

RalfRog

Zitat von: kask am 27 März 2023, 19:09:30Also z.B. "Leistungswert einer Steckdose aktueller Ist wert" in Watt in einen saldierenden Wert schreiben.

Bin mir nicht sicher ob du das richtige meinst.Leistung kannst du nicht saldieren.


FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

Damian

Zitat von: kask am 27 März 2023, 19:09:30Hallo,
wie kann ich aus einem Gerät das mir keinen saldierenden Wert ausgibt eine Statistik erstellen.
Also z.B. "Leistungswert einer Steckdose aktueller Ist wert" in Watt in einen saldierenden Wert schreiben.
Also ich möchte man ende eine statistik haben mit letzte Stunde verbraucht, Verbrauch letzter Tag etc.
Mit einem saldierenden Wert habe ich es mit dem statistic Modul gemacht.Aber wie get das nicht saldierenden (hochzählenden Werten)?

Kann mir das einer helfen bzw. eine rawdefinition posten falls vorhanden? 

siehe https://forum.fhem.de/index.php?topic=132805.0

oder userReading mit Funktion differential verwenden.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

kask

Das schaue ich mir an. Danke erst einmal.


kask

Das funktioniert so nicht wirklich.
bei beiden varianten wird immer der alte mit dem neuen wert verrechnet und die differenz zeitbasiert ausgegeben. kann also auch negativ werden wenn 1010w alt mit 990w neu berechnet wird. Macht ja auch kein stromzähler so.

ich denke mir das so:
"zeit" zwischen "alter wert" und "neuer wert" in sec.
"zu addierender wert" = "neuer wert" / 3600 * "zeit"
"gesamte wert" = "gesamte wert" + "zu addierender wert"

ich brauche also eine addition eines wertes mit dem aktuellen wert entsprechend umgerechnet mit einer zeitbasis auf den zu addierenden momentanen wert anhand des aktuell gelieferten wertes.

Damian

#5
Zitat von: kask am 28 März 2023, 22:38:24Das funktioniert so nicht wirklich.
bei beiden varianten wird immer der alte mit dem neuen wert verrechnet und die differenz zeitbasiert ausgegeben. kann also auch negativ werden wenn 1010w alt mit 990w neu berechnet wird. Macht ja auch kein stromzähler so.

ich denke mir das so:
"zeit" zwischen "alter wert" und "neuer wert" in sec.
"zu addierender wert" = "neuer wert" / 3600 * "zeit"
"gesamte wert" = "gesamte wert" + "zu addierender wert"

ich brauche also eine addition eines wertes mit dem aktuellen wert entsprechend umgerechnet mit einer zeitbasis auf den zu addierenden momentanen wert anhand des aktuell gelieferten wertes.


Das Beispiel zeigt auf, wie man aus Energie eine durchschnittliche Leistung berechnet.

Du willst aber offenbar aus Leistung die Energie berechnen - das wird nicht gut funktionieren, weil die Zähler viel zu träge dazu Daten liefern. In einer Sekunden kann die Leistung sich bereits mehrfach geändert haben. Die Energieberechnung solle man dem Zähler überlassen, was auch jeder Stromzähler ziemlich zuverlässig von sich aus tut.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

RalfRog

#6
Zitat von: Damian am 28 März 2023, 23:11:55Du willst aber offenbar aus Leistung die Energie berechnen - das wird nicht gut funktionieren,

Da hat Damian recht. Am Ende dürfte das "ungenaue" Ergebnis die Mühe nicht wert sein.
Daher kam auch mein Einwand zu Beginn: Leistung kann man nicht saldieren.

Ansonsten findest du die Werte die du suchst in:
  • ReadingsTimestamp
  • ReadingsVal (oder ReadingsNum)
  • OldReadingsTimestamp
  • OldReadingsVal
  • einem Userreading mit dem modifier monotonic und dem modul statistics
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

Damian

Zitat von: RalfRog am 28 März 2023, 23:15:11Daher kam auch mein Einwand zu Beginn: Leistung kann man nicht saldieren.

Kann man an sich schon, macht der Stromzähler ja auch, es ist ja ein Integral der Leistung über die Zeit - dazu sollte allerdings die zeitliche Auflösung schon recht hoch sein.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

RalfRog

Zitat von: Damian am 28 März 2023, 23:26:42Kann man an sich schon, macht der Stromzähler ja auch, es ist ja ein Integral der Leistung über die Zeit - dazu sollte allerdings die zeitliche Auflösung schon recht hoch sein.

Womit wir wieder bei "...Energieberechnung solle man dem Zähler überlassen" wären. Was ja ShellyPlug und Konsorten relativ zuvrlässig tun. Je nach Anwendung hinsichtlich Genauigkeit.

@kask hat uns ja noch nicht verrraten wo die LEistungswerte herkommen.
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

kask

Ich möchte einen PV Speicher  laden.-entladen in eine Statistik packen.
Also wieviel habe ich gespeichert und wieviel abgegeben.
Und dazu wollte ich den gerade genutzten Leistungswert hernehmen.
Das es ungenau wird ist so erst einmal ok und auch klar, da der Lader bzw. Inverter sich ständig ändert/anpasst.
Kleiner log Intervall = Ungenauigkeit wegen kleinen Werten und Nachkommastellen. Dazu "nur" die Zeitstempeltimebase in sek.
Großer log Intervall = ungenau wegen sich ständig ändernden Anpassungen des Laders/Inverters die nicht war genommen werden.
Aber so einiger maßen sollte man das doch hinbekommen.

monotonic: geht nicht da der neue wert großer sein muss. Wird aber sicher benötigt zur hoch Zählung. wird aber nicht die Hauptfunktion.
differntial: fällt weg wegen alte + neu wert gegen rechnen.. alt wert ist nur interessant für den Zeitstempel.

Mein Hauptproblem liegt in Perl und FHEM. Also eher bei mir :) Das klappt alles nicht so wirklich wie ich das mache.

RalfRog

Da ist schön so und mich würde dein PV-Speicher interessieren.
Aber bei deinem Problem hilft das nicht.

Welches Gerät hast du denn in FHEM eingebunden dessen Werte du verarbeiten möchtest.

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

Damian

Zitat von: kask am 29 März 2023, 07:47:34Ich möchte einen PV Speicher  laden.-entladen in eine Statistik packen.
Also wieviel habe ich gespeichert und wieviel abgegeben.
Und dazu wollte ich den gerade genutzten Leistungswert hernehmen.
Das es ungenau wird ist so erst einmal ok und auch klar, da der Lader bzw. Inverter sich ständig ändert/anpasst.
Kleiner log Intervall = Ungenauigkeit wegen kleinen Werten und Nachkommastellen. Dazu "nur" die Zeitstempeltimebase in sek.
Großer log Intervall = ungenau wegen sich ständig ändernden Anpassungen des Laders/Inverters die nicht war genommen werden.
Aber so einiger maßen sollte man das doch hinbekommen.

monotonic: geht nicht da der neue wert großer sein muss. Wird aber sicher benötigt zur hoch Zählung. wird aber nicht die Hauptfunktion.
differntial: fällt weg wegen alte + neu wert gegen rechnen.. alt wert ist nur interessant für den Zeitstempel.

Mein Hauptproblem liegt in Perl und FHEM. Also eher bei mir :) Das klappt alles nicht so wirklich wie ich das mache.


Aber das Gerät, welches die Leistung bei dir misst, wird wohl auch die Energie "zählen" oder nicht?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

kask

#12
Zitat von: RalfRog am 29 März 2023, 09:25:58Da ist schön so und mich würde dein PV-Speicher interessieren.
Aber bei deinem Problem hilft das nicht.

Welches Gerät hast du denn in FHEM eingebunden dessen Werte du verarbeiten möchtest.

Speicher ist an einem Victron Multiplus installiert und wird mittels Raspberry&VenusOS mit MQTT übertragen.
Die Energie wird nicht gezählt. Zumindest wird es nicht published und ich kann in der Doku auch nichts finden dazu.


RalfRog

#13
ZitatSpeicher ist an einem Victron Multiplus installiert und wird mittels Raspberry&VenusOS mit MQTT übertragen.
Die Energie wird nicht gezählt. Zumindest wird es nicht published und ich kann in der Doku auch nichts finden dazu.

Da habe ich jetzt keine eigene Erfahrung, aber das die gewünschten Werte nicht da sind kann ich mir fast nicht vorstellen.
Such mal im Forum.

Auf Anhieb habe ich das gefunden: https://forum.fhem.de/index.php?msg=1239595

Forenbereich Solaranlagen sowie MQTT scheinen einiges zu enthalten.
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

kask

#14
Eigentlich ist es ja nicht ein Geräte bezogenes Problem hier jetzt an der Stelle.
Wie kann ich mir einen Zähler selber bauen ist da gefragt. Ob genau oder nicht ist erst einmal zweit rangig.


Es gibt Leute die haben das selbe Problem und so ist es bei mir auch. Es stehen keine Werte drin nur "NULL".
https://community.victronenergy.com/questions/186091/mqtt-battery-history-energy-values.html

Deshalb selber bauen.