Seite 1 von 4

Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 8:01 am
von i_got_soul
Hi Kevin,

heute Nacht hat SMA bei mir mal wieder ein Update für den Homemanager aufgespielt, Version 2.04.11.R
Laut Releaselog eigentlich "nur" Unterstützung für deren Ladelösung:

Unterstützung von:

SMA EV CHARGER 7.4 / 22 mit SMA SMART CONNECTED
Unterstützung von Anlagen, die SMA Batterie-Wechselrichter mit Ersatzstromfunktion und eine Einspeisebegrenzung am Netzanschlusspunkt von 0% (Zero-Feed-In) verwenden.


Allerdings hat es bei mir dabei wieder die Berechnung / Auslesen des Hausverbrauchs kaputt gemacht.
Es kann sein, dass die also wieder was an Ihren Registern geändert haben. Kannst Du bzw. können das andere User bestätigen?

-Michael

Re: Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 8:03 am
von openWB
Eher sollte Bezug/Einspeisung anders sein, kannst du das bestätigen?
Wenn ja hat sich das Datagram wohl geändert.
Ich frage mal an.

Re: Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 8:05 am
von ALDI-Tuete
Ja, wurde schon im Thread "Rückmeldung 1.8.000 Stable RC" genannt und bestätigt: viewtopic.php?f=9&t=1185&p=12653#p12651

Re: Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 8:09 am
von i_got_soul

Re: Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 8:12 am
von i_got_soul
Jep es scheint sich mal wieder die Datagram Länge geändert zu haben:

Traceback (most recent call last):
File "/var/www/html/openWB/modules/bezug_smashm/sma-em-measurement.py", line 88, in <module>
emparts=decode_speedwire(sock.recv(608))
File "/var/www/html/openWB/modules/bezug_smashm/speedwiredecoder.py", line 137, in decode_speedwire
version=str(int(bversion[0:2]))+"."+str(int(bversion[2:4]))+"."+str(int(bversion[4:6]))
ValueError: invalid literal for int() with base 10: '0b'

Re: Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 8:26 am
von i_got_soul
und ja, es ist der Bezug der aktuell falsch ist. Liegt konstant bei 192 seit dem automatischen Firmwareupgrade des HM


pi@openWB:/var/www/html/openWB/modules/bezug_smashm $ cat /var/www/html/openWB/ramdisk/evu-live.graph
192
192
192
192
192
192
192
192
192
192

Re: Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 9:02 am
von i_got_soul
Ok, debugging zeigt, das es am Auslesen des Version Tags scheitert, wie gesagt vermutlich durch das erneute Ändern des Datagrams.
Als Tempfix kann man das auslesen erstmal auskommentieren. Ist für die Funktion von openwb ja nicht ausschlaggebend:

/var/www/html/openWB/modules/bezug_smashm $ vi speedwiredecoder.py

Code: Alles auswählen

133	      else:
   134	          position+=8
   135	      """ temp fix Michael for HM Upgrade
   136	      * elif datatype=='version':
   137	      *   value=datagram[position+4:position+8]
   138	      *   if measurement in sma_channels.keys():
   139	      *     bversion=(binascii.b2a_hex(value).decode("utf-8"))
   140	      *     version=str(int(bversion[0:2]))+"."+str(int(bversion[2:4]))+"."+str(int(bversion[4:6]))
   141	      *     revision=str(chr(int(bversion[6:8])))
   142	      *     #revision definitions
   143	      *     if revision=="1":
   144	      *         #S – Spezial Version
   145	      *         version=version+".S"
   146	      *     elif revision=="2":
   147	      *         #A – Alpha (noch kein Feature Complete, Version für Verifizierung und Validierung)
   148	      *         version=version+".A"
   149	      *     elif revision=="3":
   150	      *         #B – Beta (Feature Complete, Version für Verifizierung und Validierung)
   151	      *         version=version+".B"
   152	      *     elif revision=="4":
   153	      *         #R – Release Candidate / Release (Version für Verifizierung, Validierung und Feldtest / öffentliche Version)
   154	      *         version=version+".R"
   155	      *     elif revision=="5":
   156	      *         #E – Experimental Version (dient zur lokalen Verifizierung)
   157	      *         version=version+".E"
   158	      *     elif revision=="6":
   159	      *         #N – Keine Revision
   160	      *         version=version+".N"
   161	      *     #adding versionnumber to compare verions
   162	      *     version=version+"|"+str(bversion[0:2])+str(bversion[2:4])+str(bversion[4:6])
   163	      *     emparts[sma_channels[measurement][0]]=version
   164	      *   position+=8
   165	      * else:
   166	      *  position+=8
   167	      */
   168	      """
   169	  return emparts

