Neu: 77_SMAEM - Modul für SMA Energie Meter. Alternative zum Sunny Home Manager.

Begonnen von Volker Kettenbach, 30 März 2016, 12:42:05

Vorheriges Thema - Nächstes Thema

elo


Heute wurde der fhem.pl Prozess wieder beendet, aufgrund von Speichermangel.
Ich habe den Raspi restartet und das Modul SMAEM resettet.

2020-12-14 09:21:40 Global global ATTR PV89_SMAEM verbose 5
..mehr kommt nicht zum Modul, scheinbar läuft es nicht.

Die einzige Fehlermeldung welche ich im Log sehen kann ist 1x "2020.12.14 09:17:28 0 : Cant open FHEM: No such file or directory" kann mir aber nicht erklären wozu die gehören soll. Das einzige was nach dem Reboot nicht läuft ist das SMAEM, das muss resettet und FHEM neu gestartet werden.
--
Raspi + FHEM 5.8 + HM-MOD-PCB + HM-LAN + HM-LC_Bl1PBU-FM + HM-LC-BL1-FM + HM-PB-2-WM + HM-LC-SW1-FM + HM-TC-IT-WM-W-EU + HM-CC-RT-DN

DS_Starter

Die Meldung "2020.12.14 09:17:28 0 : Cant open FHEM: No such file or directory" sagt mir leider auch nichts addhoc, aber aus dem SMAEM Modul ist sie nicht, die sehen anders aus. Da sie mit dem verbose level 0 geschrieben ist, gehe ich ganz stark von einer Meldung aus fhem.pl aus. Muss mal im Code suchen ob ich die finde.
ESXi@NUC+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

Eifelman

Hallo,

mein EnergyMeter zeigt zwar die Frequenz an (siehe Anhang), liefert sie aber nicht aus wg. zu alter Firmware: Software Version -> 2.00.16.R

2021.03.26 16:31:37 5: SMAEM smaEnergyMeter - received 600 bytes from "1901403xxx" but interval 60s isn't expired.
2021.03.26 16:31:38 4: SMAEM smaEnergyMeter - ###############################################################
2021.03.26 16:31:38 4: SMAEM smaEnergyMeter - ### Begin of new SMA Energymeter 1901403xxx get data cycle ###
2021.03.26 16:31:38 4: SMAEM smaEnergyMeter - ###############################################################
2021.03.26 16:31:38 4: SMAEM smaEnergyMeter - discarded cycles since module start: 0
2021.03.26 16:31:38 4: SMAEM smaEnergyMeter - last update time set to: 26.03.2021 / 16:31:38
2021.03.26 16:31:38 4: SMAEM smaEnergyMeter - Blocking process with PID: 10997 started
2021.03.26 16:31:38 5: SMAEM smaEnergyMeter - OBIS metrics identified:
2021.03.26 16:31:38 5: SMAEM smaEnergyMeter - 144:0.0.0 -> Software Version -> 2.00.16.R
2021.03.26 16:31:38 5: SMAEM smaEnergyMeter - 1:1.4.0 -> SUM Wirkleistung Bezug -> 0
2021.03.26 16:31:38 5: SMAEM smaEnergyMeter - 1:1.8.0 -> SUM Wirkleistung Bezug Zaehler -> 34277053320
2021.03.26 16:31:38 5: SMAEM smaEnergyMeter - 1:10.4.0 -> SUM Scheinleistung Einspeisung -> 5274
2021.03.26 16:31:38 5: SMAEM smaEnergyMeter - 1:10.8.0 -> SUM Scheinleistung Einspeisung Zaehler -> 42496968960
2021.03.26 16:31:38 5: SMAEM smaEnergyMeter - 1:13.4.0 -> SUM Leistungsfaktor -> 742
2021.03.26 16:31:38 5: SMAEM smaEnergyMeter - 1:2.4.0 -> SUM Wirkleistung Einspeisung -> 3911


Lt. Installationsanleitung gibt es eine aktuelle Firmware auf www.SMA-Solar.com. Also eigentlich alles ganz easy, wenn man denn die Firmware hätte. Ich habe sie leider nicht gefunden. Hat jemand einen Link für mich?


