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

sct14675

Da ja die Entwicklung von SMAEM und SMAInverter zwei unterschiedliche Module sind, hab ich einen neuen Thread gestartet:
https://forum.fhem.de/index.php/topic,56080.0.html

So fluten wir nicht den Thread von Volker  ;)

Gleichzeitig hab ich ein neues Release (1.0) erstellt, das ein paar gemeldete Bugs behebt.

@cerberus:
Ich glaub, du hast eine Seriennummer in die SUSyID kopiert >> So findet sich kein Empfänger.
Lösch bitte mal die Attribute target-susyid und target-serial, läufts dann wieder? Es müsste zumindest das Multigate reagieren.
Die Antwort kannst du dann bitte im neuen Tread gleich reinschreiben.

sct14675

Hallo Volker,
bei mir scheint das SMAEM Modul nicht mehr richtig zu funktionieren.
Ich hab die letzte Version aus dem offiziellen Verteiler von FHEM (update all)

Mein problem:
Nach einem Shutdown restart läuft das Modul 5-10 Minuten fehlerfrei mit dem gewünschten Interval, dann wird es nicht mehr aktualisiert.
Ein neuer Shutdown restart behebt das ganze wieder für 5-10 Minuten.
Ich hab schon meine Definition entfernt und neu erstellt, aber keine Änderung.
Im Logfile sehe ich bei "verbose 5" nur ab und zu EInträge, dass 600 Byte empfangen wurden. Keine Fehlermeldungen.
Die Log-Einträge hören einfach nach einiger Zeit auf.

Hier meine Definition:
define MyEM SMAEM
attr MyEM DbLogExclude .*
attr MyEM DbLogInclude Bezug_Wirkleistung,Einspeisung_Wirkleistung
attr MyEM disableSernoInReading 1
attr MyEM room Solar


Was läuft bei mir falsch?

Volker Kettenbach

Zitat von: sct14675 am 01 August 2016, 12:18:44
Hallo Volker,
bei mir scheint das SMAEM Modul nicht mehr richtig zu funktionieren.
Ich hab die letzte Version aus dem offiziellen Verteiler von FHEM (update all)

Mein problem:
Nach einem Shutdown restart läuft das Modul 5-10 Minuten fehlerfrei mit dem gewünschten Interval, dann wird es nicht mehr aktualisiert.
Ein neuer Shutdown restart behebt das ganze wieder für 5-10 Minuten.
Ich hab schon meine Definition entfernt und neu erstellt, aber keine Änderung.
Im Logfile sehe ich bei "verbose 5" nur ab und zu EInträge, dass 600 Byte empfangen wurden. Keine Fehlermeldungen.
Die Log-Einträge hören einfach nach einiger Zeit auf.

Hier meine Definition:
define MyEM SMAEM
attr MyEM DbLogExclude .*
attr MyEM DbLogInclude Bezug_Wirkleistung,Einspeisung_Wirkleistung
attr MyEM disableSernoInReading 1
attr MyEM room Solar


Was läuft bei mir falsch?

Setze mal das Intervall manuell auf 60 (oder was Du haben willst). Mal schauen, was dann passiert.

sct14675

Hab das Interval auf 60 gesetzt, keine Reaktion.
Hab einen Shutdown restart gemacht: Abruf der Werte für ein paar Minuten

Hab das Interval auf 10 gesetzt, keine Reaktion
Hab einen Shutdown restart gemacht: Abruf der Werte alle 10s für ein paar Minuten.

Irgendwann scheint ein Timer verloren zu gehen...

DS_Starter

Hi Thomas,

Nur mal als Überlegung ... könnte es andere Software/Module geben die einen Seiteneffekt haben könnten ?

Habe bei mir das Modul nun schon seit etlichen Wochen laufen ohne irgendeinen Issue.
Mag an ein Problem innerhalb des Moduls nicht so recht glauben.

VG
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

sct14675

Glaub ich auch, nur hab ich keine Ahnung was.
Mein erster Verdacht ging auf mein Modul, weil mir beim Entwickeln einige Hänger passiert sind.
Aber ich habs komplett löschen > gleiches Ergebnis.
Hab den PC neu gestartet > gleiches Ergebnis.
Bin relativ verzweifelt, hab keine Ahnung was einen Timer verschlucken könnte...

