BMW connected drive in IPS?

Ich habe ein kleines Skript genutzt und einfach über die korrekte max. Ladekapazität (welche in meinem Falle nach 50.000km noch 28,6kWh beim 94Ah beträgt) sowie dem SoC / Batterie Kapazität, welche ebenfalls korrekt ist, rechnerisch ermittelt.

Passt auch. Wären also bei Deinem Screenshot 20,06kWh.

VG

könnt ihr mal im debug schauen, ob der vermisste Wert irgendwo in den Daten enthalten ist? Ihr könnt den Wert sicherlich einfach identifizieren

danke
demel

In dem Debug welchen ich Dir gesendet habe ist der gesuchte Wert 17 (kWh).

Mittleweile habe ich auf 22kWh nachgeladen und habe einen weiteren Debug gestartet. Beide Werte konnte ich in keinem Array finden…

VG

Ihr mein doch „maximal Ladekapazität“, oder?

Das ist doch socMax (bzw socmax oder soc_max - die Svhreibweise hatte sich ein paar mal geändert.
Und das war in deinem Debug

TXT: 18.08.2021, 19:35:24 | SendBMWAPI | response=...,"soc":60.0,"socmax":28.359999,...

wenn der Wert falsch ist wäre das natürlich blöd, weil das der einzige der Art ist.

Oder sitze ich da einer Fehlannahme auf?

Gruß
demel

Der „soc“ ist ein Prozent-Wert, „socmax“ ggf. kWh. In deinem Beispiel

TXT: 18.08.2021, 19:35:24 | SendBMWAPI | response=…,„soc“:60.0,„socmax“:28.359999,…

Müsste also die maximale Ladekapazität bei ca. 47,26kWh liegen.

Die „Batterie-Kapazität“ stellt bei mir korrekt den SoC da. Scheinbar schreibst du den SoC auch in die aktuelle Ladekapazität. Dort gehört aber nicht der %-Wert (bei mir eben die 68%) rein, sondern die kWh. Das wären bei mir im obigen BMW Beispiel 9,2kWh (=100% von 9.2; die 17.8kWh maximale Ladekapazität sind Unsinn; liegt ggf. am Hybrid).
Beim Mini SE (BEV) wären es 20,06kWh aktuelle Ladekapazität (68% von 29,5kWh).

Hallo,

ich hab keine Ahnung von e-Auto, daher muss ich dumm fragen.

die Rechnung verstehe ich nicht 60% von 28.359999 sind durch nicht 47.26.

Das mit die E-Werte habe ich nur „blind“ übernommen / angepasst. Möglicherweise hat sich das ja auch in der API geändert.

die Variable

  • „aktuelle Ladekapazität“ mit dem Ident bmw_soc bekommt den Inhalt der Variable soc aus den Daten
  • „maximale Ladekapazität“ mit dem Ident bmw_socMax bekommt den Inhalt der Variable socmax aus den Daten
  • soc_hv_percent gibt es auch in den Daten, wird aber nicht übernommen (hier der Wert 60)

Was mich wundert ist, das es ja bisher anscheinend richtig war ?!?

Was sollte ich denn jetzt genau machen, sollen Variablen anders heissen/bezeichnet werden?

gruß
demel

ich hab keine Ahnung von e-Auto, daher muss ich dumm fragen.

Ist ja kein Problem. Wir sind ja dankbar, das du es trotzdem versuchst :wink:

Der „SoC“ steht für „State of Charge“. Damit ist die aktuelle Batterieladung in % gemeint.

Somit ist

  • „aktuelle Ladekapazität“ mit dem Ident bmw_soc bekommt den Inhalt der Variable soc aus den Daten

nicht richtig, da das Modul „aktuelle Ladekapazität“ mit kWh (absolut) anzeigt. SoC ist aber immer % (relativ).

  • „maximale Ladekapazität“ mit dem Ident bmw_socMax bekommt den Inhalt der Variable socmaxaus den Daten

Was der „bmw_socMax“ sein soll ist mir ehrlich gesagt nicht ganz klar. Aber auch hier vermute ich eben einen %-Wert. Interessant ist, das beim Mini SE hier 29.5 raus kommt, was genau der Akkugröße in kWh entsprechen würde, aber bei meinem BMW 530e Hybrid eine 17.8, welche ich überhaupt nicht zuordnen kann (dessen Akku ist nur ca. 9.2kWh groß).

  • soc_hv_percent gibt es auch in den Daten, wird aber nicht übernommen (hier der Wert 60)
    Das könnte der SoC der HV Batterie ohne „BMW Anpassungen“ sein. Sagt mir aber nichts. Vielleicht sagt sich BMW: Den SoC zeigen wir dem User, den SoC_HV nutzen wir intern. Keine Ahnung.

Ich denke wir müssen mal klären, was die (maximale) Ladekapazität überhaupt sein soll, bevor wir was ändern. bin ja auch ein Spezi :wink:
Ich schaue bei Gelegenheit auch mal genauer in meine Daten. Vielleicht erkenne ich da was.

Also ich habe mir jetzt mal mein Debug log angeschaut. Wert „soc“ passt sowohl beim Hybrid als auch BEV genau zum SoC = „Batterie-Kapazität“. Ich persönlich würde das Attribut im Modul eher „aktueller SoC“ oder „aktueller Batterie-Ladestand“ nennen.

Mit dem „socmax“ kann ich irgendwie nichts anfangen. Beim BMW 17.84 und beim Mini 29.98 (also jetzt mehr als gestern, habe aber gar nicht geladen)… das passt für mich zu keinem mir klaren Wert.

Die Brutto-Batteriegröße steht übrigens in " battery_size_max" (die SoC werden auf die Netto-Batteriegröße (also die zum Fahren verfügbare Batteriegröße, die immer kleiner als die Brutto ist, bezogen)). Eine Netto-Batteriegröße finde ich nicht.

Ich weiß ja nicht, wie andere das sehen. Aber ich würde „aktuelle Ladekapazität“ und „maximale Ladekapazität“ rausnehmen. Die machen in der jetzigen Form keinen Sinn, wenn wir sich nicht erklären oder im Debug erkennen können. Es sei denn, die haben bei Verbrennern eine valide Bedeutung. Und ggf. kann man ja ein neues Attribut „Brutto Batteriegröße“ (kWh) aufnehmen (da diese <> „maximale Ladekapazität“ ist).

Aber: Aktuell klappt die Aktualisierung gar nicht mehr, auch nicht in den Apps. Ist das bei euch auch so? Meine Fahrzeuge sind aus den Apps verschwunden…

ja, ist bei mir auch so, war gerade dabei die RemoteService auf Trab zu bringen, aber gibt laufend HTTP-Error 500 (also ein Server-Error)
Da aber die original BMW-App auch erzählt, das der Service nicht geht, lehne ich mich ganz entspannt zurück :grinning:

Ja, das wäre sehr gut, wenn alle, die was mit E-Autos haben, ein Statement abgeben würden.

definitiv nicht, diese Daten kann ich für meine Diesel gar nicht abrufen

demel

Also bei mir hat die max. Ladekapazität eine wichtige Bedeutung, diese sagt mir aus, wieviel meiner max. Nettobatteriegröße noch tatsächlich vorhanden ist. Dies nennt man im Fachjargon SoH (State of Health). Dieser ist hier als absolute Größe in kWh angegeben und stimmt im Beispiel von meinem i3 auch exakt mit den Daten im i3, welche man dort zudem erst aufwändig im Geheimmenü des Fahrzeugs abrufen muss. Bei Dir passt der Wert des SoH (maximale Ladekapaziät) im Mini ebenfalls mit 29,5kWh (kein Prozentwert!, sondern der Absolutwert in kWh), dieser hat den gleichen Akku wie mein i3 verbaut (bei mir aufgrund der Alterung noch 28,6). Der Wert ist ein wichtiger Indikator für die Alterung des Akkus, auch schwankt er im Sommer und Winter, da der Akku im Winter weniger Kapazität hat. Zudem berechne ich über den Wert der maximalen Ladekapazität meine aktuelle Ladekapazität in kWh, also unser gesuchter Wert.
Also als Beispiel um es zu verdeutlichen:
BMW i3 oder Mini SE haben etwa 29,5kWh netto/nutzbar im Neuzustand und Sommer. Brutto sind es 33kWh.
Max. Ladekapa. (SoH) meines i3 = 28,6kWh (ca.3% Degradation/ Alterung)
Max. Ladekapa. (SoH)des Mini SE = 29,5Wh (0% Degradation/ Alterung)

Aktuelle Ladekapazität bei SoC von bsp. 60%:

BMW i3 : SoH * SoC = 28,6kWh * 60% = 17,16kWh
Mini SE: SoH * SoC = 29,5 * 60% = 17,7kWh

Dieser Wert kam zuvor immer aus dem Modul über die API, jetzt errechne ich mir diesen einfach wie beschrieben über ein Skript.

Warum dieser Wert beim Hybrid allerdings falsch angegeben wir ist mir schleierhaft. 17,8kWh ergibt da keinen Sinn. Aber bei den BEV passt es und der Wert ist mir auch sehr wichtig, also bitte nicht rausnehmen:-)

