Hauptmenü

RenaultZE

Begonnen von plin, 29 November 2020, 09:50:17

Vorheriges Thema - Nächstes Thema

Wolle02

Hallo plin, jetzt bin ich endlich auch mal dazu gekommen die neue Modulversion 1.19 einzuspielen und zu testen. Sorry für die späte Rückmeldung.
Leider kommt bei mir immer noch folgende Meldung im Log:

ERROR: (2) RenaultZE_gData_Step2, error (data) while calling https://api-wired-prod-1-euw1.wrd-aws.com/commerce/v1/accounts/xxxxxxxxxxx/kamereon/kca/car-adapter/v1/cars/xxxxxxx/location?country=DE - errorCode=err.func.wired.notFound, errorMessage={"errors":[{"errorCode":404,"errorMessage":"There is no data for this vin and uid","errorLevel":"error","errorType":"functional"}],"error_reference":"cfd60936-cbf9-4023-8276-b0246ee22d5b66093343"}
Ich habe das Navi-Paket bei Renault nicht gebucht, so dass ich keine GPS-Informationen erhalte, sondern nur Lade- und Batterieinformationen.

plin

Hast Du das neue Attribut "ze_AboPackSmartNavigation" auf "no" gesetzt? Per Default wird "yes" angenommen.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

Wolle02

Ja sorry, man sollte natürlich auch erstmal richtig lesen bevor man postet. Attr gesetzt, Fehlermeldung weg.  ;)
Vielen herzlichen Dank.

JJ_Pamoux

Hallo!

Tolles Modul, dass ich auch mit meinem Renault Zoe nutze. Stop/Start funktioniert nicht wirklich gut, aber ich vermute, dass das an der Renault API liegt, ich schaue noch einmal, ob das überhaupt über die App ordentlich funktioniert.

Ich habe kleine Änderungen am Modul vorgenommen, u.a. bezüglich der Google Maps API (vermutlich habe ich das aber auch nur irgendwo gelesen), mit hard-codiertem API-Key (habe ich natürlich entfernt; kostenfrei bei entsprechend geringer, privater Nutzung):
--- "96_RenaultZE (1).pm"       2025-05-18 23:02:41.000000000 +0200
+++ FHEM/96_RenaultZE.pm        2025-05-18 23:25:55.447144189 +0200
@@ -1695,16 +1695,18 @@
     $homeRadius  = AttrVal( $name, "ze_homeRadius", 20 )       if ( $homeRadius eq "auto");
     Log3 $name, 5, "RenaultZE_distanceFromHome - Check ".$hash."/".$lat." ".$long."/".$homeRadius;

-    if ($distance < $homeRadius) {
+#     if ($distance < $homeRadius) {
+     if ($distance < 1) { # change scale for distance < 1 km
             $distance = $distance * 1000;
             $dim = "m";
             if ($distance < $homeRadius) {
-                   $homeinfo = "home";
+                   $homeinfo = "Home";
                    $homestate = "home";
            }
     }
     $distance = sprintf("%.3f", $distance);
-    $homeinfo = $distance." ".$dim." away"          if ( $homeinfo eq "");
+#    $homeinfo = $distance." ".$dim." away"          if ( $homeinfo eq "");
+    $homeinfo = "Away"          if ( $homeinfo eq "");
     if ( $hlong != 0.0 and $hlat != 0.0) {
        readingsSingleUpdate($hash,"distanceFromHome",$distance,1);
        readingsSingleUpdate($hash,"distanceUnit",$dim,1);
@@ -1725,7 +1727,8 @@
     Log3 $name, 5, "RenaultZE_gAddress1 - In ".$hash."/".$name." ".$lat."/".$long;
     readingsSingleUpdate($hash,"ze_Step","RenaultZE_gAddress1",1);

-    my $url = "https://www.google.com/maps/place/$lat+$long";
+#    my $url = "https://www.google.com/maps/place/$lat+$long";
+    my $url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$long&key=<google-maps-api-key>&language=de";
     Log3 $name, 5, "RenaultZE_gData_Step1 - URL ".$url;
     my $param = {
                     url        => $url,
@@ -1758,7 +1761,13 @@
     #    my $lastErr = $hash->{READINGS}{ze_lastErr}{VAL};
     #    return undef                                                                                  if ($lastErr ne "");

-    $data =~ s/.*meta content=\"(.*)\" itemprop=\"description\".*/$1/sg;
+#    $data =~ s/.*meta content=\"(.*)\" itemprop=\"description\".*/$1/sg;
+    my $decode_json = eval { from_json($data) };
+    if( $@) {
+      Log3 $name, 2, "$name: json error: $@ in RenazltZE_gAddress2";
+      return;
+    }
+    $data = $decode_json->{results}[0]->{formatted_address};
     Log3 $name, 5, "RenaultZE_gAddress2 - Address ".$data;
     my $oldinfo = ReadingsVal($name,"homeInfo","");
     my $newinfo = $oldinfo." (".$data.")"

plin

#394
mmh, und wie kommt der individuelle Google API key in den code?
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

JJ_Pamoux

Zitat von: plin am 20 Mai 2025, 14:47:15mmh, und wie kommt der individuelle Google API key in den code?
Mit dem Texteditor deiner Wahl.  ;D

Ja, das ist bei mir kein Parameter, allerdings weiß ich auch überhaupt nicht, ob das etwas für das Hauptmodul wäre, ich wollte das nur ein bisschen als Idee teilen.
Wenn das interessant ist, dann kann ich das gerne auch noch einmal als ordentlichen Patch aufbereiten. Nutze das Modul sehr gerne, echt sehr praktisch!

plin

Zitat von: JJ_Pamoux am 23 Mai 2025, 19:55:49
Zitat von: plin am 20 Mai 2025, 14:47:15mmh, und wie kommt der individuelle Google API key in den code?
Mit dem Texteditor deiner Wahl.  ;D

Bedeutet: bei jedem Update manuelle Nacharbeiten - oder richtig integrieren
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB