@mastermind1 Habe das Skript aus dem dritten Link im Einsatz. Ich bin kein Python Programmierer, aber im Skript ist mir aufgefallen das kein Timeout für den Request verwendet wird und auch sonst kein Exceptionhandling außer HTTP Statuscodes stattfindet. Könnte man jetzt probieren einzubauen, aber ich denke nicht das ich die Zeit habe das so ausführlich zu testen wie das hoffentlich Victron mit der EM24 Lösung gemacht hat und der Teil muss meines Erachtens nach einfach zu 100% funktionieren.
Ich bin zwar kein Python Programmierer aber generell einer.
Ich habe auch vor genau aus meinem Fronius Wechselrichter die Daten zu ziehen.
Ich werde mich demnächst irgendwann definitiv damit befassen und das Skript anpassen. Mir gefällt da auch nicht, dass es im Fehlerfall einfach "nichts" mehr macht. Es sollte da wenigstens Standard Werte setzen, die bewirken, dass der MP2 nichts mehr einspeist oder explizit signalisieren, dass die Verbindung abgebrochen ist.
Ging dann doch schneller als ich dachte, dass mein Cerbo GX bei mir ist. Man kann damit sehr schön ohne Multi rumspielen.
Man sollte die IP nicht direkt in das Skript schreiben, dafür ist der Parameter "--ip" im service "python3 dbus-fronius-smartmeter.py --ip 192.168.1.1".
Hier mal mein erster Entwurf, kann gerne mal gegen getestet werden, da bei mir der Victron noch nicht installiert ist, habe ich es rein im Cerbo getestet und es tat was es sollte. Sprich, wenn die Netzwerkverbindung nicht da ist wird 0 Watt ausgegeben. Die anderen Werte (Spannung / Frequenz...) werden aktuell nicht verändert.
Bitte nicht irgendwohin streuen, ich mache dafür noch nen github fork o.Ä.
def _safe_update(self): try: self._update() self._retries = 0 except Exception as e: log.error('Error running update %s' % e) self._retries += 1 self._failures += 1 self._invalidate() if self._retries > 10: log.error('Number of retries exceeded.') sys.exit(1) return True def _get_meter_data(self): now = time.time() if self._testdata: meter_r = json.loads(open('testdata Link entfernt ').read()) else: meter_r = requests.get(url = self._url, timeout=2).json() latency = time.time() - now if self._latency: self._latency = (9*self._latency + latency)/10 else: self._latency = latency return meter_r['Body']['Data'] def _update(self): meter_data = self._get_meter_data() MeterConsumption = meter_data['PowerReal_P_Sum'] self._dbusservice['/Ac/Power'] = MeterConsumption # positive: consumption, negative: feed into grid self._dbusservice['/Ac/Frequency'] = meter_data['Frequency_Phase_Average'] self._dbusservice['/Ac/L1/Voltage'] = meter_data['Voltage_AC_Phase_1'] self._dbusservice['/Ac/L2/Voltage'] = meter_data['Voltage_AC_Phase_2'] self._dbusservice['/Ac/L3/Voltage'] = meter_data['Voltage_AC_Phase_3'] self._dbusservice['/Ac/L1/Current'] = meter_data['Current_AC_Phase_1'] self._dbusservice['/Ac/L2/Current'] = meter_data['Current_AC_Phase_2'] self._dbusservice['/Ac/L3/Current'] = meter_data['Current_AC_Phase_3'] self._dbusservice['/Ac/L1/Power'] = meter_data['PowerReal_P_Phase_1'] self._dbusservice['/Ac/L2/Power'] = meter_data['PowerReal_P_Phase_2'] self._dbusservice['/Ac/L3/Power'] = meter_data['PowerReal_P_Phase_3'] self._dbusservice['/Ac/Energy/Forward'] = float(meter_data['EnergyReal_WAC_Sum_Consumed']) / 1000. self._dbusservice['/Ac/Energy/Reverse'] = float(meter_data['EnergyReal_WAC_Sum_Produced']) / 1000. self._dbusservice['/Latency'] = self._latency log.info("Meter Power: %s, Latency: %.1fms" % (MeterConsumption, self._latency*1000)) return meter_data def _invalidate(self): # in case we failed to get a response zero out to not get any depending devices to do stuff they shouldn't # set to the wanted level of retries (0 on first failure, 1 ...) if self._retries > 0: self._dbusservice['/Ac/Power'] = 0.0 self._dbusservice['/Ac/L1/Current'] = 0.0 self._dbusservice['/Ac/L2/Current'] = 0.0 self._dbusservice['/Ac/L3/Current'] = 0.0 self._dbusservice['/Ac/L1/Power'] = 0.0 self._dbusservice['/Ac/L2/Power'] = 0.0 self._dbusservice['/Ac/L3/Power'] = 0.0 self._dbusservice['/Latency'] = 0 log.info("Set Meter Power: 0 because of failure!") return None
Einfach ab _safe_update() bis main() überschreiben und nach Bedarf anpassen.
Eine Ergänzung noch, falls du deine lösung -bei Gelegenheit- mal bei GitHub veröffentlichst...
Mir ist es jetzt nach einigen Tagen Betrieb passiert, dass die Anzeige "stehen geblieben ist".
D.h. die Anzeige ist beim letzten Wert - der plausibel ist - stehen geblieben. Abends läuft bei uns die WP + Fernseher + Spülmaschine..
Das sind immer grob 1500Watt.... Und genau das ist auch weiterhin so angezeigt worden, als die Spülmaschine definitiv schon fertig war.
Mit meinem Discovergy Stromzähler konnte ich es nachvollziehen, dass der angezeigte Wert nicht mehr korrekt ist.
D.h. im Fehlerhandling im Skript müsste man überlegen, ob man völlig unveränderte Stromwerte nach X resettet oder oder....
15KWp PV auf dem Dach mit 2x Fronius Symo WR
geplant ne zusätzliche Victron + Pylontech Lösung
Guten Tag zusammen. Ich habe grad mal den ersten MP2 ausgepackt weil ich schon mal die Halterungen anbringen wollte .leider musste ich feststellen das an der rechten oberen Ecke das Plastik gebrochen und das Blech leicht verbogen war .dann mal besser die anderen MP2 auspacken und auch diese auf Beschädigung überprüft .leider waren auch diese beschädigt . Kein gebrochenes Plastik aber dafür ist das Blech sehr viel doller verbogen. Ich hoffe das mein gls Fahrer einfach nur nen schlechten Tag hatte und das es bei niemanden von euch auch auftaucht .grad ne email an info@panda-solar.de geschrieben und meine email konnte nicht zugestellt werden .jetzt gucke ich mal ob ich einen anderen Weg auf der HP finde Panda zu kontaktieren. Telefon geht ja leider auch keiner ran.
schade aber zum glück noch rechtzeitig aufgefallen . Leider kann ich hier keine Bilder vom Handy hochladen weil sie zu groß sind .
@lexi uiiii, danke für den Tipp. Meine liegen bzw. Stehen vor der zu bauenden power Wall. Einmal reinschauen und die Halterung sollte schon einen Blick Wert sein. Hoffe auch, dass es nur an GLS lag. Wie ärgerlich.
Hast du nicht noch die E-Mail der Bestellung? Dort würde ich Antworten.
Meine Bestellung kam auch 4 Wochen eher als gedacht.
Bin mir sicher, dass man hier eine Lösung findet.
Kleiner Tipp, gleich Akustik Dübel nehmen und Gummi Unterlagen für den mp2 Wand Kontakt gegen die Vibrationen. 😉👍😊
Moin derpumba danke für den tip mit der Bestellungen email. Das werde ich mal versuchen. Also ich denke auch nicht das die kaputte Ware verschicken aber bei allen drei das Blech stark eingebogen muss ja nicht sein. Sind ja auch nicht billig die Teile. Bei einem Bekannten der ne Woche vor dem Deal bestellt hat , war die Ecke auch verbogen aber echt nur sehr leicht . Er hat sie wieder rausgezogen und das Teil läuft bei ihm . Mit den Dübeln und den Gummi werde ich mal im auge behalten . 👍
Guten Tag zusammen. Ich habe grad mal den ersten MP2 ausgepackt weil ich schon mal die Halterungen anbringen wollte .leider musste ich feststellen das an der rechten oberen Ecke das Plastik gebrochen und das Blech leicht verbogen war .dann mal besser die anderen MP2 auspacken und auch diese auf Beschädigung überprüft .leider waren auch diese beschädigt . Kein gebrochenes Plastik aber dafür ist das Blech sehr viel doller verbogen. Ich hoffe das mein gls Fahrer einfach nur nen schlechten Tag hatte und das es bei niemanden von euch auch auftaucht .grad ne email an info@panda-solar.de geschrieben und meine email konnte nicht zugestellt werden .jetzt gucke ich mal ob ich einen anderen Weg auf der HP finde Panda zu kontaktieren. Telefon geht ja leider auch keiner ran.
schade aber zum glück noch rechtzeitig aufgefallen . Leider kann ich hier keine Bilder vom Handy hochladen weil sie zu groß sind .
Hab jetzt meinen auch mal extra ausgepackt und reingeschaut. Bei mir sieht aber alles in Ordnung aus. Der MP2 war im Victron Karton aber nochmal rundherum in Schaumstoff eingepackt.
So wie alles eingepackt war, müsste man aber schon am Paket was gesehen haben wenn der GLS Fahrer so grob war, dass da am Blech was verbogen ist.
Tatsächlich ist an meinen Kartons auch nichts und in Schaumstoff waren sie auch sorgfältig verpackt . Keine Ahnung was da los war . Mit der email hat auf jeden Fall geklappt und ich bin im Kontakt mit Panda 👍
Wann habt ihr auf welchem Weg die Rechnung erhalten? Meine Lieferung ist schon 1 Woche hier, Rechnung aber noch keine.
Rechnung war bis vor einer Woche auch noch keine da.
Rechnungsbriefkasten leere ich aber nur alle 14 Tage.
Lieferscheindatum war 17.01.
Ich hab ihn gestern mal kurz ausgepackt, war alles in Ordnung.
Beim Ausprobieren hat er die Sicherung geschmissen, aber das liegt aber sicher an der Hausinstallation in der Mietwohnung, in der ich ihn testen wollte.
..,-
bei mir ist auch die obere rechte Ecke eingebogen, nur Blech.
Einmal leicht einmal stärker
Karton ist unbeschädigt.
Wollte nächste Woche Kontakt mit 🐼 aufnehmen.
Habt ihr alle noch eine Rechnung bekommen? Wundere mich, dass sich daran so wenige stören...
Mh... Das hört sich an, als würde der abgefragte Wechselrichter die falschen Daten liefern. Klar kann man so etwas einbauen, aber hier wäre sicherlich auch zu klären, warum das passiert.
Wenn das passiert, müsste über die hinterlegte URL (ht tp://0.0.0.0/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0&DataCollection=MeterRealtimeData) auf dem WR die gleichen fehlerhaften Daten permanent ausgegeben werden. Das müsste man überprüfen! Ich gehe davon aus, dass dann die Verbindung SmartMeter <-> WR oder der WR selbst spinnt, evtl. Stromsparmodus?
Mh... Das hört sich an, als würde der abgefragte Wechselrichter die falschen Daten liefern. Klar kann man so etwas einbauen, aber hier wäre sicherlich auch zu klären, warum das passiert.
Wenn das passiert, müsste über die hinterlegte URL (ht tp://0.0.0.0/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0&DataCollection=MeterRealtimeData) auf dem WR die gleichen fehlerhaften Daten permanent ausgegeben werden. Das müsste man überprüfen! Ich gehe davon aus, dass dann die Verbindung SmartMeter <-> WR oder der WR selbst spinnt, evtl. Stromsparmodus?
Genau das habe ich gegengeprüft... Die Solar API Abfrage vom Fronius Symo und des Smartmeter liefert ein sauberes File mit sich aktualisierenden plausiblen Daten.
Ich kann die Werte ja mit meinem "Discovergy Smartmeter" vergleichen und das passt.
Der WR ist auch so eingestellt das diese Schnittstelle nicht in Nachtmodus geht. Das war am Anfang so eingestellt. Da konnte ich nachts den Stromverbrauch nicht mehr monitoren.
Was ich aber die letzten Tage sagen kannn.... Ich hab das python skript das als Dienst eingerichtet war, deaktiviert und händisch als User gestartet und seither läuft es durch...
Das ist komisch. Irgendwas passiert während des Laufs wohl, dass die Interaktion des angemeldeten Root Users möchte, oder aus einem anderen Grund...
Was aber funktioniert ist - Netzwerkkabel vom Smartmeter bzw. Wechselrichter ziehen - kurz warten - und schon ist die Anzeige auf 0 und entfernt das Smartmeter aus der Anzeige....
Ein späteres Anstöpseln des Netzwerkkabels - kurz warten - und schon ist das Smartmeter wieder drin.
15KWp PV auf dem Dach mit 2x Fronius Symo WR
geplant ne zusätzliche Victron + Pylontech Lösung
Habt ihr alle noch eine Rechnung bekommen? Wundere mich, dass sich daran so wenige stören...
Log dich mal bei Panda Solar ein und schau dir die Zusammenfassung deiner Bestellung an. Die kannst du dir ausdrucken. Es steht zwar nicht explizit Rechnung drauf, aber ich denke das alles enthalten ist was auch auf einer Rechnung stehen muss...
Habt ihr alle noch eine Rechnung bekommen? Wundere mich, dass sich daran so wenige stören...
Ich hab einfach Panda solar um die Rechnung per Mail gebeten, kam dann auch sehr schnell.
Habt ihr alle noch eine Rechnung bekommen? Wundere mich, dass sich daran so wenige stören...
Ich hab einfach Panda solar um die Rechnung per Mail gebeten, kam dann auch sehr schnell.