Daten kommen übrigens wieder alle zuverlässig!

VG Heiko

1 „Gefällt mir“

@obala1983:

in deinem Debug, den du mir zugeschickt hattest, fehlen einige Abrufe.
kannst du noch mal eine kompletten Abruf aufzeichnen und mir mailen? Dazu muss du sicherlich die Anzahl der Zeilen in Debugfenster deutlich erhöhen.

Ich wollte mal alle Felder herausholen, die ggfs. mit dem Thema zu tun haben, damit wir zusammen erarbeiten können, was wir genau mit welchem Feld machen und mit welcher Bedeutung / Bezeichnung.

danke
demel

Ich meine den Wert im Debug gefunden zu haben:

Im Array ist nachfolgender Wert unser gesuchter (26,579kWH Aktuelle Ladekapazität):

Über die Berechnung von SoC und SoH über den Umweg komme ich auch auf die 26,6kWh (28,6 x 0,93%)

Debug sende ich dennoch nochmal.

VG

Hallo @obala1983

das sind die Daten aus deinem Abruf, die irgendwie mit Elektro zu tun haben könnten.

Was ausgewertet wird steht hinter , die Bezeichnung ist der ObjectIdent

GetVehicleStatus

    [vehicleStatus] => stdClass Object
        (
            [chargingConnectionType] => CONDUCTIVE
            [chargingInductivePositioning] => NOT_POSITIONED
            [chargingLevelHv] => 93
            [chargingStatus] => CHARGING
            [chargingTimeRemaining] => 35
            [connectionStatus] => CONNECTED
            [maxRangeElectric] => 200
            [remainingFuel] => 0                              -> bmw_tank_capacity
            [remainingRangeElectric] => 184
            [remainingRangeFuel] => 0 
            [singleImmediateCharging] =>
        )