Volker Kettenbach

Beende mal das Modul oder das ganze FHEM und starte des Testprogramm:

https://github.com/kettenbach-it/FHEM-SMA-Speedwire/blob/master/smaem_test.pl

Wenn das nichts (mehr) ausgibt, dann liegt es nicht am FHEM-Server. Dann bekommst Du keine Daten vom EM oder es liegt am Netz....

sct14675

Nachdem ich den FHEM service gestopt habe, hab ich das Programm ausgeführt:

Seriennummer: 1900215947
Update: 4086418653
L1:
        Bezug Wirkleistung (W): 0.0
        Bezug Wirkleistung Zähler (kWh): 1654.3
        Einspeisung Wirkleistung (W): 729.3
        Einspeisung Wirkleistung Zähler (kWh): 1944.1

        Bezug Blindleistung (var): 0.0
        Bezug Blindleistung Zähler (kvarh): 169.9
        Einspeisung Blindleistung (var): 79.8
        Einspeisung Blindleistung Zähler (kvarh): 795.3

        Bezug Scheinleistung (VA): 0.0
        Bezug Scheinleistung Zähler (kVAh): 1778.5
        Einspeisung Scheinleistung (VA): 733.7
        Einspeisung Scheinleistung Zähler (kVAh): 2055.4

        CosPhi: 0.994
        THD: 3.26
        Spannung (V): 231.8
L2:
        Bezug Wirkleistung (W): 0.0
        Bezug Wirkleistung Zähler (kWh): 684.7
        Einspeisung Wirkleistung (W): 791.4
        Einspeisung Wirkleistung Zähler (kWh): 1952.5

        Bezug Blindleistung (var): 0.0
        Bezug Blindleistung Zähler (kvarh): 226.1
        Einspeisung Blindleistung (var): 30.4
        Einspeisung Blindleistung Zähler (kvarh): 310.2

        Bezug Scheinleistung (VA): 0.0
        Bezug Scheinleistung Zähler (kVAh): 747.7
        Einspeisung Scheinleistung (VA): 792.0
        Einspeisung Scheinleistung Zähler (kVAh): 1984.7

        CosPhi: 0.999
        THD: 3.47
        Spannung (V): 231.0
L3:
        Bezug Wirkleistung (W): 0.0
        Bezug Wirkleistung Zähler (kWh): 1044.6
        Einspeisung Wirkleistung (W): 547.6
        Einspeisung Wirkleistung Zähler (kWh): 1754.9

        Bezug Blindleistung (var): 23.6
        Bezug Blindleistung Zähler (kvarh): 347.3
        Einspeisung Blindleistung (var): 0.0
        Einspeisung Blindleistung Zähler (kvarh): 59.1

        Bezug Scheinleistung (VA): 0.0
        Bezug Scheinleistung Zähler (kVAh): 1064.7
        Einspeisung Scheinleistung (VA): 548.1
        Einspeisung Scheinleistung Zähler (kVAh): 1793.8

        CosPhi: 0.999
        THD: 2.43
        Spannung (V): 231.0

Alle Phasen:
        Bezug Wirkleistung (W): 0.0
        Bezug Wirkleistung Zähler (kWh): 1394.1
        Einspeisung Wirkleistung (W): 2068.3
        Einspeisung Wirkleistung Zähler (kWh): 3661.8

        Bezug Blindleistung (var): 0.0
        Bezug Blindleistung Zähler (kvarh): 648.8
        Einspeisung Blindleistung (var): 86.6
        Einspeisung Blindleistung Zähler (kvarh): 1070.1

        Bezug Scheinleistung (VA): 0.0
        Bezug Scheinleistung Zähler (kVA): 1795.0
        Einspeisung Scheinleistung (VA): 2070.1
        Einspeisung Scheinleistung Zähler (kVA): 4028.7

        CosPhi: 0.999

