FHEM und Carwings/ConnectEV/You+NISSAN-API (Modul 98_Carwings.pm)

Begonnen von c2j2, 17 Oktober 2018, 09:10:37

Vorheriges Thema - Nächstes Thema

Herjemine


c2j2

Mit der aktuellen Version ist kein Plot zu gewinnen, ich werden demnächst wieder auf "ständiges Update der Werte mit Events" umstellen müssen und wer weniger möchte, muss mit "event-on-change-reading" arbeiten. Ich schreibe dann noch Genaueres. Aber gestört hat es anscheinend niemanden [emoji6]

c2j2

So, wer Probleme hatte mit der Anmeldung wird nun vielleicht wieder glücklich, Nissan hat wieder mal die API-URL geändert und anscheinend "schleichend" eingeführt.

c2j2

... und die Antwortzeit ist viel kürzer geworden, endlich konstant 30 Sekunden (zumindest bisher).


moes

Hallo Herrmann,

das mit der Location in der Google Map finde ich spannen. Ich Frage meinen Leaf über Carwings ab und bekomme die Location in zwei einzelnen werten
LocationLatitude , LocationLongitude
Meine Idee deinen Code auf das Format zu ändern hat nicht funktioniert. Nissan ist mein Carwings Device

<iframe src="https://www.google.com/maps/embed/v1/place?key=MEINAPIKEY='.ReadingsVal('Nissan','LocationLatitude','LocationLongitude').'

Hast Du eine Idee was ich falsch mache?

Beste Grüße
Moritz

Zitat von: Herjemine am 18 Januar 2019, 10:19:56
Hallo Gröpi,

den aktuellen Standort lass ich mir mit einem einfachen Weblink anzeigen, du benötigts noch einen Google API key,


define live_map weblink htmlCode {'<div style="width: 480;; overflow: hidden;; height: 480px;;"><iframe src="https://www.google.com/maps/embed/v1/place?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&q='.ReadingsVal('Leaf','location','').' " width="480" height="480" frameborder="0" border:0;; "></iframe></div>'}


wobei ich die Lat, Long aus dem LeafSpy in ein Reading location zusammen fasse.
Bei meinem alten Leaf kommt kein Location, einfach oben das .ReadingsVal('Leaf','location',''). für Dich entsprechend anpassen.

Den GPS Track des aktuellen Tages aus dem FileLog anzeigen lassen kann ich auch mal einstellen.

Gruß Hermann

c2j2


michael27983

Um den Prozess des Austausches der Datei zu vereinfachen oder zu automatisieren, wäre es super, wenn die Datei auf einem per wget zugänglichen http / ftp Server läge.

c2j2

Gern, wenn ich das einfach auf meinem Raspi zuhause einrichten kann (ist schon von extern erreichbar). Hattu mal 'nen Link für die Einrichtung? 8)

skynet

Ich habe gestern das Modul aktualisiert. Jetzt klappen abfragen immer mal wieder.
Aber dieser Fehler kommt auch ständig - Hat dies sonst noch jemand ?

APIResponse     ERR location 1 Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_Carwings.pm line 762.

c2j2

Kannst Du mal den LogLevel höher setzen (und bei Dri zum Anzeigen im FHEM-Log einstellen) - da müsste ein Fehler vorher kommen:

               Carwings_Log($hash, 0, "<<<JOB " . $hash->{job} . " failed: " . $data);

danach kommt dann die Ausgabe.

c2j2

PS: Der Abruft klappt NICHT mit dem neuen ZE1 64 kWh!!!

Die API ist da anders.

skynet

SO da ist der Fehler ... Sorry kam vorher nicht dazu ...

***

2019.08.10 22:00:00 2: LeafCheckIntervall: set Leaf query battery location climate_schedule cabintemp: ok, query started. to do now: battery, location, climate_schedule, cabintemp
2019.08.10 22:00:01 3: Carwings::Leaf: <<<JOB connect result: {
  'message' => 'success',
  'status' => 200,
  'baseprm' => '88dSp7wWnV3bvv9Z88zEwg'
}

