Hallo zusammen,
ich würde mich sehr über ein Modul freuen mit dem ich meinen BMW über FHEM auslesen und evtl. sogar steuern könnte...
Bei meiner Grundlagenforschung bzgl API hab ich folgende Dinge gefunden:
https://github.com/frankjoke/iobroker.bmw
https://github.com/Lyve1981/BMW-ConnectedDrive-JSON-Wrapper
https://github.com/edent/BMW-i-Remote
Für Testzwecke würde ich mich natürlich jederzeit zur Verfügung stellen. ;)
Gruß Thomas
Hi,
ich hab das hier gefunden. Wenn ich jetzt nur PHP könnte :-(
https://www.symcon.de/forum/threads/36747-BMW-connected-drive-in-IPS/page12
Da sind diverse Codingvorschläge.
Gibt es nicht jemanden, der das mal in FHEM "übersetzten" kann und auch Lust dazu hat :-)
Lg, tschimi
Schau mal hier: https://www.active-tourer-forum.de/index.php/Thread/1231-Auslesen-der-BMW-Daten-mit-FHEM-225xe/
Dort gibt es ein fertiges FHEM-Modul.
Danke ♥
auch von mir danke.
super arbeit dort
Gesendet mit Tapatalk
ich wollte es hier auch schon online stellen, habs aber auf grund der "quick and dirty" implemtierung erst mal nur im BMW Forum gelassen. :-D
Dachte grad, ich zeigs euch mal, jetzt hab ich eben den link auf meinen Beitrag dort gefunden. :-D
Ich will in nächster Zeit evtl. mal aufräumen, ein Modul draus machen und die Callbacks der blockierenden curl-anfragen mal optimieren. :-)
Vielleicht habt ihr ja Ideen dazu.
mfg
Rumbel
Hallo.
Da das Modul eher für den 225 geschrieben wurde, und für den i3 nur bedingt funktioniert, habe ich einiges abgeändert.
Um aber die scoreList u. characteristicList auszulesen, gab mir der Modulersteller den Tip folgende zeilen
sub BMW_ExtractFromArray
{
my ($Array,$Name,$Field,$attrName) = @_;
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 "---";
}
wie folgt zu ergänzen
my ($Array,$Name,$Field,$Name) = @_;
if (($Name eq "") or !defined($Name))
{
$Name = 'name';
damit ich folgendes auslesen kann
{"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}]}
leider werden mir dann alle werte mit 0 beschrieben.
ich habe leider keine Ahnung was damit wie ausgelesen wird.
im speziellen fall gehts um das attribut "attrName" , was in den anderen Listen "name" gelistet wird.
Hat jemand eine Erklärung für mich, damit ich es selbst bereinigen/ergänzen könnte?
LG
Würde mich auch über eine Modulerweiterung für den i3 freuen. :)
Habe mich selber schon versucht, bin aber an einigen Stellen gescheitert.
Hier gibt es auch etwas dazu: https://www.goingelectric.de/forum/bmw-i3-allgemeines/bmw-i3-mit-fhem-verbinden-t36664.html (https://www.goingelectric.de/forum/bmw-i3-allgemeines/bmw-i3-mit-fhem-verbinden-t36664.html)