Auslesen der BMW-Daten mit FHEM (225xe)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Hallo Rumbel

      Ich integrierte die neuste Version vom 20.4.2018 V0.4 Beta.
      Leider funktioniert die Applikation bei mir nicht korrekt, wenn ich nun die Datei 99_myBMWUtils.pm mit dem Editor öffne und kompiliere erhalte ich folgenden Syntaxfehler:

      syntax error at 99_myBMWUtils.pm line 1098, near "sub myBMWUtils_Setup()"
      syntax error at 99_myBMWUtils.pm line 1107, near "}"

      Wenn ich die Sequenz 1,2+,1+ nach der } in der Zeile 1092 auskommentiere läuft der Kompiler ohne Fehler durch und die Applikation funktioniert soweit ich das beurteilen kann. Ich vermute jedoch dass das nicht die definitive Lösung ist.
      Im Abschnitt 'Location' erhalte ich keine Daten.
      Das Senden von Commands z.B. Türen ver-, entrieglen funktioniert, gleichzeitig erhalte ich vom BMW CD ein Bestätigungs-Mail mit der Info, dass ein Remote Service entriegeln oder verriegeln der Türen erfolgte.

      Vielen Dank für deine Hinweise.

      ""
    • Schau ich mir heute abend an.
      Evtl hab ich beim kopieren einen Fehler gemacht.
      Die Datei lösch ich sicherheitshalber im alten Thread, falls ich den noch bearbeiten darf

      BMW 225xe Sport Line Atlantikgrau seit 14.11.2017 :D
      BMW X1 Bj. '16 weiß/DRK mit getarnter Sondersignalanlage (5-10 Tage/Monat Dienst)
      Audi A4 Avant bj 2006 bis 11.2017 / Fiat Tipo Bj '97 bis 2007 /Honda Civic Bj. '87 bis 2003

    • Hallo Rumbel,

      vielen Dank schon mal für die Geniale Anbindung, allerdings will es bei mir nicht so recht,
      ich bekomme immer folgenden Fehler:

      Quellcode

      1. 2018-04-26_18:27:11 BMW_CurrentState INFO: Bearer Not stored.
      2. 2018-04-26_18:27:14 BMW_CurrentState ERROR: Request Bearer failed
      kannst du mir da irgendwie weiterhelfen?
    • Da stimmt wohl was mit dem Login nicht.

      Bisher ist aufgefallen, dass es kein & oder # enthalten darf.
      vielleicht gehen hier weitere Zeichen nicht auf diesem Weg.

      Ich muss auch mal schauen, was das Problem mit den & und # ist. Aktuell zeige ich nur eine Warnung an, wenn eines der Zeichen enthalten ist.

      BMW 225xe Sport Line Atlantikgrau seit 14.11.2017 :D
      BMW X1 Bj. '16 weiß/DRK mit getarnter Sondersignalanlage (5-10 Tage/Monat Dienst)
      Audi A4 Avant bj 2006 bis 11.2017 / Fiat Tipo Bj '97 bis 2007 /Honda Civic Bj. '87 bis 2003

    • wird ergänzt.

      Klappt der Rest? Evtl ist aktuell ein Fehler drin... Korrigiere ich zeitnah

      BMW 225xe Sport Line Atlantikgrau seit 14.11.2017 :D
      BMW X1 Bj. '16 weiß/DRK mit getarnter Sondersignalanlage (5-10 Tage/Monat Dienst)
      Audi A4 Avant bj 2006 bis 11.2017 / Fiat Tipo Bj '97 bis 2007 /Honda Civic Bj. '87 bis 2003

    • sehr cool! danke für die viele Arbeit, die dahinter steckt.

      Ich habe das für meinen 320d BMW mit ConnectedDrive installiert.
      Klima, Licht, Hupe, Öffnen und Verriegeln funktioniert.
      Es werden auch (irgendwelche) Daten ausgelesen, aber nicht so ganz die richtigen.

      Mir geht es im Wesentlichen um die GPS-Position. Die scheint sich nicht automatisch zu aktualisieren.
      Wenn ich in der BMW-App das Fahrzeug orte und dann auf das Update warte, bekomme ich die richtigen koordinaten.
      Wenn ich den ersten Schritt weg lasse, bekomme ich immer die Koordinaten der letzten Ortung.

      Frage: kann man das "Fahrzeug orten" aus der App mit einbauen?

      Viele Grüße,
      Rainer

    • hi rainer,

      ich hab schon gemerkt, dass BMW das bei jedem Fahrzeug anders macht.
      der i3 hat auch andere Kommandos und andere Daten... :D

      ich weiß nicht, was beim Orten gesendet wird.
      Unser 225xe schickt bei jedem Parken, Laden, Abschließen die Position an den Server und die ruf ich auch ab.
      Extra "orten" muss man da nicht.

      Wenn du mir das Kommando schicks, kann ich schauen ob ich irgendwie den Ortungs-Teil ergänze.
      Irgendwann muss ich eh ne typ-abfrage einbauen und für den i3 einiges anders machen ;)

      BMW 225xe Sport Line Atlantikgrau seit 14.11.2017 :D
      BMW X1 Bj. '16 weiß/DRK mit getarnter Sondersignalanlage (5-10 Tage/Monat Dienst)
      Audi A4 Avant bj 2006 bis 11.2017 / Fiat Tipo Bj '97 bis 2007 /Honda Civic Bj. '87 bis 2003

    • Theoretisch kannst du folgendes testen:

      1. Über das WebInterace von BMW einen Befehl senden (bsp Hupen)
      2. in Fhem folgendes eingeben {BMW_CommandUpdate();;} (s0 10-20 sekunden nach dem Kommando)
      3. Öffne http://<FHEM_IP:PORT>/fhem?detail=BMW_remoteServiceType
        hier sollte im state dann der genaue Text dazu stehen. Evtl wird (falls identisch zum 225xe) durch die eventMap was übersetzt
        bsp: RHB:Hupe ersetzt RHB durch Hupe. :)


      Wenn du alles mit deinem Auto durch-testest und mir die Ergebnisse sagst, kann ich das evtl ergänzen.
      Dazu muss ich aber erst das auslesen des Fahrzeug-Typs implementieren, das fehlt bisher noch


      Nachtrag: das Auslesen des Typs hat auf Anhieb geklappt.
      Wenn ihr mir die andereN Typen nennen könnt, ergänze ich das gerne bzw schau, dass jeweils nur die relevanten Daten ausgelesen werden.

      bitte schickt mir daher per PM die typ-infos und die daten, die das webinterface dafür aufruft
      Anleitung zum Auslesen der Daten im Webinterface (Google Chrome)

      1. bmw-connecteddrive.de/app/de/index.html#/cockpit öffnen
      2. Anmelden
      3. F12 drücken
      4. auf Status drücken
      5. im Debug-Fenster auf "Network" drücken
      6. folgende Anfrage suchen: "v2?all=true&brand=BM"
      7. dort auf "Response" klicken und den text kopieren, anonymisieren (VIN) und mir schicken. Bsp

        Quellcode

        1. [ {
        2. "series" : "2",
        3. "basicType" : "225XE IPERFORMANCE",
        4. "bodyType" : "Gran Turismo",
        5. "brand" : "BMW",
        6. "modelName" : "225xe iPerformance",
        7. "vin" : "WBA2C71080xxxxxx",
        8. "dcOnly" : false,
        9. "hasNavi" : true,
        10. "hasSunRoof" : true,
        11. "doorCount" : 4,
        12. "hasRex" : false,
        13. "steering" : "LEFT",
        14. "driveTrain" : "PHEV",
        15. "supportedChargingModes" : [ "AC_LOW" ]
        16. } ]
        Alles anzeigen
      8. dann den eintrag mit VIN und WBA2C71080xxxxxxx?offset=-120 suchen (-60 im Winter für Winterzeit)
      9. dort ebenfalls auf "Reponse" klicken, text kopieren, anonymisieren (Koordinaten oder so) und mir schicken.
        bsp:

        Quellcode

        1. {
        2. "attributesMap" : {
        3. "updateTime_converted" : "13.05.2018 05:55",
        4. "shdStatusUnified" : "CLOSED",
        5. "condition_based_services" : "00001,OK,2019-10,29000;00003,OK,2020-10,;00032,OK,2020-11,;00100,OK,2021-10,60000",
        6. "door_lock_state" : "SECURED",
        7. "vehicle_tracking" : "1",
        8. "Segment_LastTrip_time_segment_end_formatted_time" : "02:56",
        9. "lastChargingEndReason" : "INVALID",
        10. "door_passenger_front" : "CLOSED",
        11. "check_control_messages" : "",
        12. "chargingHVStatus" : "FINISHED_FULLY_CHARGED",
        13. "beMaxRangeElectricMile" : "19.0",
        14. ....
        15. }
        16. }
        Alles anzeigen
      10. alle mit VIN öffnen und anschauen, bis eines einen ähnlichen Inhalt hat wie folgedes:

        Quellcode

        1. {
        2. "modelType" : "PHEV",
        3. "lastTripList" : [ {
        4. "name" : "LASTTRIP_DELTA_KM",
        5. "unit" : "KM",
        6. "lastTrip" : "8.0"
        7. }, {
        8. "name" : "LASTTRIP_DELTA_TIME",
        9. "unit" : "MINUTES",
        10. "lastTrip" : "14.0"
        11. }, {
        12. "name" : "COMBINED_AVG_CONSUMED_LITERS_OVERALL",
        13. "unit" : "L_PER_100KM",
        14. "lastTrip" : "--"
        15. }, {
        16. "name" : "LASTTRIP_TIME_SEGMENT_END",
        17. "lastTrip" : "13.05.2018 02:56"
        18. }, {
        19. "name" : "LASTTRIP_RATIO_ELECTRIC_DRIVEN_DISTANCE",
        20. "unit" : "PERCENTAGE",
        21. "lastTrip" : "99"
        22. } ],
        23. "lifeTimeList" : [ {
        24. "name" : "CUMULATED_ELECTRIC_DRIVEN_DISTANCE",
        25. "unit" : "KM",
        26. "lifeTime" : "2855.0"
        27. }, {
        28. "name" : "SAVED_LITERS_OVERALL",
        29. "unit" : "LITER",
        30. "lifeTime" : "257.9"
        31. }, {
        32. "name" : "TIMESTAMP_STATISTICS_RESET",
        33. "lifeTime" : "13.05.2018"
        34. } ],
        35. "efficiencyQuotient" : 100,
        36. "characteristicList" : [ {
        37. "characteristic" : "CONSUMPTION",
        38. "quantity" : 5
        39. }, {
        40. "characteristic" : "DRIVING_MODE",
        41. "quantity" : 4
        42. }, {
        43. "characteristic" : "CHARGING_BEHAVIOUR",
        44. "quantity" : 5
        45. }, {
        46. "characteristic" : "ELECTRIC_DRIVING",
        47. "quantity" : 5
        48. } ]
        49. }
        Alles anzeigen
      11. und dies ebenfalls senden :)




      vielleicht schaffe ich es so, auch andere Fahrzeuge als den 225xe zu ergänzen

      BMW 225xe Sport Line Atlantikgrau seit 14.11.2017 :D
      BMW X1 Bj. '16 weiß/DRK mit getarnter Sondersignalanlage (5-10 Tage/Monat Dienst)
      Audi A4 Avant bj 2006 bis 11.2017 / Fiat Tipo Bj '97 bis 2007 /Honda Civic Bj. '87 bis 2003

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Rumbel ()

    • hallo!
      Existiert eine einfache Lösung um die kWh-Werte, was ich z.B. bis zur Betankung geladen habe auszulesen? oder einmal im Monat diese Werte auszulesen? Ich würde nur diese Werte benötigen, dann könnte ich diese auf die Spritmonitor Seite posten. :)
      Ich lade nur öffentlich, Rechnung bekomme ich jaehrlich (ZEV :-)), monatlich, oder die Ladung war für umsonst, oder/und ich hatte nur Parkgebühren. Diese möchte ich auch irgendwie führen. :)
      Zurzeit weiss ich nur den Preis per Monat, wenn ich darüber eine Rechnung bekommen habe, aber nicht wie viel ich geladen habe (per Rechnung schon, aber wenn ich umsonst geladen habe, dann natürlich nicht).
      Danke!

    • unter iOS in der App wird wohl der Stromverbrauch angezeigt.

      Im Web gibt es diese Info noch nicht, daher weiß ich nicht, wo ich es auslesen kann.

      Den geladenen Strom bekommt man leider nirgends.


      Gaaanz grob könnte man die Akkuladung in Prozent * soc-max verrechnen und daraus den Verbrauch berechnen

      BMW 225xe Sport Line Atlantikgrau seit 14.11.2017 :D
      BMW X1 Bj. '16 weiß/DRK mit getarnter Sondersignalanlage (5-10 Tage/Monat Dienst)
      Audi A4 Avant bj 2006 bis 11.2017 / Fiat Tipo Bj '97 bis 2007 /Honda Civic Bj. '87 bis 2003

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Rumbel ()