Plausichecks:
        Bezug Wirkleistung: 0.0 + 0.0 + 0.0 = 0 ? == 0.0
        Bezug Wirkleistung Zähler: 1654.3 + 684.7 + 1044.6 = 3383.7185 ?== 1394.1

        Einspeisung Wirkleistung: 729.3 + 791.4 + 547.6 = 2068.3 ? == 2068.3
        Bezug Wirkleistung Zähler: 1944.1 + 1952.5 + 1754.9 = 5651.448 ?== 3661.8

        Einspeisung Leistung 2068.3 + 86.6 = 2154.9 ?== 2070.1
        Bezug Leistung 0.0 + 0.0 = 0 ?== 0.0

DS_Starter

ZitatMein erster Verdacht ging auf mein Modul, weil mir beim Entwickeln einige Hänger passiert sind.

Dein Modul kannst du glaube ich auch als Übeltäter ausschließen ... hab SMAEM und deines parallel laufen. No Problems...

VG
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

Volker Kettenbach

Zitat von: sct14675 am 01 August 2016, 16:40:32
Nachdem ich den FHEM service gestopt habe, hab ich das Programm ausgeführt:

Seriennummer: 1900215947
Update: 4086418653
L1:
        Bezug Wirkleistung (W): 0.0
        Bezug Wirkleistung Zähler (kWh): 1654.3
        Einspeisung Wirkleistung (W): 729.3
        Einspeisung Wirkleistung Zähler (kWh): 1944.1

        Bezug Blindleistung (var): 0.0
        Bezug Blindleistung Zähler (kvarh): 169.9
        Einspeisung Blindleistung (var): 79.8
        Einspeisung Blindleistung Zähler (kvarh): 795.3

        Bezug Scheinleistung (VA): 0.0
        Bezug Scheinleistung Zähler (kVAh): 1778.5
        Einspeisung Scheinleistung (VA): 733.7
        Einspeisung Scheinleistung Zähler (kVAh): 2055.4

        CosPhi: 0.994
        THD: 3.26
        Spannung (V): 231.8
L2:
        Bezug Wirkleistung (W): 0.0
        Bezug Wirkleistung Zähler (kWh): 684.7
        Einspeisung Wirkleistung (W): 791.4
        Einspeisung Wirkleistung Zähler (kWh): 1952.5

        Bezug Blindleistung (var): 0.0
        Bezug Blindleistung Zähler (kvarh): 226.1
        Einspeisung Blindleistung (var): 30.4
        Einspeisung Blindleistung Zähler (kvarh): 310.2

        Bezug Scheinleistung (VA): 0.0
        Bezug Scheinleistung Zähler (kVAh): 747.7
        Einspeisung Scheinleistung (VA): 792.0
        Einspeisung Scheinleistung Zähler (kVAh): 1984.7

        CosPhi: 0.999
        THD: 3.47
        Spannung (V): 231.0
L3:
        Bezug Wirkleistung (W): 0.0
        Bezug Wirkleistung Zähler (kWh): 1044.6
        Einspeisung Wirkleistung (W): 547.6
        Einspeisung Wirkleistung Zähler (kWh): 1754.9

        Bezug Blindleistung (var): 23.6
        Bezug Blindleistung Zähler (kvarh): 347.3
        Einspeisung Blindleistung (var): 0.0
        Einspeisung Blindleistung Zähler (kvarh): 59.1

        Bezug Scheinleistung (VA): 0.0
        Bezug Scheinleistung Zähler (kVAh): 1064.7
        Einspeisung Scheinleistung (VA): 548.1
        Einspeisung Scheinleistung Zähler (kVAh): 1793.8

        CosPhi: 0.999
        THD: 2.43
        Spannung (V): 231.0

Alle Phasen:
        Bezug Wirkleistung (W): 0.0
        Bezug Wirkleistung Zähler (kWh): 1394.1
        Einspeisung Wirkleistung (W): 2068.3
        Einspeisung Wirkleistung Zähler (kWh): 3661.8

        Bezug Blindleistung (var): 0.0
        Bezug Blindleistung Zähler (kvarh): 648.8
        Einspeisung Blindleistung (var): 86.6
        Einspeisung Blindleistung Zähler (kvarh): 1070.1

        Bezug Scheinleistung (VA): 0.0
        Bezug Scheinleistung Zähler (kVA): 1795.0
        Einspeisung Scheinleistung (VA): 2070.1
        Einspeisung Scheinleistung Zähler (kVA): 4028.7

        CosPhi: 0.999

