Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

Goodwe fhempy Sems Portal

Begonnen von eLoP, 10 April 2024, 10:05:23

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Zitatz.B. durch Angabe in Deiner Signatur
Pardon, aber solche Aufforderungen sollten wir bitte vermeiden.

LG

pah

maci

Habe mal versucht ein Fhem Reading anzulegen.
Wenn ich es versuche mit
attr obj-[cdih][0-9]+-reading h35105 bekomme ich eine Fehlermeldung mit unerlaubten Zeichen
Das gleich beim Versuch
obj-h35105-reading.

Habe es nun mal direkt eingegeben:
attr Goodwe obj-h35105-reading pv-p-mppt1
Reading bekomme ich keines.

Habe für Logausgaben verbose 5 eingeben.

Im Log steht:
2024.11.09 10:07:07.253 3: 10.0.0.209:502 disconnected, waiting to reappear (Goodwe)
2024.11.09 10:07:07.274 5: HttpUtils url=http://10.0.0.209:502/ NonBlocking via http
2024.11.09 10:07:07.275 4: IP: 10.0.0.209 -> 10.0.0.209
2024.11.09 10:07:07.281 3: 10.0.0.209:502 reappeared (Goodwe)
2024.11.09 10:07:07.290 4: Goodwe: UpdateTimer called from OpenCB with cmd start sets timer to call update function in 8.4 sec at 10:07:15.680, interval 60
2024.11.09 10:07:15.681 4: Goodwe: GetUpdate (V4.5.6 - 7.11.2023) called from Fhem internal timer
2024.11.09 10:07:15.682 4: Goodwe: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 60.0 sec at 10:08:15.681, interval 60
2024.11.09 10:07:15.683 5: Goodwe: CreateUpdateHash full object list: h35105
2024.11.09 10:07:15.684 4: Goodwe: CombineUpdateHash objHash keys before combine:
2024.11.09 10:07:15.684 5: Goodwe: CombineUpdateHash tries to combine read commands
2024.11.09 10:07:15.684 5: Goodwe: CombineUpdateHash keys are now
2024.11.09 10:07:15.684 4: Goodwe: GetUpdate will now create requests for
2024.11.09 10:07:20.221 1: PERL WARNING: Argument "" isn't numeric in numeric ge (>=) at (eval 251362516) line 1.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

maci

Habe mich etwas durch die fhem-Referenz zum Thema ModbusAttr gelesen.
Habe daher meine 2 Strings mal wie folgt angelegt
attr Goodwe obj-h35105-format %.2f
attr Goodwe obj-h35105-len 2
attr Goodwe obj-h35105-poll 1
attr Goodwe obj-h35105-reading PV1-Power
attr Goodwe obj-h35105-unpack n
attr Goodwe obj-h35109-format %.2f
attr Goodwe obj-h35109-len 2
attr Goodwe obj-h35109-poll 1
attr Goodwe obj-h35109-reading PV2-Power
attr Goodwe obj-h35109-unpack n

Ich bekomme jetzt regelmäßig Readings, aber die Ausgaben sind 0.00.
In der Weboberfläche habe ich aber Werte.

Also muss irgendetwas noch nicht passen.

