Modbus > Register bei E3DC S10 Energy Storage - Readings scrambled?

Begonnen von juanmax, 26 Juli 2017, 21:10:36

Vorheriges Thema - Nächstes Thema

sig10680

Zitat von: daelch am 19 März 2020, 16:14:36
Hallo,

im e3dc Portal bekomme die bisher produzierte Gesamtmenge des Tages angezeigt. Kann ich diesen Wert aus einem Register auslesen?

Viele Grüße

Hallo,
hat einer von euch das schon hinbekommen die Gesamtmenge des Tages zu berechnen oder aus der Anlage auszulesen? Bei meinen Versuchen komme ich irgendwie nicht weiter!

Danke Sig10680

pcbastler

Lt. Doku gibt das Modbus nicht her, mit RSCP hab ich mich noch nicht beshäftigt.
Aber mit dblog sollte das klappen:
select value from history where DEVICE = 'S10E' AND READING='sunwatt'[code]
gefiltert über timestamp und aufsummiert entsprechend des Ausleseintervalls

sig10680

Zitat von: pcbastler am 04 Mai 2021, 19:34:07
Lt. Doku gibt das Modbus nicht her, mit RSCP hab ich mich noch nicht beshäftigt.
Aber mit dblog sollte das klappen:
select value from history where DEVICE = 'S10E' AND READING='sunwatt'[code]
gefiltert über timestamp und aufsummiert entsprechend des Ausleseintervalls


Hallo,

danke dir für die Antwort. Da ich mich mit dblog nicht richtig auskenne werde ich versuchen das anderweitig zu berechnen.

mfg Tobias

hellijo

Hallo Zusammen,

hat hier jemand schon einmal die Spannungen der einzelnen Stränge überwacht oder ein .plot dazu erstellt?

VG Jörg

baeda

Zitat von: blofield am 11 März 2020, 16:56:45
Moin @marcus42,

ich möchte gerne dein e3dcset in Verbindung mit S10 und go-eCharger verwenden. Ich habe am S10 das RSCP-Passwort gesetzt und das Programm compiliert. Die Parameter in e3dcset.config mehrfach kontrolliert, aber leider bekomme ich immer nur "Connection closed by peer" zurück, was offenbar auf ein Netzwerk-Problem deutet.
Mit NMAP sehe ich aber vom FHEM Host aus, dass der Port 5033 offen ist, das Passwort ist auch richtig :-/

