SMA Energymeter liefert einzelne, viel zu große Werte
Moderator: Ulrich
-
- Beiträge: 1116
- Registriert: Mi 13. Mai 2020, 10:04
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 161 Mal
Re: SMA Energymeter liefert einzelne, viel zu große Werte
Nur so als Tipp, wenn ihr solche Änderungen in der *_math.php (jeweils passend zum Wechselrichter) programmiert, dann gibt es keine Probleme beim nächsten Update. Ansonsten werden Eure Änderungen immer überschrieben und müssen dann wieder händisch nachgetragen werden.
-
- Beiträge: 1337
- Registriert: Do 25. Jun 2020, 13:40
- Hat sich bedankt: 23 Mal
- Danksagung erhalten: 83 Mal
Re: SMA Energymeter liefert einzelne, viel zu große Werte
Moin Bogeyof,
danke fürn Hinweis, weiss ich, aber ausgerechnet die energy_math schaut bei mir arg komisch aus, alle Zeilen mit schwarzen Klötzchen und "^M" am Ende und in Leerzeilen
Ich hab deswegen da die Finger weg gelassen.
Gruss
Andreas
PS
Hast Du schon deine sonoffs aufgebohrt bzgl Sensoren?
danke fürn Hinweis, weiss ich, aber ausgerechnet die energy_math schaut bei mir arg komisch aus, alle Zeilen mit schwarzen Klötzchen und "^M" am Ende und in Leerzeilen
Ich hab deswegen da die Finger weg gelassen.
![Überglücklich :D](./images/smilies/icon_e_biggrin.gif)
Gruss
Andreas
PS
Hast Du schon deine sonoffs aufgebohrt bzgl Sensoren?
SMA Tripower 8 / Growatt MIN 3000 TL-XE / ELWA DC WW 300L / Growatt SPH 4600 an 4 ARK LV , 20,5kWp / 10kWh
Re: SMA Energymeter liefert einzelne, viel zu große Werte
Moin Andreas,
diese M's sind Zeilenumbrüche.
Du hast mit einem anderen Editor(vielleicht in Windows) die growatt_math.php nach energy_math.php kopiert.
In der growatt... waren Zeilenumbrüche, die der neue andere linuxfremde Editor dann so darstellt. Die Datei ist i.O. und wenn Du die Kopiereren zukünftig in der Konsole mit dem Midnightcommander. und evtl das Teilkopieren mit dem Nanoeditor machst hast Du die schwarzen Kästchen nicht mehr.
Enrico
-
- Beiträge: 62
- Registriert: Mo 19. Jul 2021, 13:57
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: SMA Energymeter liefert einzelne, viel zu große Werte
Da hätte ich auch selber drauf kommen können.andreas_n hat geschrieben: ↑Di 17. Aug 2021, 18:38hi hendock, hab deine Lösung!
Eben erst bemerkt...als ich deine Grafik vergrössert habe
wenn Du
SELECT (last("Bezug")) - 0.000001 FROM "AC" WHERE $timeFilter and Bezug < 15000 GROUP BY time(1m) fill(linear)
nimmst
muss auch bei Einspeisung, "Einspeisung" stehen...
also SO>>>
SELECT (last("Einspeisung")) - 0.000001FROM "AC" WHERE $timeFilter and Einspeisung < 15000 GROUP BY time(1m) fill(linear)
dann klappts auch in der Grafik ohne Spikes
Gruss
Andreas
![Verlegen :oops:](./images/smilies/icon_redface.gif)
Funktioniert. Danke!
Den Rest sehe ich mir auch noch an.
-
- Beiträge: 54
- Registriert: Di 27. Jul 2021, 21:17
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 7 Mal
- Kontaktdaten:
Re: SMA Energymeter liefert einzelne, viel zu große Werte
Hi,
also in den letzten Tagen habe ich jetzt doch auch diese falschen Werte bekommen. So ein. bis zweimal am Tag.
Folgende Werte hab ich gesehen:
time Bezug Einspeisung Frequenz Leistung Leistung_R Leistung_S Leistung_T Leistungsfaktor Leistungsfaktor_R Leistungsfaktor_S Leistungsfaktor_T Spannung Spannung_R Spannung_S Spannung_T Strom Strom_R Strom_S Strom_T
---- ----- ----------- -------- -------- ---------- ---------- ---------- --------------- ----------------- ----------------- ----------------- -------- ---------- ---------- ---------- ----- ------- ------- -------
1630241232000000000 0 16830090.5 262.82 -16830090.5 -16829644.8 -284.6 -161.1 0.976 0.849 0.999 0.965 224.63 224.63 224.38 224.69 2.867 0.746 1.276 0.845
oder
time Bezug Einspeisung Frequenz Leistung Leistung_R Leistung_S Leistung_T Leistungsfaktor Leistungsfaktor_R Leistungsfaktor_S Leistungsfaktor_T Spannung Spannung_R Spannung_S Spannung_T Strom Strom_R Strom_S Strom_T
---- ----- ----------- -------- -------- ---------- ---------- ---------- --------------- ----------------- ----------------- ----------------- -------- ---------- ---------- ---------- ----- ------- ------- -------
1630422732000000000 0 3408325.8 262.82 -3408325.8 -3407872 -283.3 -170.5 0.992 0.902 0.999 0.999 222.53 222.53 222.54 222.73 2.886 0.761 1.279 0.846
Ein Muster konnte ich bisher noch nicht erkennen.
Die Werte zu Null schreiben ist natürlich eine Möglichkeit - quick und dirty eben (-;
Gruß
Oliver
also in den letzten Tagen habe ich jetzt doch auch diese falschen Werte bekommen. So ein. bis zweimal am Tag.
Folgende Werte hab ich gesehen:
time Bezug Einspeisung Frequenz Leistung Leistung_R Leistung_S Leistung_T Leistungsfaktor Leistungsfaktor_R Leistungsfaktor_S Leistungsfaktor_T Spannung Spannung_R Spannung_S Spannung_T Strom Strom_R Strom_S Strom_T
---- ----- ----------- -------- -------- ---------- ---------- ---------- --------------- ----------------- ----------------- ----------------- -------- ---------- ---------- ---------- ----- ------- ------- -------
1630241232000000000 0 16830090.5 262.82 -16830090.5 -16829644.8 -284.6 -161.1 0.976 0.849 0.999 0.965 224.63 224.63 224.38 224.69 2.867 0.746 1.276 0.845
oder
time Bezug Einspeisung Frequenz Leistung Leistung_R Leistung_S Leistung_T Leistungsfaktor Leistungsfaktor_R Leistungsfaktor_S Leistungsfaktor_T Spannung Spannung_R Spannung_S Spannung_T Strom Strom_R Strom_S Strom_T
---- ----- ----------- -------- -------- ---------- ---------- ---------- --------------- ----------------- ----------------- ----------------- -------- ---------- ---------- ---------- ----- ------- ------- -------
1630422732000000000 0 3408325.8 262.82 -3408325.8 -3407872 -283.3 -170.5 0.992 0.902 0.999 0.999 222.53 222.53 222.54 222.73 2.886 0.761 1.279 0.846
Ein Muster konnte ich bisher noch nicht erkennen.
Die Werte zu Null schreiben ist natürlich eine Möglichkeit - quick und dirty eben (-;
Gruß
Oliver
SMA Tripower 5.0 STP - SMA Energymeter - Raspberrby Pi Zero, ESP 32 für Erfassung der Vor- Rücklauf und Aussentemperatur.
-
- Beiträge: 1337
- Registriert: Do 25. Jun 2020, 13:40
- Hat sich bedankt: 23 Mal
- Danksagung erhalten: 83 Mal
Re: SMA Energymeter liefert einzelne, viel zu große Werte
hallo ksapp,
der Spike im Bezug wäre ja nichtmal so schlimm,wo halt der Spike Schaltvorgänge auslöst,ist in der Einspeisung.bei mir vornehmlich nachts.Da ich die Automation verwende, bleibt nachts halt nun der heizstab aus,klar kommt ja so viel wie null vom Dach
Besser als 150 bis 250MW für 1-2minuten allemal. Und nachts=Null klingt auch plausibler
gruss
Andreas
der Spike im Bezug wäre ja nichtmal so schlimm,wo halt der Spike Schaltvorgänge auslöst,ist in der Einspeisung.bei mir vornehmlich nachts.Da ich die Automation verwende, bleibt nachts halt nun der heizstab aus,klar kommt ja so viel wie null vom Dach
![Überglücklich :D](./images/smilies/icon_e_biggrin.gif)
Besser als 150 bis 250MW für 1-2minuten allemal. Und nachts=Null klingt auch plausibler
gruss
Andreas
SMA Tripower 8 / Growatt MIN 3000 TL-XE / ELWA DC WW 300L / Growatt SPH 4600 an 4 ARK LV , 20,5kWp / 10kWh
-
- Beiträge: 54
- Registriert: Di 27. Jul 2021, 21:17
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 7 Mal
- Kontaktdaten:
Re: SMA Energymeter liefert einzelne, viel zu große Werte
Hallo Andreas,
ich habe ein bisschen in der SMA_Energy_math gebastelt. Die angehängte SMA_Energy_math hat folgende Funktionen:
- unrealistische Werte auf Null schreiben, bevor sie in die Datenbank kommen -> Die Funktion ist erst seit gestern da drin. Bisher hat die noch nicht zugeschlagen.
- Verbrauchsberechnung - nimmt nachts die Werte vom Energymeter und tags die Werte vom Wechselrichter - abhängig vom Betriebsstatus des Wechselrichters. Die Werte werden in eine neue Tabelle 'Dashboard' geschrieben.
Dazu gehört diese Mathe.php - das hat hier im Forum jemand so vorgedacht - ich habs etwas angepasst.
Wer es probieren möchte - bitteschön - aber kommt mir nachher nicht, wenn es aus irgendwelchen Gründen eure Datenbank durcheinander gebracht hat (-;
Bei mir läuft es und hat nix kaputt gemacht (Regler 27 und Regler 54).
Gruß
Oliver
ich habe ein bisschen in der SMA_Energy_math gebastelt. Die angehängte SMA_Energy_math hat folgende Funktionen:
- unrealistische Werte auf Null schreiben, bevor sie in die Datenbank kommen -> Die Funktion ist erst seit gestern da drin. Bisher hat die noch nicht zugeschlagen.
- Verbrauchsberechnung - nimmt nachts die Werte vom Energymeter und tags die Werte vom Wechselrichter - abhängig vom Betriebsstatus des Wechselrichters. Die Werte werden in eine neue Tabelle 'Dashboard' geschrieben.
Dazu gehört diese Mathe.php - das hat hier im Forum jemand so vorgedacht - ich habs etwas angepasst.
Wer es probieren möchte - bitteschön - aber kommt mir nachher nicht, wenn es aus irgendwelchen Gründen eure Datenbank durcheinander gebracht hat (-;
Bei mir läuft es und hat nix kaputt gemacht (Regler 27 und Regler 54).
Gruß
Oliver
- Dateianhänge
-
- sma_energy_math.php
- (5.54 KiB) 230-mal heruntergeladen
-
- mathe.php
- (1.25 KiB) 219-mal heruntergeladen
SMA Tripower 5.0 STP - SMA Energymeter - Raspberrby Pi Zero, ESP 32 für Erfassung der Vor- Rücklauf und Aussentemperatur.
-
- Beiträge: 1337
- Registriert: Do 25. Jun 2020, 13:40
- Hat sich bedankt: 23 Mal
- Danksagung erhalten: 83 Mal
Re: SMA Energymeter liefert einzelne, viel zu große Werte
moin Oliver,
ja,kann man so machen,aber ich hab drei WR am laufen, das haut dann so nimmer hin. Schafft nichtmal SMA selber,in der app wirds korrekt angezeigt,aber für die Schaltvorgänge nimmt SMA scheinbar nur Daten aus dem WR und nicht den EM.
Gruß
Andreas
ja,kann man so machen,aber ich hab drei WR am laufen, das haut dann so nimmer hin. Schafft nichtmal SMA selber,in der app wirds korrekt angezeigt,aber für die Schaltvorgänge nimmt SMA scheinbar nur Daten aus dem WR und nicht den EM.
Gruß
Andreas
SMA Tripower 8 / Growatt MIN 3000 TL-XE / ELWA DC WW 300L / Growatt SPH 4600 an 4 ARK LV , 20,5kWp / 10kWh
-
- Beiträge: 54
- Registriert: Di 27. Jul 2021, 21:17
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 7 Mal
- Kontaktdaten:
Re: SMA Energymeter liefert einzelne, viel zu große Werte
Moin,
Ich muss das Thema nochmal aufgreifen. Ich denke, ich bin der Sache auf der Spur, was es mit den falschen Werten auf sich hat. Um das zu finden, habe ich die SMA_Energy.php angepasst, das ich das Telegramm in die solaranzeige.log geschrieben kriege, wenn Werte jenseits von gut und böse geschrieben werden. Ich habe dort das hier gefunden:
13.11. 19:54:05 - Einspeisung falscher Wert auf Null gesetzt:1730150.4
534d4100000402a000000001024400106069015d7155a6011aa649f9000104000000160400010800000000005795c43000020400000000000002080000000000f26e48b00003040000000000000308000000000006f16980000404000000077c0004080000000000535bed18000904000000174000090800000000007e80e7a0000a040000000000000a080000000000f5066b20000d0400000003b30015040000000a220015080000000000250e9000001604000000000000160800000000004dea9fa0001704000000000000170800000000000652180800180400000004a60018080000000000208e9048001d040000000b25001d08000000000036b1a9c8001e040000000000001e080000000000502dfa00001f040000000588002004000003787e002104000000038d00290400000002870029080000000000070a4ea0002a040000000000002a08000000000068594e68002b040000000000002b08000000000000320f28002c040000000053002c080000000000197b36f8003104000000028c00310800000000001adaeb8800320400000000000032080000000000689335b0003304000000012800340400000374a400350400000003e0003d04000000095b003d0800000000003af00098003e040000000000003e0800000000004b9d79e8003f040000000000003f080000000000026f92b0004004000000028300400800000000001b5477a000450400000009b00045080000000000449a0eb8004604000000000000460800000000004c5a3ce00047040000000479004804000003794b00490400000003c6900000000200125200000000
Das ist das Rawtelegramm, was das Energymeter liefert. Die SMA_Energy.php zerlegt und wandelt das in Klartext um. Ein Entscheidender Punkt ist diese Zeile zur Ermittlung des Wertes für Einspeisung:
$aktuelleDaten["Einspeisung"] = ((hexdec(substr($Daten,strpos($Daten,"00160400",0)+8,8))/10) + (hexdec(substr($Daten,strpos($Daten,"002a0400",0)+8,8))/10) + (hexdec(substr($Daten,strpos($Daten,"003e0400",0)+8,8))/10));
Hier wird das Telegramm unter Anderem nach der Zeichenfolge '00160400' durchsucht und der Wert dahinter wird dann umgewandelt und in Klartext in die Datenbank geschrieben. Hinter der Zeichenfolge ''00160400' liegt der Wert für 'EinspeisungPhase_R'. Das Programm durchsucht also den gesamten String nach der Zeichenfolge 00160400. Im obigen Telegramm kommt diese Zeichenfolge allerdings zwei mal vor. Einmal an Stelle 66 und einmal an Stelle 352 (wenn ich mich nicht verzählt habe (-; ).
Das Programm nimmt die Stelle, die es zuerst findet - also hier Stelle 66 und wandelt um, was danach kommt:
01080000
Das ist eine Hex-Zahl und nach Dez umgewandelt ergibt sich '17301504' , was (fast) der Zahl entspricht, die in die Datenbank geschrieben wird. Die kleine Abweichung ergibt sich, da 'Einspeisung' noch weitere Werte hinzu addiert hat.
Richtig wäre die zweite Stelle (352) - und da steht aktuell '00000000' was auch korrekt wäre.
Ergo - kommt vom Energymeter ein Telegramm zurück, welches zufällig einen Messwert hat, der die 'falsche' Zahlenfolge beinhaltet, wird der falsche Teil des Telegramms umgewandelt und in die Datenbank geschrieben.
Das betrifft nicht nur diesen einen Wert - sporadisch sind auch andere Werte davon betroffen. Ich hab letztens die Datenbank durchforstet und einen Haufen Werte gelöscht, die in den letzten Monaten falsch beschrieben wurden.
Gruß
Oliver
Ich muss das Thema nochmal aufgreifen. Ich denke, ich bin der Sache auf der Spur, was es mit den falschen Werten auf sich hat. Um das zu finden, habe ich die SMA_Energy.php angepasst, das ich das Telegramm in die solaranzeige.log geschrieben kriege, wenn Werte jenseits von gut und böse geschrieben werden. Ich habe dort das hier gefunden:
13.11. 19:54:05 - Einspeisung falscher Wert auf Null gesetzt:1730150.4
534d4100000402a000000001024400106069015d7155a6011aa649f9000104000000160400010800000000005795c43000020400000000000002080000000000f26e48b00003040000000000000308000000000006f16980000404000000077c0004080000000000535bed18000904000000174000090800000000007e80e7a0000a040000000000000a080000000000f5066b20000d0400000003b30015040000000a220015080000000000250e9000001604000000000000160800000000004dea9fa0001704000000000000170800000000000652180800180400000004a60018080000000000208e9048001d040000000b25001d08000000000036b1a9c8001e040000000000001e080000000000502dfa00001f040000000588002004000003787e002104000000038d00290400000002870029080000000000070a4ea0002a040000000000002a08000000000068594e68002b040000000000002b08000000000000320f28002c040000000053002c080000000000197b36f8003104000000028c00310800000000001adaeb8800320400000000000032080000000000689335b0003304000000012800340400000374a400350400000003e0003d04000000095b003d0800000000003af00098003e040000000000003e0800000000004b9d79e8003f040000000000003f080000000000026f92b0004004000000028300400800000000001b5477a000450400000009b00045080000000000449a0eb8004604000000000000460800000000004c5a3ce00047040000000479004804000003794b00490400000003c6900000000200125200000000
Das ist das Rawtelegramm, was das Energymeter liefert. Die SMA_Energy.php zerlegt und wandelt das in Klartext um. Ein Entscheidender Punkt ist diese Zeile zur Ermittlung des Wertes für Einspeisung:
$aktuelleDaten["Einspeisung"] = ((hexdec(substr($Daten,strpos($Daten,"00160400",0)+8,8))/10) + (hexdec(substr($Daten,strpos($Daten,"002a0400",0)+8,8))/10) + (hexdec(substr($Daten,strpos($Daten,"003e0400",0)+8,8))/10));
Hier wird das Telegramm unter Anderem nach der Zeichenfolge '00160400' durchsucht und der Wert dahinter wird dann umgewandelt und in Klartext in die Datenbank geschrieben. Hinter der Zeichenfolge ''00160400' liegt der Wert für 'EinspeisungPhase_R'. Das Programm durchsucht also den gesamten String nach der Zeichenfolge 00160400. Im obigen Telegramm kommt diese Zeichenfolge allerdings zwei mal vor. Einmal an Stelle 66 und einmal an Stelle 352 (wenn ich mich nicht verzählt habe (-; ).
Das Programm nimmt die Stelle, die es zuerst findet - also hier Stelle 66 und wandelt um, was danach kommt:
01080000
Das ist eine Hex-Zahl und nach Dez umgewandelt ergibt sich '17301504' , was (fast) der Zahl entspricht, die in die Datenbank geschrieben wird. Die kleine Abweichung ergibt sich, da 'Einspeisung' noch weitere Werte hinzu addiert hat.
Richtig wäre die zweite Stelle (352) - und da steht aktuell '00000000' was auch korrekt wäre.
Ergo - kommt vom Energymeter ein Telegramm zurück, welches zufällig einen Messwert hat, der die 'falsche' Zahlenfolge beinhaltet, wird der falsche Teil des Telegramms umgewandelt und in die Datenbank geschrieben.
Das betrifft nicht nur diesen einen Wert - sporadisch sind auch andere Werte davon betroffen. Ich hab letztens die Datenbank durchforstet und einen Haufen Werte gelöscht, die in den letzten Monaten falsch beschrieben wurden.
Gruß
Oliver
SMA Tripower 5.0 STP - SMA Energymeter - Raspberrby Pi Zero, ESP 32 für Erfassung der Vor- Rücklauf und Aussentemperatur.
-
- Beiträge: 1337
- Registriert: Do 25. Jun 2020, 13:40
- Hat sich bedankt: 23 Mal
- Danksagung erhalten: 83 Mal
Re: SMA Energymeter liefert einzelne, viel zu große Werte
moin Oliver,
und wie brächte man jetzt die php dazu,den zweiten und korrekten Wert zu verwenden?
gruss
Andreas
und wie brächte man jetzt die php dazu,den zweiten und korrekten Wert zu verwenden?
gruss
Andreas
SMA Tripower 8 / Growatt MIN 3000 TL-XE / ELWA DC WW 300L / Growatt SPH 4600 an 4 ARK LV , 20,5kWp / 10kWh