2019.08.10 22:00:01 3: Carwings::Leaf: >>>JOB login (UserLoginRequest.php)
2019.08.10 22:00:01 3: Carwings::Leaf: >>>JOB {
  'timeout' => 30,
  'callback' => sub { "DUMMY" },
  'url' => 'https://gdcportalgw.its-mo.com/api_v190426_NE/gdc/UserLoginRequest.php',
  'header' => 'User-Agent: FHEM/Carwings',
  'data' => {
              'UserId' => 'xxx',
              'initial_app_str' => '9s5rfKVuMrT03RtzajWNcA',
              'lg' => 'en-US',
              'RegionCode' => 'NE',
              'Password' => 'xxx'
            },
  'method' => 'POST'
}

2019.08.10 22:00:11 3: Carwings::Leaf: <<<JOB login result: {
  'G2Lt' => '20',
  'G2Lw' => '15',
  'G1Li' => '2',
  'G1Ut' => '20',
  'G1Lw' => '5',
  'G1Lt' => '20',
  'resultKey' => 'AmYR0rmQDPbaKBZE2cRBvcm19luOfxkF9i7azKRd9Set4eYXhP',
  'sessionId' => 'c2c89ee6-945c-4ea7-905a-a9f900af1379',
  'status' => 200,
  'CustomerInfo' => {
                      'OwnerId' => '4012840100',
                      'Language' => 'de-DE',
                      'Nickname' => 'xxx',
                      'VehicleInfo' => {
                                         'MSN' => '337000002283876',
                                         'LastDCMUseTime' => '',
                                         'UserVehicleBoundTime' => '2019-02-18T15:06:22Z',
                                         'CarImage' => 'carimg7.png',
                                         'DCMID' => '204984701751',
                                         'CarName' => 'LEAF',
                                         'LastVehicleLoginTime' => '',
                                         'NonaviFlg' => 'false',
                                         'EncryptedNAVIID' => 'D9ED8FE0472AC1BF1D995543187649AE',
                                         'SIMID' => '89330118503573741220',
                                         'VIN' => 'xxx',
                                         'NAVIID' => '108200032559'
                                       },
                      'UserId' => '5FFNO84Y1DRD7W6O',
                      'VehicleImage' => '/content/language/default/images/img/ph_car.jpg',
                      'Country' => 'DE',
                      'RegionCode' => 'NE',
                      'Timezone' => 'Europe/Berlin',
                      'UserVehicleBoundDurationSec' => '946771200',
                      'EMailAddress' => 'xxx'
                    },
  'VehicleInfoList' => {
                         'vehicleInfo' => [
                                            {
                                              'custom_sessionid' => 'VDxC9zd+WXDAQ0nip8DTaAzZssqA0f0ZrdbudXL65bU+VAY1v5aAY+txJJrHu9NXDwgEgrFp8o4AG+IdmBzqH3mRxP0REE4m9NFAkaQVrr8Q==',
                                              'nickname' => 'xxx',
                                              'vin' => 'xxx',
                                              'telematicsEnabled' => 'true'
                                            }
                                          ],
                         'VehicleInfo' => [
                                            {
                                              'telematicsEnabled' => 'true',
                                              'vin' => 'xxx',
                                              'nickname' => 'xxx'
                                            }
                                          ]
                       },
  'UserInfoRevisionNo' => '1',
  'G2Ui' => '2',
  'vehicle' => {
                 'profile' => {
                                'gdcPassword' => '',
                                'vin' => 'xxx',
                                'nickname' => 'xxx',
                                'encAuthToken' => 'C1CA101C1AA3B5E35A9AD3F525C456143A84D8EE55ECC4025D3CB5B54A06C6B1',
                                'dcmId' => '204984701751',
                                'modelyear' => '18',
                                'gdcUserId' => ''
                              }
               },
  'G1Ui' => '2',
  'ngTapUpdatebtn' => '300000',
  'timeoutUpdateAnime' => '300000',
  'EncAuthToken' => 'C1CA101C1AA3B5E32AF54E0870C04901EE4AE9B8E2B4BE17BF5AE55F7A0CEC72',
  'G2Li' => '2',
  'G2Uw' => '15',
  'G1Uw' => '15',
  'G2Ut' => '20'
}