Ich habe am S10 auch das local.user RSCP-Passwort gesetzt und es mal mit dem User "local.user" versucht. Gelingt aber alles nicht. Immer die gleiche Fehlermeldung :(

Hast Du noch einen Tipp?

Danke,
blofield

Ich möchte mich gerne begl. RSCP anschliessen, da ich auf das selbe Problem gestossen bin:

- An der E3DC habe ich das RSCP Passwort (und das für local.user) auf eine 6-stellige Zahl gesetzt (um Probleme mit Sonderzeichen etc. auszuschliessen).
- Ich habe die e3dcset.config editiert
- mit make kompiliert

Ausführen von  "./e3dcset -c 2400 -d 1" auf fhem:

----------------------------------------------------------
Gelesene Parameter aus Konfigurationsdatei e3dcset.config:
MIN_LEISTUNG=1
MAX_LEISTUNG=3000
MIN_LADUNGSMENGE=0
MAX_LADUNGSMENGE=8000
server_ip=1.2.3.4
server_port=5033
e3dc_user=email@irgendwo.com
e3dc_password=password
aes_password=987654
----------------------------------------------------------
Connecting to server 1.2.3.4:5033
Connected successfully
Request authentication
Connection closed by peer
Ende!


Ein Test vom meinem Notebook schlug ebenfalls fehl.
Diesmal mit dem Fehler:

Connecting to server 1.2.3.4:5033
Connected successfully
Speicherzugriffsfehler (Speicherabzug geschrieben)


Alle 3 Geräte (Notebook, fhem, E3DC) sind im selben Subnetz, die E3DC lässt Verbindungen  auf Port 5033 zu.

Ich bin grad ratlos, wie man den Fehler weiter eingrenzen könnte....






Basti-K

Kann man über Modbus das manuelle Speicher laden steuern?
über das Webinterface kann man nur 3kw/w ziehen (besser als nix), aber vielleicht geht über modbus mehr wenn man den Wert selber vorgeben kann.
Mir fallen 2 Anwendungsfalle ein:
Koppelung an Unwetterwarnungen.
Im Winter automatisch noch mal den Speicher vollladen, wenn eine akute Warnsituation besteht. Haben ist besser als brauchen.
Wenn man einen Strom Lieferanten hat der dynamische Tarife bietet (tibber oder awatar): #
Den Speicher dann vollladen wenn der Strom billig ist, also Nachts.

bennifri

#81
Hallo zusammen,

ich bin neu hier im Forum und möchte mich erstmal für die super Anleitung zur Einbindung des S10 unter
https://forum.fhem.de/index.php?topic=109735.0 bedanken!
Ich hatte auch das Gefühl, dass die Register verdreht sind sind. Meiner Meinung nach funktioniert das -unpack nicht, wie man denkt.
Nachdem ich mich an der Beispiel-Konfiguration etwas langgehangelt habe und mich mit unpack-Codes rumgeschlagen habe (dank dazu auch für die Erklärung zu pack() und unpack hier:
https://stackoverflow.com/questions/40998796/how-to-convert-2-unsigned-16bit-integers-into-a-signed-32bit-integer-in-perl) möchte ich gerne eine knappere Version zum Berechnen der 32bit-Signed-Int-Werte anbieten (Bezug nehmend auf die ursprüngliche Anleitung):

define S10 ModbusAttr 1 5 192.168.1.244:502 TCP
attr S10 userattr devStateIcon event-min-interval event-on-change-reading icon attr S10 devStateIcon opened:rc_WEB@32CD32  disconnected:rc_WEB@red
attr S10 event-min-interval .*:3600
attr S10 event-on-change-reading .*
attr S10 group E3DC
attr S10 icon measure_photovoltaic_inst@yellow
attr S10 room PV
attr S10 DbLogExclude state
attr S10 dev-h-allowShortResponses 1
attr S10 dev-h-combine 200
attr S10 dev-h-defPoll 1
attr S10 dev-timing-commDelay 1

attr S10 obj-h40067-len 1
attr S10 obj-h40067-reading sunwatt0
attr S10 obj-h40067-unpack n
attr S10 obj-h40068-len 1
attr S10 obj-h40068-reading sunwatt1
attr S10 obj-h40068-unpack n


attr S10 obj-h40069-len 1
attr S10 obj-h40069-reading battwatt0
attr S10 obj-h40069-unpack n
attr S10 obj-h40070-len 1
attr S10 obj-h40070-reading battwatt1
attr S10 obj-h40070-unpack n


attr S10 obj-h40071-len 1
attr S10 obj-h40071-reading homewatt0
attr S10 obj-h40071-unpack n
attr S10 obj-h40072-len 1
attr S10 obj-h40072-reading homewatt1
attr S10 obj-h40072-unpack n


attr S10 obj-h40073-len 1
attr S10 obj-h40073-reading gridwatt0
attr S10 obj-h40073-unpack n
attr S10 obj-h40074-len 1
attr S10 obj-h40074-reading gridwatt1
attr S10 obj-h40074-unpack n

attr S10 obj-h40082-len 1 
attr S10 obj-h40082-reading battsoc
attr S10 obj-h40082-unpack n

attr S10 obj-h40083-len 1
attr S10 obj-h40083-reading emps
attr S10 obj-h40083-unpack n 

attr S10 obj-h40084-len 1
attr S10 obj-h40084-reading ems_status
attr S10 obj-h40084-unpack n
attr S10 userReadings homewatt {my $high = ReadingsVal("S10", "sunwatt1", 0);; my $low = ReadingsVal("S10", "sunwatt0", 0);; return unpack('l>', pack('nn', $high, $low));; },\
sunwatt {my $high = ReadingsVal("S10", "sunwatt1", 0);; my $low = ReadingsVal("S10", "sunwatt0", 0);; return unpack('l>', pack('nn', $high, $low));; },\
battwatt {my $high = ReadingsVal("S10", "battwatt1", 0);; my $low = ReadingsVal("S10", "battwatt0", 0);; return unpack('l>', pack('nn', $high, $low));; },\
homewatt {my $high = ReadingsVal("S10", "homewatt1", 0);; my $low = ReadingsVal("S10", "homewatt0", 0);; return unpack('l>', pack('nn', $high, $low));; },\
gridwatt {my $high = ReadingsVal("S10", "gridwatt1", 0);; my $low = ReadingsVal("S10", "gridwatt0", 0);; return unpack('l>', pack('nn', $high, $low));; }                                                                                                                                                                               

Vielleicht kann das jemand noch eleganter machen.

Grüße

Benni

Dirk070

Zitat von: sig10680 am 05 Mai 2021, 07:01:16
Hallo,

danke dir für die Antwort. Da ich mich mit dblog nicht richtig auskenne werde ich versuchen das anderweitig zu berechnen.

mfg Tobias

Hi Tobias,

warst Du erfolgreich? Der Wert würde mich auch für die Plots interessieren.

Danke und schöne Grüße
Dirk

sig10680

Zitat von: Dirk070 am 19 Juni 2022, 20:52:00
Hi Tobias,

warst Du erfolgreich? Der Wert würde mich auch für die Plots interessieren.

Danke und schöne Grüße
Dirk

Hallo,

nein habe mangels Zeit nicht auf dblog umgestellt.

mfg Tobias

Dirk070


blofield

Zitat von: Basti-K am 05 November 2021, 13:07:34
Kann man über Modbus das manuelle Speicher laden steuern?

Meines Wissens nach nur über RSCP z.B. mit e3dcset. s.o.
Das läuft bei mir zuverlässig.

blofield

Zitat von: baeda am 03 November 2021, 21:24:32
Ich möchte mich gerne begl. RSCP anschliessen, da ich auf das selbe Problem gestossen bin:
- mit make kompiliert
Ein Test vom meinem Notebook schlug ebenfalls fehl.
Diesmal mit dem Fehler:

Connecting to server 1.2.3.4:5033
Connected successfully
Speicherzugriffsfehler (Speicherabzug geschrieben)


Das Problem habe ich auch. Man kann es auf einem X86 System compilieren, aber es segfaultet immer.
Ich habe dann einen Workaround verwendet, weil es auf einem Raspberry Pi compiliert und funktioniert!
S. Issue auf Github https://github.com/mschlappa/e3dcset/issues/1