Viele Grüße
Manfred
Grüße aus der Eifel
--------------------------------------------------------------------------------------------------
FHEM auf Raspberry Pi 4 mit CUL868&433, RaspBee, ioBroker & Node-Red

fritzmeier

Hallo,
kann mir jemand die readings zukommen lassen, welche das Modul 77_SMAEM liefert?
In der Wiki habe ich diese nicht gefunden
https://github.com/kettenbach-it/FHEM-SMA-Speedwire

ich bin gerade daran dieses auf meine Anlage umzuschreiben
https://forum.fhem.de/index.php/topic,120616.msg1151692.html#msg1151692

jedoch tue ich mich schwer, da ich nicht weiß was diese Readings bedeuten oder liefern

ein paar habe ich so umgeschrieben bzw. erstellt aus den OBIS Readings

Bezug_Wirkleistung:.*  {if (ReadingsVal($name,"power",0) > 0 ) {return (ReadingsVal($name,"power",0))} else {return 0};;},
Bezug_Wirkleistung_Zaehler:.*  {ReadingsVal($name,"total_consumption",0)/1000},
Einspeisung_Wirkleistung:.* {if (ReadingsVal($name,"power",0) < 0 ) {return (ReadingsVal($name,"power",0)*-1)}else {return 0};;},
Einspeisung_Wirkleistung_Zaehler:.* {ReadingsVal($name,"total_feed",0)/1000},
Saldo_Wirkleistung:.* {ReadingsVal($name,"Einspeisung_Wirkleistung",0)- ReadingsVal($name,"Bezug_Wirkleistung",0)}

27.04 readings geändert

total_consumption,total_feed
wie kommen diese zustande:
Bezug_WirkP_Zaehler_Diff
Einspeisung_WirkP_Zaehler_Diff
Einspeisung_WirkP_Verguet_Diff
Bezug_WirkP_Kosten_Diff


Grüße
Fritzmeier

DS_Starter

Hallo Fritzmeier,

ich kann jetzt nicht wirklich erkennen welche Infos dir eigentlich fehlen.
Aber ...

Zitat
wie kommen diese zustande:
Bezug_WirkP_Zaehler_Diff
Einspeisung_WirkP_Zaehler_Diff
Einspeisung_WirkP_Verguet_Diff
Bezug_WirkP_Kosten_Diff
Die Diff-Readings werden intern vom Modul berechnet und das Reading generiert.

Grüße,
Heiko
ESXi@NUC+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

fritzmeier

Hallo,
vielen Dank, jetzt wird schon was angezeigt.
Aber so richtig noch nicht...
Die Auszüge aus der fhem.cfg anbei, denke übersichtlicher als direkt hier.

   











aktueller WertHeutedieser Monatdieses Jahr
PV-Erzeugung844.0 W4.7 kWh16.1 kWh40.8 kWh
Einspeisung284,46 W0 kWh0 kWh0 kWh
Bezug0 W0 kWh0 kWh0 kWh
Energieverbrauch559.5 W4.7 kWh16.1 kWh40.8 kWh
Autarkiequote100 %100 %100 %100 %
Eigenverbrauchsquote66 %100 %100 %100 %
Berechnung am2021-05-02 13:21:272021-05-02 13:10:082021-05-02 13:10:082021-05-01 20:15:00

userReadings OBIS
Bezug_Wirkleistung:.* {if (ReadingsVal($name,"power",0) > 0 ) {return (ReadingsVal($name,"power",0))} else {return 0};;},
Bezug_Wirkleistung_Zaehler:.* {ReadingsVal($name,"total_consumption",0)/1000},
Einspeisung_Wirkleistung:.* {if (ReadingsVal($name,"power",0) < 0 ) {return (ReadingsVal($name,"power",0)*-1)}else {return 0};;},
Einspeisung_Wirkleistung_Zaehler:.* {ReadingsVal($name,"total_feed",0)/1000},
Saldo_Wirkleistung:.* {ReadingsVal($name,"Einspeisung_Wirkleistung",0)- ReadingsVal($name,"Bezug_Wirkleistung",0)},
TotalConsumption:.* {ReadingsVal($name,"Bezug_Wirkleistung",0) + ReadingsVal("WRFronius","total_pac",0)-ReadingsVal($name,"Einspeisung_Wirkleistung",0)}