2019.08.10 22:00:11 3: Carwings::Leaf: Carwings_ExecuteNextJob
2019.08.10 22:00:11 3: Carwings::Leaf: ***** remaining jobs battery, location, climate_schedule, cabintemp
2019.08.10 22:00:11 3: Carwings::Leaf: >>>JOB battery (BatteryStatusCheckRequest.php)
2019.08.10 22:00:11 3: Carwings::Leaf: >>>JOB {
  'header' => 'User-Agent: FHEM/Carwings',
  'data' => {
              'initial_app_str' => '9s5rfKVuMrT03RtzajWNcA',
              'lg' => 'en-US',
              'VIN' => 'xxx',
              'DCMID' => '204984701751',
              'custom_sessionid' => 'VDxC9zd+WXDAQ0nip8DTaAzZssqA0f0ZrdbudXL65bU+VAY1v5aAY+txJJrHu9NXDwgEgrFp8o4AG+IdmBzqH3mRxP0REE4m9NFAkaQVrr8Q==',
              'RegionCode' => 'NE',
              'tz' => 'Europe/Berlin'
            },
  'method' => 'POST',
  'timeout' => 30,
  'url' => 'https://gdcportalgw.its-mo.com/api_v190426_NE/gdc/BatteryStatusCheckRequest.php',
  'callback' => sub { "DUMMY" }
}

2019.08.10 22:00:13 3: Carwings::Leaf: <<<JOB battery result: {
  'resultKey' => 'AmYR0rmQDPbaKBZE2cRBvcm19luOfxkF9i7azKRd9Set4eYXhP',
  'userId' => 'xxx',
  'status' => 200,
  'vin' => 'xxx'
}

2019.08.10 22:00:29 3: Carwings::Leaf: >>>JOB battery_longpoll (BatteryStatusCheckResultRequest.php)
2019.08.10 22:00:29 3: Carwings::Leaf: >>>JOB {
  'header' => 'User-Agent: FHEM/Carwings',
  'data' => {
              'initial_app_str' => '9s5rfKVuMrT03RtzajWNcA',
              'lg' => 'en-US',
              'resultKey' => 'AmYR0rmQDPbaKBZE2cRBvcm19luOfxkF9i7azKRd9Set4eYXhP',
              'DCMID' => '204984701751',
              'custom_sessionid' => 'VDxC9zd+WXDAQ0nip8DTaAzZssqA0f0ZrdbudXL65bU+VAY1v5aAY+txJJrHu9NXDwgEgrFp8o4AG+IdmBzqH3mRxP0REE4m9NFAkaQVrr8Q==',
              'tz' => 'Europe/Berlin',
              'RegionCode' => 'NE',
              'VIN' => 'xxx'
            },
  'method' => 'POST',
  'callback' => sub { "DUMMY" },
  'url' => 'https://gdcportalgw.its-mo.com/api_v190426_NE/gdc/BatteryStatusCheckResultRequest.php',
  'timeout' => 30
}

2019.08.10 22:00:30 3: Carwings::Leaf: <<<JOB battery_longpoll result: {
  'responseFlag' => '0',
  'status' => 200
}

2019.08.10 22:00:30 3: Carwings::Leaf: 1: 2019-08-10T22:00:11
2019.08.10 22:00:30 3: Carwings::Leaf: 2: 2019-08-10T21:44:00
2019.08.10 22:00:30 3: Carwings::Leaf: 3: 0
2019.08.10 22:00:30 3: Carwings::Leaf: >>>JOB battery_cached (BatteryStatusRecordsRequest.php)
2019.08.10 22:00:30 3: Carwings::Leaf: >>>JOB {
  'data' => {
              'custom_sessionid' => 'VDxC9zd+WXDAQ0nip8DTaAzZssqA0f0ZrdbudXL65bU+VAY1v5aAY+txJJrHu9NXDwgEgrFp8o4AG+IdmBzqH3mRxP0REE4m9NFAkaQVrr8Q==',
              'RegionCode' => 'NE',
              'tz' => 'Europe/Berlin',
              'lg' => 'en-US',
              'initial_app_str' => '9s5rfKVuMrT03RtzajWNcA',
              'VIN' => 'xxx',
              'DCMID' => '204984701751'
            },
  'method' => 'POST',
  'header' => 'User-Agent: FHEM/Carwings',
  'timeout' => 30,
  'callback' => sub { "DUMMY" },
  'url' => 'https://gdcportalgw.its-mo.com/api_v190426_NE/gdc/BatteryStatusRecordsRequest.php',
  'onResponseCallback' => sub { "DUMMY" }
}