Hier noch die Log Ausgabe mit verbose 5
2024.11.09 10:51:28.730 1: PERL WARNING: Argument "" isn't numeric in numeric ge (>=) at (eval 251431548) line 1.
2024.11.09 10:52:16.731 4: Goodwe: GetUpdate (V4.5.6 - 7.11.2023) called from Fhem internal timer
2024.11.09 10:52:16.732 4: Goodwe: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 60.0 sec at 10:53:16.732, interval 60
2024.11.09 10:52:16.735 5: Goodwe: CreateUpdateHash full object list: h35105 h35109
2024.11.09 10:52:16.736 5: Goodwe: CreateUpdateHash will request h35105 len 2 PV1-Power
2024.11.09 10:52:16.736 5: Goodwe: CreateUpdateHash will request h35109 len 2 PV2-Power
2024.11.09 10:52:16.737 4: Goodwe: CombineUpdateHash objHash keys before combine: h35109,h35105
2024.11.09 10:52:16.737 5: Goodwe: CombineUpdateHash tries to combine read commands
2024.11.09 10:52:16.737 5: Goodwe: CombineUpdateHash keys are now h35109,h35105
2024.11.09 10:52:16.738 4: Goodwe: GetUpdate will now create requests for h35105 len 2 (PV1-Power), h35109 len 2 (PV2-Power)
2024.11.09 10:52:16.740 4: Goodwe: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 247, read fc 3 h35105, len 2, tid 200, master device Goodwe, reading PV1-Power (getUpdate for PV1-Power len 2)
2024.11.09 10:52:16.740 5: Goodwe: QueueRequest called from DoRequest with h35105, qlen 0 from master Goodwe through io device Goodwe
2024.11.09 10:52:16.740 5: Goodwe: StartQueueTimer called from QueueRequest sets internal timer to process queue in 0.000 seconds
2024.11.09 10:52:16.742 4: Goodwe: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 247, read fc 3 h35109, len 2, tid 157, master device Goodwe, reading PV2-Power (getUpdate for PV2-Power len 2)
2024.11.09 10:52:16.742 5: Goodwe: QueueRequest called from DoRequest with h35109, qlen 1 from master Goodwe through io device Goodwe
2024.11.09 10:52:16.743 5: Goodwe: ProcessRequestQueue called from Fhem internal timer as queue:Goodwe, qlen 2, request: request: id 247, read fc 3 h35105, len 2, tid 200, master device Goodwe, reading PV1-Power (getUpdate for PV1-Power len 2), queued 0.00 secs ago
2024.11.09 10:52:16.744 5: Goodwe: checkDelays commDelay, last communication with same device was 59.755 secs ago, required delay is 0.1
2024.11.09 10:52:16.744 5: Goodwe: checkDelays sendDelay, last send to same device was 59.815 secs ago, required delay is 0.1
2024.11.09 10:52:16.744 5: Goodwe: checkDelays busDelayRead is not required
2024.11.09 10:52:16.744 5: Goodwe: checkDelays clientSwitchDelay is not relevant
2024.11.09 10:52:16.745 4: Goodwe: ProcessRequestQueue (V4.5.6 - 7.11.2023) qlen 2, sending 00c800000006f70389210002 via 10.0.0.209:502, read buffer empty,
request: id 247, read fc 3 h35105, len 2, tid 200, master device Goodwe, reading PV1-Power (getUpdate for PV1-Power len 2), queued 0.01 secs ago
2024.11.09 10:52:16.745 5: Goodwe: Send called from ProcessRequestQueue
2024.11.09 10:52:16.746 5: DevIo_SimpleWrite Goodwe: 00c800000006f70389210002
2024.11.09 10:52:16.747 5: Goodwe: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2024.11.09 10:52:16.836 5: Goodwe: readFn buffer: 00c800000007f703040000003a mode master, expect response
2024.11.09 10:52:16.837 5: Goodwe: ParseFrameStart called from ReadFn protocol TCP expecting id 247
2024.11.09 10:52:16.837 4: Goodwe: ParseFrameStart (TCP, master) extracted id 247, fCode 3, tid 200, dlen 7 and potential data 040000003a
2024.11.09 10:52:16.837 5: Goodwe: HandleResponse called from ReadFn
2024.11.09 10:52:16.837 5: Goodwe: HandleResponse is now creating response hash, masterHash is HASH(0x55b8dfe92770)
2024.11.09 10:52:16.837 5: Goodwe: HandleResponse is now calling ParseResponse, masterHash is HASH(0x55b8dfe92770)
2024.11.09 10:52:16.838 5: Goodwe: ParseResponse called from HandleResponse, fc 3
2024.11.09 10:52:16.838 5: Goodwe: now parsing response data objects, master is Goodwe relay is undefined
2024.11.09 10:52:16.838 5: Goodwe: ParseDataString called from HandleResponse with data hex 0000003a, type h, adr 35105, op read
2024.11.09 10:52:16.838 5: Goodwe: SplitDataString called from ParseDataString with data hex 0000003a, type h, adr 35105, valuesLen 2, op read
2024.11.09 10:52:16.838 5: Goodwe: CreateDataObjects called from ParseDataString with objList h35105
2024.11.09 10:52:16.839 5: Goodwe: CreateDataObjects sortedList h35105
2024.11.09 10:52:16.839 5: Goodwe: CreateParseInfoCache called
2024.11.09 10:52:16.839 5: Goodwe: CreateDataObjects unpacked 0000003a with n to 0
2024.11.09 10:52:16.840 5: Goodwe: FormatVal for CreateDataObjects formats 0 with format %.2f, result is 0.00
2024.11.09 10:52:16.840 4: Goodwe: CreateDataObjects assigns value 0.00 to PV1-Power
2024.11.09 10:52:16.847 5: Goodwe: ParseDataString created 1 readings, errcode undef
2024.11.09 10:52:16.848 4: Goodwe: HandleResponse done, current frame / read buffer: 00c800000007f703040000003a, id 247, fCode 3, tid 200,
request: id 247, read fc 3 h35105, len 2, tid 200, master device Goodwe, reading PV1-Power (getUpdate for PV1-Power len 2), queued 0.11 secs ago, sent 0.10 secs ago,
response: id 247, fc 3, h35105, len 2, values 0000003a
2024.11.09 10:52:16.848 5: Goodwe: ResetExpect for HandleResponse from response to idle
2024.11.09 10:52:16.849 5: Goodwe: StartQueueTimer called from HandleResponse sets internal timer to process queue in 0.000 seconds
2024.11.09 10:52:16.850 5: Goodwe: DropFrame called from ReadFn - drop 00c800000007f703040000003a
2024.11.09 10:52:16.850 5: Goodwe: readFn end buffer:  mode master, expect idle
2024.11.09 10:52:16.851 5: Goodwe: ProcessRequestQueue called from Fhem internal timer as queue:Goodwe, qlen 1, request: request: id 247, read fc 3 h35109, len 2, tid 157, master device Goodwe, reading PV2-Power (getUpdate for PV2-Power len 2), queued 0.11 secs ago
2024.11.09 10:52:16.851 5: Goodwe: checkDelays busDelayRead is not required
2024.11.09 10:52:16.851 5: Goodwe: checkDelays commDelay, last communication with same device was 0.014 secs ago, required delay is 0.1
2024.11.09 10:52:16.851 5: Goodwe: checkDelays sendDelay, last send to same device was 0.104 secs ago, required delay is 0.1
2024.11.09 10:52:16.851 5: Goodwe: checkDelays clientSwitchDelay is not relevant
2024.11.09 10:52:16.851 4: Goodwe: checkDelays found commDelay not over, set timer to try again in 0.086
2024.11.09 10:52:16.940 5: Goodwe: ProcessRequestQueue called from Fhem internal timer as queue:Goodwe, qlen 1, request: request: id 247, read fc 3 h35109, len 2, tid 157, master device Goodwe, reading PV2-Power (getUpdate for PV2-Power len 2), queued 0.20 secs ago
2024.11.09 10:52:16.941 5: Goodwe: checkDelays clientSwitchDelay is not relevant
2024.11.09 10:52:16.941 5: Goodwe: checkDelays sendDelay, last send to same device was 0.194 secs ago, required delay is 0.1
2024.11.09 10:52:16.941 5: Goodwe: checkDelays commDelay, last communication with same device was 0.103 secs ago, required delay is 0.1
2024.11.09 10:52:16.942 5: Goodwe: checkDelays busDelayRead is not required
2024.11.09 10:52:16.943 4: Goodwe: ProcessRequestQueue (V4.5.6 - 7.11.2023) qlen 1, sending 009d00000006f70389250002 via 10.0.0.209:502, read buffer empty,
request: id 247, read fc 3 h35109, len 2, tid 157, master device Goodwe, reading PV2-Power (getUpdate for PV2-Power len 2), queued 0.20 secs ago
2024.11.09 10:52:16.943 5: Goodwe: Send called from ProcessRequestQueue
2024.11.09 10:52:16.944 5: DevIo_SimpleWrite Goodwe: 009d00000006f70389250002
2024.11.09 10:52:17.009 5: Goodwe: readFn buffer: 009d00000007f70304000001bd mode master, expect response
2024.11.09 10:52:17.009 5: Goodwe: ParseFrameStart called from ReadFn protocol TCP expecting id 247
2024.11.09 10:52:17.010 4: Goodwe: ParseFrameStart (TCP, master) extracted id 247, fCode 3, tid 157, dlen 7 and potential data 04000001bd
2024.11.09 10:52:17.010 5: Goodwe: HandleResponse called from ReadFn
2024.11.09 10:52:17.010 5: Goodwe: HandleResponse is now creating response hash, masterHash is HASH(0x55b8dfe92770)
2024.11.09 10:52:17.010 5: Goodwe: HandleResponse is now calling ParseResponse, masterHash is HASH(0x55b8dfe92770)
2024.11.09 10:52:17.011 5: Goodwe: ParseResponse called from HandleResponse, fc 3
2024.11.09 10:52:17.011 5: Goodwe: now parsing response data objects, master is Goodwe relay is undefined
2024.11.09 10:52:17.011 5: Goodwe: ParseDataString called from HandleResponse with data hex 000001bd, type h, adr 35109, op read
2024.11.09 10:52:17.011 5: Goodwe: SplitDataString called from ParseDataString with data hex 000001bd, type h, adr 35109, valuesLen 2, op read
2024.11.09 10:52:17.012 5: Goodwe: CreateDataObjects called from ParseDataString with objList h35109
2024.11.09 10:52:17.012 5: Goodwe: CreateDataObjects sortedList h35109
2024.11.09 10:52:17.012 5: Goodwe: CreateParseInfoCache called
2024.11.09 10:52:17.013 5: Goodwe: CreateDataObjects unpacked 000001bd with n to 0
2024.11.09 10:52:17.013 5: Goodwe: FormatVal for CreateDataObjects formats 0 with format %.2f, result is 0.00
2024.11.09 10:52:17.013 4: Goodwe: CreateDataObjects assigns value 0.00 to PV2-Power
2024.11.09 10:52:17.024 5: Goodwe: ParseDataString created 1 readings, errcode undef
2024.11.09 10:52:17.024 4: Goodwe: HandleResponse done, current frame / read buffer: 009d00000007f70304000001bd, id 247, fCode 3, tid 157,
request: id 247, read fc 3 h35109, len 2, tid 157, master device Goodwe, reading PV2-Power (getUpdate for PV2-Power len 2), queued 0.28 secs ago, sent 0.08 secs ago,
response: id 247, fc 3, h35109, len 2, values 000001bd
2024.11.09 10:52:17.025 5: Goodwe: ResetExpect for HandleResponse from response to idle
2024.11.09 10:52:17.026 5: Goodwe: DropFrame called from ReadFn - drop 009d00000007f70304000001bd
2024.11.09 10:52:17.026 5: Goodwe: readFn end buffer:  mode master, expect idle
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Parallix

