Autor Thema: BMW Connected  (Gelesen 1443 mal)

Offline Humpelpumpel

  • New Member
  • *
  • Beiträge: 6
BMW Connected
« 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





Offline tschimi

  • New Member
  • *
  • Beiträge: 19
Antw:BMW Connected
« Antwort #1 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
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Willi

  • Sr. Member
  • ****
  • Beiträge: 594
Antw:BMW Connected
« Antwort #2 am: 12 April 2018, 17:27:02 »
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline Humpelpumpel

  • New Member
  • *
  • Beiträge: 6
Antw:BMW Connected
« Antwort #3 am: 12 April 2018, 23:04:27 »
Danke ♥

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1292
Antw:BMW Connected
« Antwort #4 am: 02 Dezember 2018, 10:39:46 »
auch von mir danke.
super arbeit dort

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433, REV, Unitec, FLS u. ELRO Funksteckdosen
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Offline Rumbel

  • New Member
  • *
  • Beiträge: 21
Antw:BMW Connected
« Antwort #5 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
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 ;-)
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1292
Antw:BMW Connected
« Antwort #6 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
gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433, REV, Unitec, FLS u. ELRO Funksteckdosen
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

 

decade-submarginal