2019.08.10 22:00:33 3: Carwings::Leaf: <<<JOB battery_cached result: {
  'VoltLabel' => {
                   'LowVolt' => '120',
                   'HighVolt' => '240'
                 },
  'BatteryStatusRecords' => {
                              'PluginState' => 'CONNECTED',
                              'NotificationDateAndTime' => '2019/08/10 19:56',
                              'TimeRequiredToFull200_6kW' => {
                                                               'MinutesRequiredToFull' => '0',
                                                               'HourRequiredToFull' => '3'
                                                             },
                              'BatteryStatus' => {
                                                   'BatteryCapacity' => '240',
                                                   'BatteryRemainingAmountkWH' => '',
                                                   'BatteryRemainingAmountWH' => '29520',
                                                   'BatteryChargingStatus' => 'NOT_CHARGING',
                                                   'BatteryRemainingAmount' => '187',
                                                   'SOC' => {
                                                              'Value' => '78'
                                                            }
                                                 },
                              'TargetDate' => '2019/08/10 19:56',
                              'OperationDateAndTime' => 'Aug 10, 2019 09:56 PM',
                              'CruisingRangeAcOn' => '207000',
                              'TimeRequiredToFull' => {
                                                        'MinutesRequiredToFull' => '30',
                                                        'HourRequiredToFull' => '11'
                                                      },
                              'CruisingRangeAcOff' => '212000',
                              'TimeRequiredToFull200' => {
                                                           'MinutesRequiredToFull' => '30',
                                                           'HourRequiredToFull' => '5'
                                                         },
                              'OperationResult' => 'START'
                            },
  'status' => 200
}

2019.08.10 22:00:33 3: Carwings::Leaf: ERR>>>''

2019.08.10 22:00:45 3: Carwings::Leaf: >>>JOB battery_longpoll (BatteryStatusCheckResultRequest.php)
2019.08.10 22:00:45 3: Carwings::Leaf: >>>JOB {
  'timeout' => 30,
  'callback' => sub { "DUMMY" },
  'url' => 'https://gdcportalgw.its-mo.com/api_v190426_NE/gdc/BatteryStatusCheckResultRequest.php',
  'data' => {
              'DCMID' => '204984701751',
              'resultKey' => 'AmYR0rmQDPbaKBZE2cRBvcm19luOfxkF9i7azKRd9Set4eYXhP',
              'lg' => 'en-US',
              'initial_app_str' => '9s5rfKVuMrT03RtzajWNcA',
              'VIN' => 'xxx',
              'RegionCode' => 'NE',
              'tz' => 'Europe/Berlin',
              'custom_sessionid' => 'VDxC9zd+WXDAQ0nip8DTaAzZssqA0f0ZrdbudXL65bU+VAY1v5aAY+txJJrHu9NXDwgEgrFp8o4AG+IdmBzqH3mRxP0REE4m9NFAkaQVrr8Q=='
            },
  'method' => 'POST',
  'header' => 'User-Agent: FHEM/Carwings'
}

2019.08.10 22:00:46 3: Carwings::Leaf: <<<JOB battery_longpoll result: {
  'status' => 200,
  'responseFlag' => '0'
}