Zitat von: Prof. Dr. Peter Henning am 09 November 2024, 10:09:44
Zitatz.B. durch Angabe in Deiner Signatur
Pardon, aber solche Aufforderungen sollten wir bitte vermeiden.

LG

pah

Wo liegt das Problem?
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.59) und 7591 (8.0) - Goodwe: GW25K-ET (DSP V8 / ARM V9) - BYD: 2 x HVS 5.1 (BMS V3.29-A, BMU V3.23-A) - EnOcean - Z-Wave - FS20/HMS

maci

Habe es nun geschafft Werte zu bekommen wenn unpack auf f ändere.

Allerdings sind das irgendwelche Fantasiewerte, denn ein Wert -8657043456.00 ist sicherlich nicht echt.

Habe es dann versucht damit dass ich die Volt und Ampere Werte je String abfrage, jedoch sind diese fast immer auf 0.00 oder -0.00
oder auch 1.07619722060146e-42
Also nicht relevant.

Derzeit ist das alles noch unbrauchbar?

Ich lese auch immer von Master und Slave Modus. Wie stelle ich diesen ein?
Hat es evtl. damit zu tun?

Gruß
Georg
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

maci

Geschafft, denke ich zumindest
Mit unpack l> bekomme ich Werte die zumindest mal plausibel sind.
Sie passen allerdings immer noch nicht ganz mit den Anzeigen im SEMS Portal zusammen.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

