Closed HKLM closed 2 years ago
@HKLM This looks good. However can you detail the differences between the
def refresh_status()
and
def request_update()
they both seem to return the same result.
@HKLM This looks good. However can you detail the differences between the
def refresh_status()
and
def request_update()
they both seem to return the same result.
I did some testing and it seems that both the refresh_status()
and request_update()
not only return the same result but also refresh the vehicle status in both cases. Could you test for yourself just to confirm with the following code?
import syncconnect
client = syncconnect.AuthClient(
'9fb503e0-715b-47e8-adfd-ad4b7770f73b',
None,
None)
access = client.get_user_access_token(
'<username>', '<password>')
currentVehicle = syncconnect.Vehicle(
'<vin>', access['access_token'])
currentVehicle.unlock()
print(currentVehicle.lock_status())
currentVehicle.refresh_status()
print(currentVehicle.lock_status())
@HKLM This looks good. However can you detail the differences between the
def refresh_status()
and
def request_update()
they both seem to return the same result.
I did some testing and it seems that both the
refresh_status()
andrequest_update()
not only return the same result but also refresh the vehicle status in both cases. Could you test for yourself just to confirm with the following code?import syncconnect client = syncconnect.AuthClient( '9fb503e0-715b-47e8-adfd-ad4b7770f73b', None, None) access = client.get_user_access_token( '<username>', '<password>') currentVehicle = syncconnect.Vehicle( '<vin>', access['access_token']) currentVehicle.unlock() print(currentVehicle.lock_status()) currentVehicle.refresh_status() print(currentVehicle.lock_status())
I get two different results between the two. Basically, my test did the following, issue a status() command to get a starting point for the test. Then issue the refresh_status() (for the refresh_status.log) or request_update() (for the request_update.log) the command is followed by json print dumps of the results. and then a few status() commands to get the changes. shorted view of the code used, and the attached log file (I removed my VIN from the log files)
def do_refreshstatus(self, widget, **kwargs):
myvehicle = syncconnect.Vehicle(_VIN, _TOKEN['access_token'])
st1 = myvehicle.status()
print(">>>>>>>>>> 1 status() <<<<<<<<<<<< \n")
zy = json.dumps(st1, indent=1)
print(zy)
print(">>>>>>>>>> 1 end status() <<<<<<<<<<<< \n")
status = myvehicle.refresh_status()
print(">>>>>>>>>> refresh_status() <<<<<<<<<<<< \n")
z = json.dumps(status, indent=1)
print(z)
print(">>>>>>>>>> end refresh_status() <<<<<<<<<<<< \n")
time.sleep(10)
st2 = myvehicle.status()
print(">>>>>>>>>> 2 status() <<<<<<<<<<<< \n")
zyx = json.dumps(st2, indent=1)
print(zyx)
print(">>>>>>>>>> 2 end status() <<<<<<<<<<<< \n")
def do_requestupdate(self, widget, **kwargs):
myvehicle = syncconnect.Vehicle(_VIN, _TOKEN['access_token'])
st1 = myvehicle.status()
print(">>>>>>>>>> 1 status() <<<<<<<<<<<< \n")
zy = json.dumps(st1, indent=1)
print(zy)
print(">>>>>>>>>> 1 end status() <<<<<<<<<<<< \n")
status = myvehicle.request_update()
print(">>>>>>>>>> request_update() <<<<<<<<<<<< \n")
z = json.dumps(status, indent=1)
print(z)
print(">>>>>>>>>> end request_update() <<<<<<<<<<<< \n")
time.sleep(5)
st2 = myvehicle.status()
print(">>>>>>>>>> 2 status() <<<<<<<<<<<< \n")
zyx = json.dumps(st2, indent=1)
print(zyx)
print(">>>>>>>>>> 2 end status() <<<<<<<<<<<< \n")
and both used the following
def get_status(self):
myvehicle = syncconnect.Vehicle(_VIN, _TOKEN['access_token'])
status = myvehicle.status()
print(">>>>>>>>>> status() <<<<<<<<<<<< \n")
z = json.dumps(status, indent=1)
print(z)
print(">>>>>>>>>> end status() <<<<<<<<<<<< \n")
refresh_status() - the server responds with a HTTP 401 - (unauthorized) status yet it says in the json that I am "authorization": "AUTHORIZED".
It did correctly show that the locks are locked and alarm armed, but all other values are null or default values, prob due to the 401. And status() commands after that, show no changes. Even after 40 min, all values are the same except the servertime.
{
"$id": "1",
"vehiclestatus": {
"$id": "2",
"vin": null,
"lockStatus": {
"$id": "3",
"value": "LOCKED",
"status": "LAST_KNOWN",
"timestamp": "01-01-0001 00:00:00"
},
"alarm": {
"$id": "4",
"value": "SET",
"status": "LAST_KNOWN",
"timestamp": "01-01-0001 00:00:00"
},
"PrmtAlarmEvent": {
"$id": "5",
"value": null,
"status": "LAST_KNOWN",
"timestamp": "01-01-0001 00:00:00"
},
"odometer": {
"$id": "6",
"value": 0.0,
"status": "LAST_KNOWN",
"timestamp": "01-01-0001 00:00:00"
},
"fuel": {
"$id": "7",
"fuelLevel": 0.0,
"distanceToEmpty": null,
"status": "LAST_KNOWN",
"timestamp": "01-01-0001 00:00:00"
...
"authorization": "AUTHORIZED",
...
},
"version": "3.0.0",
"status": 401
}
request_update() - server responds as expected with HTTP 200 - (OK) status as shown below in its entire response.
{
"$id": "1",
"commandId": "221b0ca4-dfa6-4364-98a1-8f147b6c1ac8",
"status": 200,
"version": "1.0.0"
}
and after about 2 min, the updated status with the lockstatus and alarm being set is shown
The request_update() has the vehicle send it's current data to the Ford API. This can be used even after the vehicle is parked and the alarm is armed.