GetDynamicData

    [attributesMap] => stdClass Object
        (
            [battery_size_max] => 35.82
            [beChargingLevelHv] => 93                         -> bmw_charging_level
            [beEnergyLevelHv] => 26.382 
            [beMaxRangeElectric] => 200
            [beRemainingRangeElectric] => 184                 -> bmw_remaining_electric_range
            [beRemainingRangeFuel] => 0                       -> bmw_remaining_range
            [charging_connection_type] => conductive
            [chargingHVStatus] => CHARGING
            [chargingLevelHv] => 93
            [charging_status] => CHARGINGACTIVE               -> bmw_charging_status
            [chargingTimeRemaining] => 35                     -> bmw_charging_end
            [connectorStatus] => CONNECTED                    -> bmw_connector_status
            [kombi_current_remaining_range_fuel] => 0
            [lastChargingEndReason] => UNKNOWN
            [lastUpdateReason] => CHARGINGSTARTED
            [lsc_trigger] => CHARGINGSTARTED
            [overall_energy_consumption] => 26.382
            [remaining_charging_time_minutes] => 35
            [remaining_fuel] => 0
            [remaining_range] => 0
            [single_immediate_charging] => false
            [soc_hv_percent] => 84
        )

GetNavigationData

    [auxPowerRegular] => 1
    [soc] => 93                                               -> bmw_soc
    [socmax] => 28,56                                         -> bmw_socMax

vielleicht kannst Du bzw die anderen die Daten in Bezug setzen

demel

Das könnte passen (auch wenn mich die Schwankung beim SoH wundert).

Also

  • [soc] => ‚aktueller Batterie-Ladestand (SoC)‘ in % (aktuell ‚Batterie-Kapazität‘)
  • [socMax] => ‚Netto-Batteriekapazität (SoH)‘ in kWh (aktuell ‚maximale Ladekapazität‘)
  • [beEnergyLevelHV] => ‚aktueller Batterie-Ladestand (SoC)‘ in kWh (aktuell „aktuelle Ladekapazität“)
  • [battery_size_max] => ‚Brutto-Batteriekapazität‘ in kWh (neu)

ggf. sollte man den [socMax]/SoH bei Hybriden gar nicht auswerten, sofern andere den falschen bei Hybriden bestätigen können.

Ich wäre dafür, die Attribute umzubenennen, da sie so deutlich verständlicher benannt wären.

zum Verständnis: was ist der Unterschied von Ladestand und Ladezustand?

demel

Ladezustand kenne ich nicht. Ich kenne nur den Ladestand=SoC und in dem Modul den Ladekabel-Status und Ladezyklus-Status.