maci

Hallo,

Habe nun einige Attribute definiert, die plausible Werte liefern. Mit diesen kann auch etwas anfangen

attr Goodwe obj-h35105-reading PV1-Power
attr Goodwe obj-h35105-poll 1
attr Goodwe obj-h35105-len 2
attr Goodwe obj-h35105-format %.2f
attr Goodwe obj-h35105-unpack l>
attr Goodwe obj-h35109-reading PV2-Power
attr Goodwe obj-h35109-poll 1
attr Goodwe obj-h35109-len 2
attr Goodwe obj-h35109-format %.2f
attr Goodwe obj-h35109-unpack l>
attr Goodwe obj-h35191-reading Stromproduktion-Gesamt
attr Goodwe obj-h35191-poll 1
attr Goodwe obj-h35191-len 2
attr Goodwe obj-h35191-unpack l>
attr Goodwe obj-h35191-expr $val/10
attr Goodwe obj-h35193-reading Stromproduktion-Heute
attr Goodwe obj-h35193-poll 1
attr Goodwe obj-h35193-len 2
attr Goodwe obj-h35193-unpack l>
attr Goodwe obj-h35193-expr $val/10
attr Goodwe obj-h35206-reading BatterieLadeStromGesamt
attr Goodwe obj-h35206-poll 1
attr Goodwe obj-h35206-len 2
attr Goodwe obj-h35206-unpack l>
attr Goodwe obj-h35206-expr $val/10
attr Goodwe obj-h35209-reading EntladeEnergie
attr Goodwe obj-h35209-poll 1
attr Goodwe obj-h35209-len 2
attr Goodwe obj-h35209-unpack l>
attr Goodwe obj-h35209-expr $val/10

