Pentru cei care folosesc Google Assistant, fie pe telefon fie pe un device gen Google Home, se poate integra API-ul de la Renault, pe baza căruia funcționează și aplicația MyDacia și se pot automatiza câteva lucruri.
De exemplu, poți porni încălzirea sau aerul condiționat sau poți afla nivelul bateriei sau autonomiei întrebând pur și simplu „Hey Google…”.
Este un „hack” de fapt, destul de complex pentru un utilizator obișnuit, dar dacă știi despre ce e vorba sau înțelegi ce scrie aici, îți va fi util.
Acest API nu e chiar public, a fost deslușit de către un utilizator de Renault ZOE, dar se aplică și la Spring pentru că folosește aceleași servere. Procedura este descrisă aici: https://muscatoxblog.blogspot.com/2019/07/delving-into-renaults-new-api.html și a creat și un client în Python pentru a accesa aceste funcționalități: https://github.com/jamesremuscat/pyze
Repet, aceste lucruri au complexitatea la un nivel de inginer software avansat, așadar nu pentru oricine. Însă, un coleg de pe grupul Dacia Spring România, Alex, a avut răbdarea să încerce și mai mult de atât, să scrie și un tutorial pas cu pas cum să procedezi pentru pornirea climatizării mașinii folosind comanda vocală cu Google Assistant. Voi repeta în continuare pașii, exact cum i-a descris, nu pentru a-mi asuma vreun merit ci pentru că pe acel grup de Facebook, cu siguranță informația se va pierde și e păcat de munca lui Alex.
- Descărcați aplicația Google Home pe smartphone-ul dvs (în cazul în care nu o aveți deja, este aceeași aplicație cu care controlați și setările smart speaker-ului de la același brand)
- Accesați aplicația , apăsați pe Routines, apăsați pe plusul din dreapta jos.
- Aici vom stabili care este fraza care declanșează acțiunea , apăsăm pe Add starter -> Voice Command-> și scrieți în casetă fraza dorită ( de ex: heat my car ). Dacă doriți fraze alternative puteți adăuga apăsând butonul Add another. Finalizăm apăsând butonul Add starter din dreapta jos.
- Acum trebuie să adăugăm o acțiune . Apăsăm pe Add action
->Try adding your own / Experiment with custom actions și aici vom scrie: Ask WayScript Trigger to run ‘script’ ( scrieți exact cum am scris eu după cele două puncte ) și finalizăm apăsând butonul Done -> Save. - Acum că avem o rutină personalizată , vom naviga de pe calculator pe site -ul https://wayscript.com/index și facem click în dreapta sus pe butonul Log In și ne logam folosind un cont de Google apăsând pe butonul Sign In with Google ( indicat să fie același cont Google cu care folosiți și Assistant-ul)
- Când accesați site -ul pentru prima dată vă apare un fel de tutorial cum să folosiți site-ul, închideți acel tutorial și căsuțele pop-up care apar .
- Site-ul ar trebui să arate ceva de genul:

- Faceți click pe butonul plus din stânga sus ( încercuit în imagine ) și denumiți scriptul : script ( foarte important să scrieți exact cum am scris eu, în caz contrar numele acesta trebuie să fie identic cu cel introdus în fraza de acțiune din aplicația Google Home: Ask WayScript Trigger to run ‘script’ ) și faceți click pe Create
- Acum ne reîntoarcem pe smartphone și intrăm în aplicația Google Home -> Settings -> Google Assistant -> Manage all Assistant settings -> dăm scroll mai jos și apăsăm pe -> Explore -> și căutăm în casetă WayScript Trigger -> Add și ar trebui să se deschidă Google Assistant-ul și să va întrebe dacă doriți să adăugați WayScript Trigger sau ceva de genul, scrieți în caseta de jos sau îi dați comandă vocală cu yes și după ar trebui să fie afișat pe ecran cum că WayScript Trigger was added successfully.
- Ne reîntoarcem pe calculator, pe site și ar trebui să arate ceva de genul:

- facem click în stânga pe .secrets ( highlighted în imagine ). Aici vom adăuga detaliile confidențiale precum email-ul și parola dvs folosită în aplicația myDacia dar și API key-urile folosite pt a ne loga și a trimite comenzi mașinii.
- Apăsăm pe Add secret iar în caseta new_secret vom scrie email iar în dreapta ei email-ul dvs
- Repetați pasul 10 la fel pt parola dvs din myDacia ( scrieți password in prima casetă și în cea de lângă parola dvs )
- Acum vom adauga API key-urile, la fel cum am procedat pt email si parola, apăsăm pe Add secret si scriem in prima casuță: KAMEREON_API_KEY iar în dreapta ei Ae9FDWugRxZQAGm3Sxgk7uJn6Q4CGEA2
- Primul key a fost adăugat acum îl adăugăm și pe următorul , procesul este asemănător cu cel din pasul 12 doar ca acum vom scrie: GIGYA_API_KEY în prima căsuță iar în cea de lângă 3_WlBp06vVHuHZhiDLIehF8gchqbfegDJADPQ2MtEsrc8dWVuESf2JCITRo5I2CIxs
- Am terminat aici la secțiunea .secrets, ar trebui să arate ceva de genul:

- Navigăm în stânga și facem click pe script.ws -> Add trigger -> și scrieti Google Assistant -> import -> Google Assistant
- Ar trebui să arate ceva de genul:

