Auslesen der BMW-Daten mit FHEM (225xe)

  • wenn du es so machst klappt es:

    define d dummy

    define j expandJSON d:json:.*

    {my $result = qx "/home/pi/.local/bin/bimmerconnected status xxxxx\@xxxx.com xxxxxx rest_of_world --json";;fhem "setreading d json $result";;}


    define d_anpassung1 readingsChange d json (\[\{"a) {sprintf("\{\"a")}

    define d_anpassung2 readingsChange d json (XXXi\"\}\]) {sprintf("XXXi\"\}")}



    das XXXi tauscht du gegen deine fahrzeug bezeichnung aus, damit werden alle readings angelegt , zwar pfuschig aber klappt erstmal

  • ...komisch, bei mir kommt das mit "Found 1 vehicles" nur wenn ich ohne -j oder --json starte.

    Mit sieht es so aus:

    [{"attributes": {"vin": "WBY1234567891234", "model": "i3s 120", "year": 2020, "brand": "BMW", "headUnit": "ID5", "isLscSupported": true, "driveTrain": "ELECTRIC", "puStep": "0321", "iStep": "I001-21-03-530", "telematicsUnit": "ATM", "hmiVersion": "ID5", "bodyType": "I01", "a4aType": "BLUETOOTH", "capabilities": ....

  • kannst du mal den kompletten Teil aus deiner FHEM Config posten...Danke.

  • Ich habe ein perl Script das ich aus FHEM ausrufe um mir den String in FHEM zu schreiben.
    Das starte ich dann mit eine AT.

    Sind noch einnige Reste aus dem Original mit drin.
    Wollte eigentlich hier das Json auflösen und die Werte in FHEM schreiben, so hatte ich es vorher gemacht.

  • kannst du mal den kompletten Teil aus deiner FHEM Config posten...Danke.

    so sollte es bei dir klappen:


    define d dummy

    define j expandJSON d:json:.*

    define d_anpassung1 readingsChange d json (\[\{"a) {sprintf("\{\"a")}

    define d_anpassung2 readingsChange d json (i3s 120\"\}\]) {sprintf("i3s 120\"\}")}


    in device d sind dann alle readings


    damit werden die daten abgerufen, ein regelmäßiges aufrufen bau ich dann später das ist mir erstmal nicht wichtig:

    {my $result = qx "/home/pi/.local/bin/bimmerconnected status xxxx\@gmail.com xxxx rest_of_world --json";;fhem "setreading d json $result";;}

  • leider nicht.
    Beim Abruf der Daten kommt:

    Code
    Global symbol "@gmail" requires explicit package name (did you forget to declare "my @gmail"?) at (eval 3005579) line 1.

    Oder wo rufst du das auf?


    Beim zweite regex bekomme ich das:


    Code
    Bad regexp (i3s: Unmatched ( in regex; marked by <-- HERE in m/^( <-- HERE i3s$/ at ./FHEM/33_readingsChange.pm line 38.
  • leider nicht.
    Beim Abruf der Daten kommt:

    Code
    Global symbol "@gmail" requires explicit package name (did you forget to declare "my @gmail"?) at (eval 3005579) line 1.

    Oder wo rufst du das auf?


    Beim zweite regex bekomme ich das:


    Code
    Bad regexp (i3s: Unmatched ( in regex; marked by <-- HERE in m/^( <-- HERE i3s$/ at ./FHEM/33_readingsChange.pm line 38.

    du musst das @ mit \ escapen sonnst geht das nicht, habe ich aber im beispiel


    beim zweiten keine ahnung dann muss du da selbst das regex anpassen, das einzige was ich da mach ich die erste eckige klammer und die letzte eckige klammer zu entfernen.

  • du musst das @ mit \ escapen sonnst geht das nicht, habe ich aber im beispiel


    beim zweiten keine ahnung dann muss du da selbst das regex anpassen, das einzige was ich da mach ich die erste eckige klammer und die letzte eckige klammer zu entfernen.

    hi habe auf das Problem das ich per Fehm keine Daten mehr empfange..



    zu deinem Script :

    Code
    ####    system("perl", "/opt/fhem/fhem.pl", "7072", "setreading BMW_getData json ".$json ); 
    Ist das 7072 ist wohl der Fhem Port oder ?
    im script muss da auch  die Email  escaped werden ?
  • Hallo,


    bimmerconnected läuft seit heute auf meinem Pi.

    Ich kann die Daten abrufen und bekomme sie per json angezeigt.
    Mir fehlt nur noch die Übergabe an FHEM. ist da schon jemand dran bevor ich mir nun die mühe mache ;)

    Gruß Björnar.

    Darf ich mal fragen wie Du das gemacht hast?

    So wie ich das verstanden habe ist das ein Plugin ( oder wie man das da nennt ) für Home Assistant.

    Hast du zum abrufen der date Home Assistant installiert oder kann man das auch so auf der Konsole starten?


    Gruß


    Onkel Tom