userReadings Fronius
total_pac:.* { ReadingsVal($name,"Inverter_Common_PAC_Value",0)/1000 ;;},
etoday:.* { ReadingsVal($name,"Inverter_Common_DAY_ENERGY_Value",0)/1000 ;;},
modulstate:.* { if(ReadingsVal($name,"state","") eq "connected") {return "normal"} else {return "sleep"}},
etotal:.* { ReadingsVal($name,"Inverter_Common_TOTAL_ENERGY_Value",0)/1000 ;;}

wie kann der Fehler am besten gefunden werden?

Rep. > alles grün

02.05.2021 etoday noch angepasst
welche Readings müssen in die DBlog geschrieben werden?
"Für das Logging in der DB werden Differenzwerte verwendet " Was sind das für Werte?
bisher habe ich nur
für Stromzaehler:
Einspeisung_Wirkleistung_Zaehler
Einspeisung_Wirkleistung
Bezug_Wirkleistung_Zaehler
Bezug_Wirkleistung

für Wechselrichter:
total_pac
etotal
etoday

was bei Fronius nicht geht:
SBFSpotComp 1
detail-level 2
mode manual
offset 0
showproctime 1
suppressSleep 0
target-serial <Serial-No>
target-susyid <SysID>
timeout 30

liegt es daran? Gibt es da Alternativen?

Grüße
Fritzmeier

jonas71

Hallo zusammen.

Seit heute 19 Uhr bekomme ich keine Daten mehr vom HM.
Nur noch:
"Buffer length 610 is not usual. May be your meter has been updated with a new firmware."

Check im Portal:
Keine Updates, Software Version immernoch 2.06.6.R .
Dafür aber aktuelle Verbrauchstdaten dort, SM ist also nicht kaputt.

Ideen, Vorschläge?


jonas71

Zitat von: jonas71 am 05 Mai 2021, 21:54:28
"Buffer length 610 is not usual. May be your meter has been updated with a new firmware."

Habe nun im Script in Zeile 1415 einfach mal

elsif($dl == 610) {
         $model = "HM 2.0 >= 2.06.6.R";
  }


hinzugefügt.

Scheint zu laufen.

Frage mich nur:
Wieso hat das früher funktioniert?
Spielt SMA neuerdings updates ein ohne es im Log zu erwähnen?
Und warum bin ich scheinbar der einzige hier mit dem Problem?

Fragen über Fragen...  ;)

300P

Zitat von: jonas71 am 06 Mai 2021, 10:55:27
Habe nun im Script in Zeile 1415 einfach mal

elsif($dl == 610) {
         $model = "HM 2.0 >= 2.06.6.R";
  }


hinzugefügt.

Scheint zu laufen.

Frage mich nur:
Wieso hat das früher funktioniert?
Spielt SMA neuerdings updates ein ohne es im Log zu erwähnen?
Und warum bin ich scheinbar der einzige hier mit dem Problem?

Fragen über Fragen...  ;)

Das gleiche Thema war Ende 2019 bereits. 600 Byte -> 608 Byte
Eventuell einmal die Update-Funktion + Restart nutzen, damit sollte es bei Dir ,,drin" sein...... ;D

Gruss
300P



Nachsatz........


Zitat von: DS_Starter am 15 Dezember 2019, 09:56:44
Hallo miteinander,

durch die super Vorarbeit/Anregung von Andreas (RiG) habe nun etliche Neuerungen und Änderungen im Modul sehr zügig durchführen können.
Um es zu verdeutlichen ist die Versionierung auf 4.0.0 gesetzt.

Hier alles im Überblick:

* Komplettumstellung auf OBIS Kennzahlen
  Ein Offset ist nicht mehr nötig und wurde entfernt.

 
