BMW Connected

Begonnen von Humpelpumpel, 27 Dezember 2017, 17:19:28

Vorheriges Thema - Nächstes Thema

Humpelpumpel

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





tschimi

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

Willi

FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

Humpelpumpel


satprofi

auch von mir danke.
super arbeit dort

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Rumbel

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
Fhem auf Raspberry Pi 3 mit HMLAN + viel HomeMatic-Zeugs / VU+ duo2 / Webcam an Synology Surveillance Station auf DS213+ / LD382A LED Module /Netatmo Wetterstation ... und mehr kommt sicher bald ;-)

satprofi

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
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

HelixOWL

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