2019.08.10 22:00:46 3: Carwings::Leaf: 1: 2019-08-10T22:00:11
2019.08.10 22:00:46 3: Carwings::Leaf: 2: 2019-08-10T21:56:00
2019.08.10 22:00:46 3: Carwings::Leaf: 3: 0
2019.08.10 22:00:46 3: Carwings::Leaf: >>>JOB battery_cached (BatteryStatusRecordsRequest.php)
2019.08.10 22:00:46 3: Carwings::Leaf: >>>JOB {
  'method' => 'POST',
  'data' => {
              'lg' => 'en-US',
              'initial_app_str' => '9s5rfKVuMrT03RtzajWNcA',
              'DCMID' => '204984701751',
              'VIN' => 'xxx',
              'custom_sessionid' => 'VDxC9zd+WXDAQ0nip8DTaAzZssqA0f0ZrdbudXL65bU+VAY1v5aAY+txJJrHu9NXDwgEgrFp8o4AG+IdmBzqH3mRxP0REE4m9NFAkaQVrr8Q==',
              'RegionCode' => 'NE',
              'tz' => 'Europe/Berlin'
            },
  'header' => 'User-Agent: FHEM/Carwings',
  'timeout' => 30,
  'callback' => sub { "DUMMY" },
  'url' => 'https://gdcportalgw.its-mo.com/api_v190426_NE/gdc/BatteryStatusRecordsRequest.php',
  'onResponseCallback' => sub { "DUMMY" }
}

2019.08.10 22:00:48 3: Carwings::Leaf: <<<JOB battery_cached result: {
  'VoltLabel' => {
                   'LowVolt' => '120',
                   'HighVolt' => '240'
                 },
  'BatteryStatusRecords' => {
                              'TimeRequiredToFull' => {
                                                        'HourRequiredToFull' => '11',
                                                        'MinutesRequiredToFull' => '30'
                                                      },
                              'CruisingRangeAcOn' => '207000',
                              'OperationResult' => 'START',
                              'CruisingRangeAcOff' => '212000',
                              'TimeRequiredToFull200' => {
                                                           'MinutesRequiredToFull' => '30',
                                                           'HourRequiredToFull' => '5'
                                                         },
                              'TargetDate' => '2019/08/10 20:00',
                              'OperationDateAndTime' => 'Aug 10, 2019 10:00 PM',
                              'PluginState' => 'CONNECTED',
                              'BatteryStatus' => {
                                                   'BatteryRemainingAmountkWH' => '',
                                                   'BatteryCapacity' => '240',
                                                   'SOC' => {
                                                              'Value' => '78'
                                                            },
                                                   'BatteryRemainingAmount' => '187',
                                                   'BatteryChargingStatus' => 'NOT_CHARGING',
                                                   'BatteryRemainingAmountWH' => '29520'
                                                 },
                              'NotificationDateAndTime' => '2019/08/10 20:00',
                              'TimeRequiredToFull200_6kW' => {
                                                               'MinutesRequiredToFull' => '0',
                                                               'HourRequiredToFull' => '3'
                                                             }
                            },
  'status' => 200
}

2019.08.10 22:00:48 3: Carwings::Leaf: ERR>>>''

2019.08.10 22:01:01 3: Carwings::Leaf: >>>JOB battery_longpoll (BatteryStatusCheckResultRequest.php)
2019.08.10 22:01:01 3: Carwings::Leaf: >>>JOB {
  'method' => 'POST',
  'data' => {
              'lg' => 'en-US',
              'resultKey' => 'AmYR0rmQDPbaKBZE2cRBvcm19luOfxkF9i7azKRd9Set4eYXhP',
              'initial_app_str' => '9s5rfKVuMrT03RtzajWNcA',
              'DCMID' => '204984701751',
              'VIN' => 'xxx',
              'custom_sessionid' => 'VDxC9zd+WXDAQ0nip8DTaAzZssqA0f0ZrdbudXL65bU+VAY1v5aAY+txJJrHu9NXDwgEgrFp8o4AG+IdmBzqH3mRxP0REE4m9NFAkaQVrr8Q==',
              'RegionCode' => 'NE',
              'tz' => 'Europe/Berlin'
            },
  'header' => 'User-Agent: FHEM/Carwings',
  'callback' => sub { "DUMMY" },
  'url' => 'https://gdcportalgw.its-mo.com/api_v190426_NE/gdc/BatteryStatusCheckResultRequest.php',
  'timeout' => 30
}