Oh je, wer lesen kann ist klar im Vorteil, sorry :cry: Vielleicht sollte ich doch meine Brille putzen?

[battery_size_max] => 35.82 ->max.Bruttokapazität des Akkus (nicht nutzbar)
[beChargingLevelHv] => 93 ->Aktueller Ladezustand in % in Bezug auf die max. Nettokapazität (SoH)
[beEnergyLevelHv] => 26.382 ->Aktuelle Ladekapazität in kWh (geht auch SoH*SoC)
[beMaxRangeElectric] => 200 ->Aktuell max. Reichweite
[beRemainingRangeElectric] => 184 ->verbleibende Reichweite (gemäß akt. Ladezust.)
[beRemainingRangeFuel] => 0 → da rein BEV ohne Tank somit 0Liter Benzin
[charging_connection_type] => conductive ->?
[chargingHVStatus] => CHARGING → Lädt aktuell
[chargingLevelHv] => 93 ->aktuelle Ladezustand in %
[charging_status] => CHARGINGACTIVE → Ladung aktiv
[chargingTimeRemaining] => 35 → verbleibende Zeit in Min. bis Vollladung
[connectorStatus] => CONNECTED → Ladekabel angesteckt
[kombi_current_remaining_range_fuel] => 0 ->reines BEV ohne Tank somit 0 Liter Benzin
[lastChargingEndReason] => UNKNOWN ->?
[lastUpdateReason] => CHARGINGSTARTED → Vermutlich der Trigger zur Datenaktualisierung an BMW Server
[lsc_trigger] => CHARGINGSTARTED
[overall_energy_consumption] => 26.382 → Gesamter Energiebedarf in kWh über die gesamte Fahrtstrecke, Wert ergibt keinen Sinn! Wert entspricht akt. Ladekapazität in kWh
[remaining_charging_time_minutes] => 35 ->verbleibende Zeit in Min. bis zur vollst. Ladung
[remaining_fuel] => 0 → BEV kein Benzintank
[remaining_range] => ->0 BEV kein Benzintank (verbl. Reichweite Benzin)
[single_immediate_charging] => false ->?
[soc_hv_percent] => 84 ->? 84% auch unplausibel Ladezustand bei 93%

[auxPowerRegular] => 1
[soc] => 93 → Aktueller Ladezustand in % (SoC)
[socmax] => 28,56 → Max Netto Ladekapazität in kWh (SoH, schwankt sinngemäß bei veränderten Bedingungen wie Alterung, Aussentemperatur, zudem sollte man das BMS ab und zu neu justieren indem man einen vollen Ladehub von 0% (komplett leer fahren) bis 100% vornimmt.)

Hilft das so weiter?

VG

Ich habe mal eure Vorschläge / Informationen für mich aufbereitet

Unverändert

Feld: GetDynamicData.beRemainingRangeElectric
Variablen-Ident: bmw_remaining_electric_range
Bezeichnung: "Elektrische Reichweite" in km

Feld: GetDynamicData.beRemainingRangeFuel (nur Hybrid)
Variablen-Ident: bmw_remaining_range
Bezeichnung: "Tankreichweite" in km

Feld: GetDynamicData.charging_status
Variablen-Ident: bmw_charging_status
Bezeichnung: "Ladezyklus-Status"

Feld: GetDynamicData.chargingTimeRemaining
Variablen-Ident: bmw_charging_end
Bezeichnung: "Ladezyklus-Ende"

Feld: GetDynamicData.connectorStatus
Variablen-Ident: bmw_connector_status
Bezeichnung: "Ladekabel-Status"

Ändern

Feld: GetDynamicData.chargingLevelHv
Variablen-Ident: bmw_charging_level
Bezeichnung alt: "Batterie-Kapazität" in % 
Bezeichnung neu: "aktueller Batterie-Ladestand (SoC)" in %

Feld: GetNavigationData.socmax
Variablen-Ident: bmw_socMax
Bezeichnung alt: "maximale Ladekapazität" in kWh  
Bezeichnung neu: "maximale Netto-Ladekapazität (SoH)" in kWh

Hinzufügen

Feld: GetDynamicData.battery_size_max
Variablen-Ident: bmw_battery_size
Bezeichnung: "Brutto-Batterіekapazität" in %

Löschen

Feld: GetNavigationData.soc
Variablen-Ident: bmw_soc

da sind natürlich nur die für Elektro/Hybrid relevanten Variablen, die sollten aber nun vollständig sein oder fehlt noch etwas?

gruß
demel

1 „Gefällt mir“

Hallo,

aktuell kommen seit gestern wieder keine Daten an.