Plausichecks:
        Bezug Wirkleistung: 0.0 + 0.0 + 0.0 = 0 ? == 0.0
        Bezug Wirkleistung Zähler: 1654.3 + 684.7 + 1044.6 = 3383.7185 ?== 1394.1

        Einspeisung Wirkleistung: 729.3 + 791.4 + 547.6 = 2068.3 ? == 2068.3
        Bezug Wirkleistung Zähler: 1944.1 + 1952.5 + 1754.9 = 5651.448 ?== 3661.8

        Einspeisung Leistung 2068.3 + 86.6 = 2154.9 ?== 2070.1
        Bezug Leistung 0.0 + 0.0 = 0 ?== 0.0


Sieht ja alles ganz sinnvoll aus.
Geht es auch nach einigen Minuten noch?

sct14675


sct14675

Nochmal als Überlegung:
Kann es sein, dass bei mir der Socket (warum auch immer) geschlossen wird?
Dann würden keine neuen Daten mehr bereit stehen und die zyklische Funktion nicht mehr aufgerufen werden.
D.h. Ist es möglich, einen zyklischen Check einzubauen, ob der Socket noch offen ist und auf den Multicast hört?

Volker Kettenbach

Zitat von: sct14675 am 03 August 2016, 09:49:25
Nochmal als Überlegung:
Kann es sein, dass bei mir der Socket (warum auch immer) geschlossen wird?
Dann würden keine neuen Daten mehr bereit stehen und die zyklische Funktion nicht mehr aufgerufen werden.
D.h. Ist es möglich, einen zyklischen Check einzubauen, ob der Socket noch offen ist und auf den Multicast hört?

Das kannst Du einfach an der Linux commandline machen:


rpi:~# netstat -anu |grep 9522
udp     7680      0 0.0.0.0:9522            0.0.0.0:*


Gibt das Kommandozeile die o.g. Zeile aus, dann ist der Socket offen.
Du kannst das ganze einfach mit


watch -n 0 "netstat -anu |grep 9522"

"überwachen". Die Zahl in der 2. Spalte sollte sich hin und wider erhöhen und wieder auf 0 zurück gehen. Dann hast Du mit dem watch gerade den Moment erwischt, wo Daten emfpangen und dann vom Socket abgerufen werden. (Da der 1 Sekundentakt vom EH nicht konkruent zum watch ist, erwischt Du nicht immer den Moment).

Mit


rpi:~# tcpdump port 9522

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

10:37:31.625749 IP pv-meter.bh.xxx.60388 > 239.12.255.254.9522: UDP, length 600
10:37:32.624907 IP pv-meter.bh.xxx.60388 > 239.12.255.254.9522: UDP, length 600
10:37:33.624860 IP pv-meter.bh.xxx.60388 > 239.12.255.254.9522: UDP, length 600


kannst Du checken, ob von der Multicastgruppe Daten ankommen. Wenn der Socket nicht offen bzw. die Multicastgruppe nicht aboniert ist, dann kommt da auch nix.

Wenn das der Fall ist, dann empfängt der Socket auch Daten und das Problem liegt irgendwie im FHEM.
Dann müssen wir prüfen, ob das Update der Readings korrekt funktioniert.
Das Modul macht das an sich zuverlässig....
Daher bin ich etwas ratlos....

Stromausfall_2016

HI!

Kurze Frage: Läuft das Modul mit dem SMAEM auch OHNE eine SHM im Netzwerk oder muss man den SHM zwingend haben um seine Daten am Speisepunkt zu sehen???

DS_Starter

ZitatLäuft das Modul mit dem SMAEM auch OHNE eine SHM im Netzwerk .....

Wenn du mit SHM = Sunny Home Manager meinst .... den brauchst du für das SMAEM-Modul nicht. Die Kommunikation erfolgt allein zwischen dem SMA Energy Meter und FHEM.

VG
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