2019.08.10 22:01:03 3: Carwings::Leaf: <<<JOB battery_longpoll result: {
  'chargeStatus' => '0',
  'batteryCapacity' => '240',
  'timeRequiredToFull200' => {
                               'hours' => '5',
                               'minutes' => '30'
                             },
  'cruisingRangeAcOff' => '212000.0',
  'timeRequiredToFull200_6kW' => {
                                   'hours' => '3',
                                   'minutes' => '0'
                                 },
  'status' => 200,
  'batteryDegradation' => '187',
  'charging' => 'NO',
  'timeRequiredToFull' => {
                            'minutes' => '30',
                            'hours' => '11'
                          },
  'chargeMode' => 'NOT_CHARGING',
  'operationResult' => 'START',
  'currentChargeLevel' => '0',
  'responseFlag' => '1',
  'cruisingRangeAcOn' => '207000.0',
  'timeStamp' => '2019-08-10 20:00:48',
  'pluginState' => 'CONNECTED'
}

2019.08.10 22:01:03 3: Carwings::Leaf: 1: 2019-08-10T22:00:11
2019.08.10 22:01:03 3: Carwings::Leaf: 2: 2019-08-10T22:00:00
2019.08.10 22:01:03 3: Carwings::Leaf: 3: 2019-08-10T22:00:00
2019.08.10 22:01:03 3: Carwings::Leaf: ERR>>>''

2019.08.10 22:01:03 3: Carwings::Leaf: 4: 2019-08-10T22:00:00
2019.08.10 22:01:03 3: Carwings::Leaf: 5: 2019-08-10T22:00:00
2019.08.10 22:01:03 3: Carwings::Leaf: Carwings_ExecuteNextJob
2019.08.10 22:01:03 3: Carwings::Leaf: ***** remaining jobs location, climate_schedule, cabintemp
2019.08.10 22:01:03 3: Carwings::Leaf: >>>JOB location (MyCarFinderRequest.php)
2019.08.10 22:01:03 3: Carwings::Leaf: >>>JOB {
  'url' => 'https://gdcportalgw.its-mo.com/api_v190426_NE/gdc/MyCarFinderRequest.php',
  'callback' => sub { "DUMMY" },
  'timeout' => 30,
  'method' => 'POST',
  'data' => {
              'VIN' => 'xxx',
              'DCMID' => '204984701751',
              'lg' => 'en-US',
              'initial_app_str' => '9s5rfKVuMrT03RtzajWNcA',
              'RegionCode' => 'NE',
              'tz' => 'Europe/Berlin',
              'custom_sessionid' => 'VDxC9zd+WXDAQ0nip8DTaAzZssqA0f0ZrdbudXL65bU+VAY1v5aAY+txJJrHu9NXDwgEgrFp8o4AG+IdmBzqH3mRxP0REE4m9NFAkaQVrr8Q=='
            },
  'header' => 'User-Agent: FHEM/Carwings'
}

2019.08.10 22:01:04 3: Carwings::Leaf: <<<JOB location result: ''

2019.08.10 22:01:04 3: Carwings::Leaf: <<<JOB location failed: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /api_v190426_NE/gdc/MyCarFinderRequest.php was not found on this server.</p>
</body></html>

2019.08.10 22:01:04 3: Carwings::Leaf: ERR>>>'Can\'t use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_Carwings.pm line 762.
'

2019.08.10 22:01:04 3: Carwings::Leaf: Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_Carwings.pm line 762.

2019.08.10 22:01:04 3: Carwings::Leaf: ERR location 1 Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_Carwings.pm line 762.

Oli_t

Wieso gibt es eigentlich ein

_CachedRecord_BatteryRemainingkWh

aber kein

BatteryRemainingkWh

als "normales" (ungecachtes) Attribut ?

Lg,
Oli

c2j2

@skynet: die Message sollte nicht mehr auftreten, es gibt die "location"-Abfrage nicht mehr, Nissan hat das entfernt.

skynet

Zitat von: c2j2 am 19 August 2019, 18:10:35
@skynet: die Message sollte nicht mehr auftreten, es gibt die "location"-Abfrage nicht mehr, Nissan hat das entfernt.
Cool, vielen Dank.
Ich baue es gleich ein.

Gesendet von meinem ONEPLUS A5010 mit Tapatalk