FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: Humpelpumpel am 27 Dezember 2017, 17:19:28

Titel: BMW Connected
Beitrag von: Humpelpumpel am 27 Dezember 2017, 17:19:28
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




Titel: Antw:BMW Connected
Beitrag von: tschimi am 05 Februar 2018, 09:00:33
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
Titel: Antw:BMW Connected
Beitrag von: Willi am 12 April 2018, 17:27:02
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.
Titel: Antw:BMW Connected
Beitrag von: Humpelpumpel am 12 April 2018, 23:04:27
Danke ♥
Titel: Antw:BMW Connected
Beitrag von: satprofi am 02 Dezember 2018, 10:39:46
auch von mir danke.
super arbeit dort

Gesendet mit Tapatalk

Titel: Antw:BMW Connected
Beitrag von: Rumbel am 05 Dezember 2018, 17:34:42
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
Titel: Antw:BMW Connected
Beitrag von: satprofi am 10 Dezember 2018, 10:38:46
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
Titel: Antw:BMW Connected
Beitrag von: HelixOWL am 26 Dezember 2018, 21:34:05
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)