- Faceți click pe acel switch-ul încercuit cu roșu în imagine ( să fie pornit, cum este în imagine )
- Facem click pe Add step si căutăm Python și facem click pe el
- Ar trebui să arate ca in imagine:

- Facem click pe Python ( 1 ) și în dreapta pe View code ( 2 )
- Aici vor exista 3 linii de cod deja existente, le lăsăm acolo și mai jos inserăm :
email= ws.environment[‘email’]
password = ws.environment[‘password’]
from pyze.api import Gigya, Kamereon, Vehicle
g=Gigya()
g.login(email, password)
g.account_info()
k= Kamereon(gigya=g)
v= Vehicle(‘INTRODU VIN-UL TAU AICI‘,k)
v.ac_start()
24. Acum navigăm în stânga și facem click pe requirements.txt și aici scriem :pyze
25. În final ar trebui să arate ceva de genul:

Tot ce rămâne de făcut este să testați dacă vă merge, mie unuia îmi merge, am dat comandă de 5 ori azi și ieri și a mers perfect doar că am observat că timpul de acționare a comenzii a crescut, durează vreo 3-4 minute bune, deci dați comandă vocală ” Hey google, heat my car ” și așteptați câteva minute și verificați dacă a pornit ventilatorul în mașină .
Mulțumiri speciale domnului Kristian Debrenti care mi-a pasat câteva link- uri importante , legate de api-ul celor de la renault și în legătură cu librăria pyze, le voi lasă și eu mai jos.
https://muscatoxblog.blogspot.com/…/delving-into…
https://github.com/jamesremuscat/pyze
Personal, am avut câteva probleme la instalare, îmi dădea o eroare, a trebuit să folosesc un calculator cu python instalat, să instalez pyze și să mă loghez o dată.
pip install pyze
SET KAMEREON_API_KEY=Ae9FDWugRxZQAGm3Sxgk7uJn6Q4CGEA2
SET GIGYA_API_KEY=3_WlBp06vVHuHZhiDLIehF8gchqbfegDJADPQ2MtEsrc8dWVuESf2JCITRo5I2CIxs
pyze login # You should only need to do this once
pyze status
După ce am verificat că îmi funționează, am mai făcut un script similar în WayScript, pentru a îmi citi datele despre mașină. Mai exact, am adăugat comanda „what is my battery car level” în Google Assistant care rulează un alt script numit „battery” și care citește și parsează datele despre baterie. Codul este următorul:
import json
email= ws.environment['email']
password = ws.environment['password']
from pyze.api import Gigya, Kamereon, Vehicle
g=Gigya()
g.login(email, password)
g.account_info()
k= Kamereon(gigya=g)
v= Vehicle('INTRODU CODUL VIN',k)
raw = json.dumps(v.battery_status())
data = json.loads(raw)
variables[ 'BatteryLevel' ] = data["batteryLevel"]
variables[ 'BatteryTemperature' ] = data["batteryTemperature"]
variables[ 'BatteryAutonomy' ] = data["batteryAutonomy"]
variables[ 'BatteryCapacity' ] = data["batteryCapacity"]
variables[ 'BatteryAvailableEnergy' ] = data["batteryAvailableEnergy"]
variables[ 'PlugStatus' ] = data["plugStatus"]
variables[ 'ChargingStatus' ] = data["chargingStatus"]
variables[ 'ChargingRemainingTime' ] = data["chargingRemainingTime"]
După acest cod, se adaugă la flow, după Python, Google Assistant speaker care va fi configurat să spună un mesaj care conține si acele variabile de mai sus.
API ul mai suportă și următoarele date și acțiuni:
v.battery_status()
{‘timestamp’: ‘2021-12-02T08:46:37Z’, ‘batteryLevel’: 57, ‘batteryTemperature’: 20, ‘batteryAutonomy’: 98, ‘batteryCapacity’: 0, ‘batteryAvailableEnergy’: 14, ‘plugStatus’: 0, ‘chargingStatus’: 0.0, ‘chargingRemainingTime’: 80}
v.location()
{‘gpsLatitude’: 45.43944616, ‘lastUpdateTime’: ‘2021-12-02T08:45:20Z’, ‘gpsDirection’: None, ‘gpsLongitude’: 28.05725092}
https://www.google.ro/maps/place/45.4094338,28.0359849
v.hvac_status()
{‘socThreshold’: 30.0, ‘hvacStatus’: ‘off’, ‘lastUpdateTime’: ‘2021-12-02T07:39:22Z’}
v.mileage()
{‘totalMileage’: 1024.9}
Următoarele funcții nu sunt implementate sau nu au funcționat:
v.charge_mode() forbidden
v.lock_status() bad gateway
v.charge_schedules() forbidden
v.notification_settings() not implemented
v.charge_history(startdate,enddate) forbidden
v.charge_statistics(startdate,enddate) forbidded
v.hvac_history(startdate,enddate) not implemented
v.hvac_statistics(startdate,enddate) not implemented
Comenzile care pot fi date sunt de pornire/oprirea a climatizării și pornirea încărcării. Ce este foarte interesant este că pornirea climatizării se poate face fără a ține cont de limita de 40% încărcare baterie din aplicație. Nu am văzut dacă e posibil și oprirea încărcării.
v.ac_start()
v.cancel_ac()
v.charge_start()
Acțiuni pe care nu le-am testat:
set_charge_schedules(schedules)
set_charge_mode(charge_mode)


Lasă un răspuns