Beiträge von Rumbel

    1) in myBMWUtils_Push2FHEM über elsif ($Index eq "remoteServiceEvent") folgendes ergänzen



    Code
    elsif ($Index eq "scoreList")
    {
    $Value = BMW_ExtractFromArray($ValueHash->{$Index},$Name,"lifeTime");
    }


    2)
    myBMWUtils_Push2FHEM("AVERAGE_ELECTRIC_CONSUMPTION",$content,"scoreList");
    myBMWUtils_Push2FHEM("AVERAGE_RECUPERATED_ENERGY_PER_100_KM",$content,"scoreList");
    myBMWUtils_Push2FHEM("CUMULATED_ELECTRIC_DRIVEN_DISTANCE",$content,"scoreList");
    myBMWUtils_Push2FHEM("LONGEST_DISTANCE_WITHOUT_CHARGING",$content,"scoreList");


    myBMWUtils_Push2FHEM("ACTUAL_DISTANCE_WITHOUT_CHARGING",$content,"lastTripList");
    myBMWUtils_Push2FHEM("AVERAGE_ELECTRIC_CONSUMPTION",$content,"lastTripList");
    myBMWUtils_Push2FHEM("AVERAGE_RECUPERATED_ENERGY_PER_100_KM",$content,"lastTripList");
    myBMWUtils_Push2FHEM("CUMULATED_ELECTRIC_DRIVEN_DISTANCE",$content,"lastTripList");



    könnte funktionieren.
    Natürlich muss davor


    Code
    define BMW_AVERAGE_ELECTRIC_CONSUMPTION dummy
    attr BMW_AVERAGE_ELECTRIC_CONSUMPTION room BMW

    (und die anderen natürlich auch


    ausgeführt werden. :)


    vielleicht ergänz ich irgendwann mal die typabhängigen abfragen. momentan lässt es meine zeit leider nicht zu

    aha, danke.
    aber dann bekomme ich das

    Code
    JSON error at line 1, byte 290/295: Unexpected character ',' parsing object starting from byte 1: expecting whitespace: '\n', '\r', '\t', ' ' or value separator: ':' at ./FHEM/99_myBMWUtils.pm line 1119

    ja stimmt, da ist ein bug drin
    mit dem 225xe funktioniert es, mit dem i3 nicht.
    werde ich korrigieren und nachtragen.

    Hallo nochmals.
    Wie bekomme ich diese Werte angezeigt?


    Code
    {"communitySwitch":false,"modelType":"I3","scoreList":[{"attrName":"AVERAGE_ELECTRIC_CONSUMPTION","attrUnit":"KWH_PER_100KM","minValue":0.0,"maxValue":40.0,"lifeTime":13.9},{"attrName":"AVERAGE_RECUPERATED_ENERGY_PER_100_KM","attrUnit":"KWH_PER_100KM","minValue":0.0,"maxValue":20.0,"lifeTime":3.7},{"attrName":"CUMULATED_ELECTRIC_DRIVEN_DISTANCE","attrUnit":"KM","minValue":0.0,"maxValue":81941.0,"lifeTime":40970.0},{"attrName":"LONGEST_DISTANCE_WITHOUT_CHARGING","attrUnit":"KM","minValue":0.0,"maxValue":170.0,"lifeTime":139.0}],"lastTripList":[{"name":"LASTTRIP_DELTA_KM","unit":"KM","lastTrip":"5.0"},{"name":"ACTUAL_DISTANCE_WITHOUT_CHARGING","unit":"KM","lastTrip":"60.0"},{"name":"AVERAGE_ELECTRIC_CONSUMPTION","unit":"KWH_PER_100KM","lastTrip":"15.2"},{"name":"AVERAGE_RECUPERATED_ENERGY_PER_100_KM","unit":"KWH_PER_100KM","lastTrip":"4.0"},{"name":"CUMULATED_ELECTRIC_DRIVEN_DISTANCE","unit":"KM","lastTrip":"40970.0"}],"lifeTimeList":[],"efficiencyQuotient":58,"characteristicList":[{"characteristic":"TOTAL_CONSUMPTION","quantity":3},{"characteristic":"AUXILIARY_CONSUMPTION","quantity":4},{"characteristic":"DRIVING_MODE","quantity":0},{"characteristic":"ACCELERATION","quantity":2},{"characteristic":"ANTICIPATION","quantity":4}]}


    auf den ersten BLick sieht vieles gleich und manches anders aus als beim 225xe
    darauf ist mein modul halt optimiert.
    bso: beim 225xe sind die Daten unter scoreList nicht verfügbar, dafür gibt es mehr in der lastTripList


    im sub myBMWUtils_ReceiveTripData werden diese Daten ausgelesen und zu FHEM gemappt.
    Wenn was fehlt, kann man es da ergänzen.
    wahrscheinlich muss man dafür aber auch den Paser ergänzen, dass die scoreList auch gelesen wird. :)


    (unter myBMWUtils_Push2FHEM)

    In der Annahme dass nur die Klammern am Anfang und Ende entfernt werden sollen habe ich das ersetzt durch $content =~ s/^\[//g; $content =~ s/\]$//g;

    Schau ich mir an. Sieht schlüssig aus. :)
    BMW war leider bei den JSON antworten sehr "kreativ". jede Antwort sieht anders aus und ich hab keinen einheitlichen Parser gefunden :(

    BMW_gps_lat : no set value specified

    über diese Abfrage der Fahrzeugfunktionen wollte ich später genau so Fälle abfangen. Position nur abfragen, wenn sie auch übertragen wird und das Gleiche auch für Sonnendach /(nur wenn verfügbar, ...)

    Erkennt das Modul irgendwie, ob ein abgesetzter Steuerbefehl (z.B. Klima an) erfolgreich war und wo sehe ich das dann, damit ich ggf. den Befehl erneut senden kann?

    Wenn man über FHEM ein Kommando sendet, läuft (glaub ich 5x) ein Timer, der den Status abfragt.
    Alternativ manuell per BMW_CpommandUpdate(); oder in Fhem (wenn der Timer läuft) im BML_remoteServiceStatus (als Bildchen und intern als Text)

    BMW.png



    So geht's über google Maps... ich hab aber keine Ahnung mehr, wie ich das eingerichtet hatte... wahrscheinlich über "Bearbeiten" hier oder so :D
    Da kommt man auf https://www.google.de/maps/sendtocar und kann es eintragen. :)



    Am Smartphone unter Android ging es mit der alten Connected app. (google maps -> teilen -> bmw)
    Mit der neuen geht es nicht mehr aus google maps, glaub ich.
    Hier kann man unter Ziele noch was suchen und das dann schicken



    Im Auto wird das ziel aber nicht automatisch verwendet.
    Hier steht dann nur eine neue Nachricht in den Nachrichten. Erst wenn man dort drauf klickt, beginnt das auto zu navigieren. leider umständlich



    Thema Liste:
    einfach mal mehrere Ziele schicken, mal schauen was der BMW draus macht :D

    NEUE VERSION: V0.51 BETA :)
    (das Teil wird immer Beta bleiben :P ):-)



    Disclaimer:
    Wie immer: Alle Angaben ohne Gewähr.
    Keine Garantie für Vollständigkeit oder Korrektheit der Daten.
    Verwendung auf Eigene Gefahr und in einem Zustand "as it is".
    Ich übernehme keine Verantwortung falls was nicht geht, BMW sich beschwert, wir vom CD ausgesperrt werden oder der BMW Schäden bekommt.
    Linzenz: Zur freien Verfügung, bitte mit Referenz auf mich oder den Beitrag hier. :)



    Changelog:

    Neu:


    Ich hab das Programm in 2 Teile getrennt.
    1-teil: Wie immer der Code. Der wird jedes mal beim Update neu überschrieben
    2-teil: von Euch anpassbarer Code. Hier ergänze ich nur neue Sachen, Eure bleiben dann wie sie sind.
    Hier könnt ihr an Eure Oma Push-Mitteilungen senden, wen der Tank leer ist oder sonstiges machen, was andere Leute nicht interessiert und von mir beim Update nicht gelöscht wird.



    Hab hab mit der Aufteilung versucht, euch das Updaten leicht(er) zu machen... wenn ihr an anderen Stellen noch Änderungen vorgenommen habt und sie im "persönlichen Code" wollt, dann sagt mir bescheid und ich schieb es bei der nächsten Änderung ebenfalls rüber. :)



    Auch neu:
    ihr könnt in FHEM einmalig {BMW_RequestBMWDescription();;} aufrufen (in der Leiste oben, mit { und 2x ;
    dann werden einmalig die Fahrzeugdaten abgerufen. Vielleicht verwende ich das später, um Fahrzeugabhängige Daten (i3, 225xe, ..., Schiebedach, ...) abzurufen.


    so. hier der Code.




    Roadmap:
    Was kommt, was fehlt?
    - soc und soc max
    - google authentifizierung für die karten (fehlermeldung)
    - vielleicht mal Anpassungen für andere Fahrzeuge? (i3, 5er Hybrid, ...)
    - Vielleicht mal ein Umzug zu Github oder so.
    - Darstellung als Floorplan in Farbe und bunt. :)
    - Wünsche gerne an mich.(oder fertiger Code) :)



    so.
    Viel Spaß damit.



    Supportanfragen gerne hier im Forum.
    Per PM geht's auch, aber meistens habt ihr die gleichen Fragen / Probleme,...
    ... und mittlerweile gibt's noch andre, die helfen können.



    Danke für Euer Feedback und anregungen.