Den Rest wie Summieren auf Jahresenergie und Gesamtenergie mache ich über userReadings

Ich kann mit diesen Werten wieder etwas anfangen, dass ich auch meine Wallbox steuern kann
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Prof. Dr. Peter Henning

OK, allerdings hast Du nicht Attribute definiert, sondern Readings definiert und Attribute gesetzt.

Und noch ein Tipp: Es geht bei Deinen Readingnamen ziemlich durcheinander mit Power, Strom und Energie. Das mag zwar im Moment brauchbar aussehen, aber in 2 Jahren sicher nicht mehr. Also
1. Überlegen, ob man lieber englische Readings hat: power, energy, current, voltage. Oder deutsche: Leistung, Energie, Strom, Spannung. Für die englischen spricht -> siehe unten Punkt 3.
2. Vermeiden von Fehlbenennungen. Es gibt keine "Stromproduktion-heute", Strom ist immer ein Momentanwert. Produziert als Tagessumme wird Energie.
3. Die Aufintegration von power zu energy kann man mit der userReadings-Option integral machen. Ich habe die Genauigkeit davon überprüft, ist sehr gut brauchbar. Die Aufschlüsselung auf Tages- und Monatswert idealerweise mit dem statistics-Modul. Und damit sind wir bei der Frage ob Englisch oder Deutsch. Das statistics-Modul hat nämlich Readingsnamen vordefiniert, die es entsprechend auswertet - energy, power, voltage gehören dazu.

Und noch ein Tipp: Man kann auch bei einem ModBus-Device eine komplexe Statusanzeige realisieren (siehe Bild). Dazu einfach das Attribut stateFormat mit einem Perl-Funktionsausfruf belegen, und darin die ganzen Werte aufsammeln. Und dann als HTML-Tabelle zurückgeben.

LG

pah

maci

Danke für die Rückmeldung.

Werde mir das nochmals etwas zu Gemüte führen

Gruß
Georg
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Parallix

In fhempy sind, z.B. in goodwe.py, die in set_config abgelegten Defaults statisch. Nun frage ich mich, wie sich diese Defaults möglichst elegant ändern lassen, sodass sie jeweils auf dem aktuell eingestellten Wert stehen. Kann mir da jemand weiterhelfen?
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.59) und 7591 (8.0) - Goodwe: GW25K-ET (DSP V8 / ARM V9) - BYD: 2 x HVS 5.1 (BMS V3.29-A, BMU V3.23-A) - EnOcean - Z-Wave - FS20/HMS

maci

Habe meine Reading jetzt umbenannt.
Hier meine Readings, die auch entsprechend richtige Werte liefern.

attr Goodwe obj-h35105-len 2
attr Goodwe obj-h35105-poll 1
attr Goodwe obj-h35105-reading PV1-Power
attr Goodwe obj-h35105-unpack l>
attr Goodwe obj-h35109-len 2
attr Goodwe obj-h35109-poll 1
attr Goodwe obj-h35109-reading PV2-Power
attr Goodwe obj-h35109-unpack l>
attr Goodwe obj-h35191-expr $val/10
attr Goodwe obj-h35191-len 2
attr Goodwe obj-h35191-poll 1
attr Goodwe obj-h35191-reading PV-Energy_Gesamt
attr Goodwe obj-h35191-unpack l>
attr Goodwe obj-h35193-expr $val/10
attr Goodwe obj-h35193-len 2
attr Goodwe obj-h35193-poll 1
attr Goodwe obj-h35193-reading PV-Energy_heute
attr Goodwe obj-h35193-unpack l>
attr Goodwe obj-h35206-expr $val/10
attr Goodwe obj-h35206-len 2
attr Goodwe obj-h35206-poll 1
attr Goodwe obj-h35206-reading Charge-Energy
attr Goodwe obj-h35206-unpack l>
attr Goodwe obj-h35209-expr $val/10
attr Goodwe obj-h35209-len 2
attr Goodwe obj-h35209-poll 1
attr Goodwe obj-h35209-reading Discharge-Energy
attr Goodwe obj-h35209-unpack l>

