Auslesen der BMW-Daten mit FHEM (225xe)
-
-
erfreulicherweise werden die dummys autom. angelegt.
ja stimmt, hatte ich ja mal ergänzt weil es mich selbst genervt hat.
(ein feature, welches meine nerven schont, ist das beste feature!)freut mich, dass es klappt.
ich ergänz den teil, dann hab ich es beim nächsten release wieder drin
-
was ich noch nicht verstehe sind die location daten.
die sind bei mir leer. welche daten sollten bei bmw abgerufen werden?
finde auch nichts derartiges unter connecteddrive -
hast du am auto die GPS Position freigegeben?
-
ja, sehe auch wo sich fahrzeug befindet in der map
-
dann ist bmw wohl wieder sehr kreativ mit den daten... mal hier, mal da, mal umbenannt.
ich weiß leider nur, dass unter gps_lng und gps_lat die Daten beim 225xe stehen. (in der /api/vehicle/dynamic/v1/VIN?offset=-60 Abfrage)
Zusätzlich bekommt das Webinterface auch Positionsdaten aus /vehicle/navigation/v1/das ruf ich aber nicht ab, da für den 225xe nichts (neues) relevantes drin steht
ist in deiner "?offset=-60" Abfrage keine Position drin?
-
Hallo.
Habe entdeckt das die "xxList" nur immer den ersten Wert einträgt. Der rest wird ignoriert.
Hast du eine Idee?Code{"communitySwitch":false,"modelType":"I3","scoreList":[{"attrName":"AVERAGE_ELECTRIC_CONSUMPTION","attrUnit":"KWH_PER_100KM","minValue":0.0,"maxValue":40.0,"lifeTime":17.8},{"attrName":"AVERAGE_RECUPERATED_ENERGY_PER_100_KM","attrUnit":"KWH_PER_100KM","minValue":0.0,"maxValue":20.0,"lifeTime":3.0},{"attrName":"CUMULATED_ELECTRIC_DRIVEN_DISTANCE","attrUnit":"KM","minValue":0.0,"maxValue":59.0,"lifeTime":29.0},{"attrName":"LONGEST_DISTANCE_WITHOUT_CHARGING","attrUnit":"KM","minValue":0.0,"maxValue":170.0,"lifeTime":29.0}],"lastTripList":[{"name":"LASTTRIP_DELTA_KM","unit":"KM","lastTrip":"29.0"},{"name":"ACTUAL_DISTANCE_WITHOUT_CHARGING","unit":"KM","lastTrip":"--"},{"name":"AVERAGE_ELECTRIC_CONSUMPTION","unit":"KWH_PER_100KM","lastTrip":"17.8"},{"name":"AVERAGE_RECUPERATED_ENERGY_PER_100_KM","unit":"KWH_PER_100KM","lastTrip":"3.0"},{"name":"CUMULATED_ELECTRIC_DRIVEN_DISTANCE","unit":"KM","lastTrip":"29.0"}],"lifeTimeList":[],"efficiencyQuotient":39,"characteristicList":[{"characteristic":"TOTAL_CONSUMPTION","quantity":3},{"characteristic":"AUXILIARY_CONSUMPTION","quantity":0},{"characteristic":"DRIVING_MODE","quantity":0},{"characteristic":"ACCELERATION","quantity":3},{"characteristic":"ANTICIPATION","quantity":4}]}
-
oh ja... BMW hat da echt Pappnasen am Werk...
Bei der lifteTimeList und lastTripList haben die Parameter nen "name"
Bei der scoreList ist es "attrName" (ja, wilder Smiley Spam ist hier angebracht!)Lösung:
das hier ersetzen
Code
Alles anzeigensub BMW_ExtractFromArray { my ($Array,$Name,$Field,$Name) = @_; if (($Name eq "") or !defined($Name)) { $Name = 'name'; } BMW_Log "BMW_ExtractFromArray\n" if $DEBUG == 2; BMW_Log Dumper($Array) if $DEBUG == 2; BMW_Log "for...\n" if $DEBUG == 2; BMW_Log Dumper @{$Array}[1] if $DEBUG == 2; # loop through array and find what we are searching for for (my $i=0;$i<=$#{$Array};$i++) { if (@{$Array}[$i]->{$Name} eq $Name) { return @{$Array}[$i]->{$Field}; } } return "---"; }
das hier ebenfallsCodeelsif ($Index eq "scoreList") #i3 { $Value = BMW_ExtractFromArray($ValueHash->{$Index},$Name,"lifeTime","attrName"); }
ungetestet
-
Danke, werds testen.
LG
-
klappt leider nicht.
muss mich in diese Materie einarbeiten