* Das Reading "FirmwareVersion" wurde nach "SoftwareVersion" umbenannt.
  Dadurch passt es sich besser in den Readinglesefluss in der Detailansicht ein.
 
* Die Readings "Lx_THD" wurden alle  nach "Lx_Strom" geändert.
  Ich kann heute nicht mehr sagen wie wir damals auf THD (den Klirrfaktor) gekommen waren.

* es gibt ein neues Attribut "noCoprocess"
  Als wir vor ein paar Jahren das Modul entwickelten, kam es häufig zu Freezes in FHEM wenn die Daten des EM verarbeitet
  wurden. Aus diesem Grund wurde das Modul auf non-Blocking umgestellt. Dadurch wird bei jedem Zyklus (bei mir alle 60s)
  ein Hintergrundprozess zu Abarbeitung gestartet.
  Nicht in jedem Fall ist das aber vom Nutzer gewünscht oder nötig. Es sind ein paar Jahre vergangen und die eingesetzte
  Hardware hat sich verändert, etc.
  Mit diesem Attriibut kann man nun festlegen, dass kein Hintergrundprozess verwendet werden soll.
  Ohne Hintergrundprozess liegt SMAEM_Read bei mir mit apptime max gemessen bei 290 - 519 ms, mit Hintergrundprozess zeigt SMAEM_Read nur 17 ms.  :D
  Wie dem auch sei, der Nutzer hat nun die Möglichkeit zu entscheiden wie er das Modul betreiben möchte.
 
* neue Kennzahlen werden im verbose 5 Log mit "unknown item" gekennzeichnet und es wird das Reading "OBISnewItems" generiert
  Durch die Umstellung der Readingerstellung mit OBIS Kennzahlen bekommt man nicht mehr mit wenn durch ein Firmware Update
  neue Kennzahlen hinzukommen (außer bei verbose 5 Log).
  Aus diesem Grund wird das Reading "OBISnewItems" erstellt. Es enthält den Wert "none" wenn alle empfangenen OBIS Kennzahlen
  im Modul bekannt sind. Kommen neue hinzu die noch nicht im obisitem-Hash benannt sind, werden diese OBIS in diesem Reading
  ausgegeben, z.B.
 
                  OBISnewItems  1:10.8.0,1:13.4.0
 
  Wenn man als Nutzer so etwas bemerkt, kann man nun reagieren und hier im Thread eine Meldung aufmachen damit dieses Item
  aufgenommen wird.
 

Das wären erstmal die aktuellen Neuerungen und ich hoffe dass sich dadurch wieder ein Fortschritt bzw. Mehrwert für die Modulnutzer ergibt.

Da sich teilweise die Readings geändert haben, müsst ihr die alten loswerden. Das kann man ganz einfach durch kurzzeitiges
switchen des Attributs "disableSernoInReading" erreichen. Dadurch werden immer alles Readings gelöscht und neu aufgebaut.

Die neue Version liegt wieder in meinem contrib zum Test bereit.
Insbesondere MiVo69 bitte ich wieder um einen Test ob das neue OBIS Item erkannt wird.
Bei mir habe ich bisher beim Vergleich mit der produktiven Instanz (Version 3.5.0) keine Unterschiede feststellen können,
d.h. ich sollte keine falschen Zuordungen, Dreher usw. implementiert haben.

Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben:

"wget -qO ./FHEM/77_SMAEM.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/77_SMAEM.pm"

Grüße,
Heiko

FHEM 6.3 - Raspberry Pi 3 / Pi 4 - VControl300 mit VITOVALOR 300P - SMAEM - SMAInverter - DbLog/DbRep - MariaDB/QNAP - div. HTTPMOD - div. Modbus ser+TCP - SolarForecast - Tibber + Ladung mit SMA-SBS25

jonas71

Zitat von: 300P am 06 Mai 2021, 11:07:11
Das gleiche Thema war Ende 2019 bereits. 600 Byte -> 608 Byte
Eventuell einmal die Update-Funktion + Restart nutzen, damit sollte es bei Dir ,,drin" sein...... ;D