Re: Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 10:24 am
von el_Olli
Das Problem habe ich heute morgen auch entdeckt. Das EVU-Modul ist natürlich schon relevant für Lastmanagement etc.

Ich stelle EVU mal auf Discovergy um, aber ich bevorzuge, die Messwerte direkt von meinen Geräten im Haus zu holen, statt sie über das Internet aus Portalen zu laden. BTW, habt ihr euch mal angesehen, ob man die Discovergy-Zähler direkt auslesen kann?

Aber wie ich euch kenne habt ihr das bald gefixed ;)

Re: Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 10:35 am
von ie872
i_got_soul hat geschrieben: Do Aug 06, 2020 9:02 am Ok, debugging zeigt, das es am Auslesen des Version Tags scheitert, wie gesagt vermutlich durch das erneute Ändern des Datagrams.
Als Tempfix kann man das auslesen erstmal auskommentieren. Ist für die Funktion von openwb ja nicht ausschlaggebend:

/var/www/html/openWB/modules/bezug_smashm $ vi speedwiredecoder.py

Code: Alles auswählen

133	      else:
   134	          position+=8
   135	      """ temp fix Michael for HM Upgrade
   136	      * elif datatype=='version':
   137	      *   value=datagram[position+4:position+8]
   138	      *   if measurement in sma_channels.keys():
   139	      *     bversion=(binascii.b2a_hex(value).decode("utf-8"))
   140	      *     version=str(int(bversion[0:2]))+"."+str(int(bversion[2:4]))+"."+str(int(bversion[4:6]))
   141	      *     revision=str(chr(int(bversion[6:8])))
   142	      *     #revision definitions
   143	      *     if revision=="1":
   144	      *         #S – Spezial Version
   145	      *         version=version+".S"
   146	      *     elif revision=="2":
   147	      *         #A – Alpha (noch kein Feature Complete, Version für Verifizierung und Validierung)
   148	      *         version=version+".A"
   149	      *     elif revision=="3":
   150	      *         #B – Beta (Feature Complete, Version für Verifizierung und Validierung)
   151	      *         version=version+".B"
   152	      *     elif revision=="4":
   153	      *         #R – Release Candidate / Release (Version für Verifizierung, Validierung und Feldtest / öffentliche Version)
   154	      *         version=version+".R"
   155	      *     elif revision=="5":
   156	      *         #E – Experimental Version (dient zur lokalen Verifizierung)
   157	      *         version=version+".E"
   158	      *     elif revision=="6":
   159	      *         #N – Keine Revision
   160	      *         version=version+".N"
   161	      *     #adding versionnumber to compare verions
   162	      *     version=version+"|"+str(bversion[0:2])+str(bversion[2:4])+str(bversion[4:6])
   163	      *     emparts[sma_channels[measurement][0]]=version
   164	      *   position+=8
   165	      * else:
   166	      *  position+=8
   167	      */
   168	      """
   169	  return emparts
Super, Danke für den Tempfix, bei mir gab es gestern auch den Update des SHM 2 auf 2.04.11.R und dann hat natürlich kein PV-Laden mehr geklappt weil Netzbezug / Hausverbrauch nicht mehr korrekt ermittelt wurde. OpenWB 8.1.201ightly hatte den SMA-Update noch nicht berücksichtigt.

Re: Hausverbrauch erneut fehlerhaft nach SMA Homemanger Update

Verfasst: Do Aug 06, 2020 10:48 am
von cpm
Nur zusammengegoogelt:

speedwiredecoder.py die BASE 16 ergänzen. Quelle: https://github.com/datenschuft/SMA-EM/c ... b11bbb2814

bversion=(binascii.b2a_hex(value).decode("utf-8"))
version=str(int(bversion[0:2],16))+"."+str(int(bversion[2:4],16))+"."+str(int(bversion[4:6],16))
revision=str(chr(int(bversion[6:8])))
Ich komm an meine Box nicht dran, wenn es jemand mal probieren möchte?