Ich wollte weiters gerne noch den Batterieladestand lesen.
Aber ich finde keine Adrr. in der Modbus Beschreibung dafür.
Das müsste der SOC Wert sein. Im Sems Portal wird er angezeigt. Aber in Modbus finde ich dazu nichts.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Parallix

Zitat von: maci am 16 November 2024, 15:35:12...
Ich wollte weiters gerne noch den Batterieladestand lesen.
Aber ich finde keine Adrr. in der Modbus Beschreibung dafür.
Das müsste der SOC Wert sein. Im Sems Portal wird er angezeigt. Aber in Modbus finde ich dazu nichts.

Wenn Du den SOC nicht direkt am Speicher abholen willst, sondern am Wechselrichter, dann kommen hierfür folgende Register in Frage:
  • 37007: BMS1 SOC
  • 39005: BMS2 SOC
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.59) und 7591 (8.0) - Goodwe: GW25K-ET (DSP V8 / ARM V9) - BYD: 2 x HVS 5.1 (BMS V3.29-A, BMU V3.23-A) - EnOcean - Z-Wave - FS20/HMS

maci

Zitat von: Parallix am 16 November 2024, 16:25:39Wenn Du den SOC nicht direkt am Speicher abholen willst, sondern am Wechselrichter, dann kommen hierfür folgende Register in Frage:
    • 37007: BMS1 SOC
    [/list]
    Im Modbus Dokument steht bei 37007 zwar SOC als Name, bei remark: First group battery capacity

    Wenn ich diesen Wert abhole kommt ein Wert von 655460.
    Sollte zwar ein % Wert sein, das ist aber ganz sicher keiner.
    39005 gibt es in der Doku nicht.
    Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
    UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
    Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
    Homematic mit HMLan

    maci

    Es hat mir keine Ruhe gelassen, darum habe ich heute nochmals einen Versuch gemacht, den BYD Batterie Ladestatus auszulesen.
    Von der Batterie selbst kann ich es nicht lesen, da diese nicht im Netz hängt. Mein Installateur hat gesagt, die Chinesen müssen nicht alles wissen. ;)

    habe es mal mit 37007 versucht (bei 37007 steht im Goodwe Modbus Dokument "SOC  First Group battery capacity")

    habe mal folgende Readings angelegt:
    attr Goodwe obj-h37007-reading Batt-SOC
    attr Goodwe obj-h37007-poll 1
    attr Goodwe obj-h37007-len 2
    attr Goodwe obj-h37007-unpack f>

    Auf die unpack f> Angabe bin ich durch Zufall gekommen, denn bei den anderen Readings habe ich unpack l>.
    Wenn ich hier auch unpack l> setze bekomme ich eine Wert 655460. Das ist absolut etwas anders.

    Mit unpack f> bekomme auch einen Wert der halbwegs plausibel ist, denn mein Batteriestatus beträgt derzeit ca. 10%
    Im Reading steht: 9.18495091426345e-40
    Ich frage mich nur was das für eine Zahl ist?
    Wie soll ich diese ausgeben, wenn es ein tatsächlicher Wert ist?
    Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
    UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
    Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
    Homematic mit HMLan

    Prof. Dr. Peter Henning

    Zitat von: maci am 21 November 2024, 18:56:109.18495091426345e-40
    = 0,000000000000000000000000000000000000000918495091426345

    Also im Rahmen physikalisch erzielbarer Genauigkeit NULL.

    Damit scheidet die direkte Interpretation des Registers als Gleitkommazahl aus.

    Ich habe nicht die Zeit, da in der Spezifikation herumzugraben. Vlt. kannst Du das mal posten:
    1. Was wird als Registerlänge angegeben? Wirklich 2?
    2. Welchen Wert erhält man, wenn der Ladezustand auf einen anderen Wert erhöht wird?

    LG

    pah