Hoffe auf ein Missverständnis: Meine Version ist schon aktuell, 4.3.0 letzte Änderung 08.12.2020

Meine oben beschriebene Änderung reichte auch leider nicht aus, musste noch eine eine 56 durch eine 58 ersetzen.
Was mich aber grade auf die Idee bringt, daß das etwas mit diesen "OBISnewItems" zu tun hat.
Da steht bei mir nämlich keineswegs "none", sondern 1:0.1.130,1:0.1.4,1:0.3.200,1:8.0.0.

Leider habe ich keinen Plan von Perl und Python, schaue mir den Code aber nun doch noch mal genauer an.




jonas71

Zitat von: jonas71 am 08 Mai 2021, 17:59:28
Meine oben beschriebene Änderung reichte auch leider nicht aus, musste noch eine eine 56 durch eine 58 ersetzen.

60 nicht 58!!
Mit 60 läuft alles wieder tadelos.  :)

Zeile 498 nach Änderung 2 Posts zuvor:
# 610 statt 608 bytes buffer, Start nach Header 58 statt 56:
my $i    = 60;

Zeile

300P

@DS_Starter
und
@Volker_Kettenbach

Hallo Zusammen,

scheinbar ist hier eine Erweiterung / Update des SMAEM-Modules für die HM2.0 notwendig ;)

Gruß
300P


Zitat von: jonas71 am 08 Mai 2021, 17:59:28
Hoffe auf ein Missverständnis: Meine Version ist schon aktuell, 4.3.0 letzte Änderung 08.12.2020

Meine oben beschriebene Änderung reichte auch leider nicht aus, musste noch eine eine 56 durch eine 58 ersetzen.
Was mich aber grade auf die Idee bringt, daß das etwas mit diesen "OBISnewItems" zu tun hat.
Da steht bei mir nämlich keineswegs "none", sondern 1:0.1.130,1:0.1.4,1:0.3.200,1:8.0.0.

Leider habe ich keinen Plan von Perl und Python, schaue mir den Code aber nun doch noch mal genauer an.

FHEM 6.3 - Raspberry Pi 3 / Pi 4 - VControl300 mit VITOVALOR 300P - SMAEM - SMAInverter - DbLog/DbRep - MariaDB/QNAP - div. HTTPMOD - div. Modbus ser+TCP - SolarForecast - Tibber + Ladung mit SMA-SBS25

DS_Starter

Hallo,

@Volker ... kannst du das bitte übernehmen ? Ich bin mit meinem SolarForecast Modul zur Zeit gut ausgelastet.

@jonas71, bitte ein List deines Devices zur Verfügung stellen und einen kompletten verbose 5 Log-Auszug deines SMAEM Devices.

Mir kommt allerdings etwas komisch vor dass es kein Firmware Update gegeben haben soll.
Gab es sonst Änderungen im Netzwerk ? Neue Geräte mit Multicast Protokoll ?

Grüße,
Heiko
ESXi@NUC+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

jonas71

Zitat von: DS_Starter am 09 Mai 2021, 19:16:10
@jonas71, bitte ein List deines Devices zur Verfügung stellen und einen kompletten verbose 5 Log-Auszug deines SMAEM Devices.
Sehr gern.
Bin aber noch etwas zu neu hier und nutze den FHEM auch nur per Telnet, bin daher mit dem GUI nicht so sehr vertraut:

Was genau ist ein "List" eines Devices?

Logauszug ist in Arbeit, suche grade die Datei...

jonas71

Zitat von: jonas71 am 10 Mai 2021, 08:09:35
Logauszug ist in Arbeit, suche grade die Datei...

Finde nur ein fhem-jahr-monat.log, ein SMAEM-Auszug (grep) anbei.

Nachtrag:
- Die Werte die mit das Modul nach meinen Änderungen liefert passen 1:1 zu denen des Portals.
- OBISnewItems sind nun auch "none".
- Was noch nicht stimmt ist die Seriennummer des Geräts!