Ja nach wie vor die Fahrdaten mit letzter Fahrt vom 14.07.18 14:42Mei hat geschrieben: Siehst du überhaupt Daten im Portal?
Hallo Christian,ChristianF hat geschrieben:VW wird Dein Vorhaben kaum unterstützen, da das Scripting nicht vorgesehen und erst Recht nicht unterstützt ist.
Meine iobroker Implementierung läuft ganz gut, vllt tauschen wir mal die Scripte aus?
Bei mir genausoberrx hat geschrieben:Ja nach wie vor die Fahrdaten mit letzter Fahrt vom 14.07.18 14:42Mei hat geschrieben: Siehst du überhaupt Daten im Portal?
Es wird angezeigt Wagen entriegelt, Licht an, 153km Reichweite ein alter Kilometerstand keine Parkposition.
Sorry for delay, hier meine Scripte:Sneak-L8 hat geschrieben:Hallo Christian,ChristianF hat geschrieben:VW wird Dein Vorhaben kaum unterstützen, da das Scripting nicht vorgesehen und erst Recht nicht unterstützt ist.
Meine iobroker Implementierung läuft ganz gut, vllt tauschen wir mal die Scripte aus?
mein Skript hab ich hier schon verlinkt, magst Du Deines noch zur Verfügung stellen?
Viele Grüße
Sneak-L8
P.S. Weiß jemand, was die Fehlercodes beim Abruf der Daten bedeuten? Bekomme zur Zeit relativ oft Errorcode 2...
Code: Alles auswählen
//CNCmdMgr
const eMail="MyM@il";
const passWord="MyPaSsWoRd";
const fin="WVWZZZAUZXY123456";
// Sicherstellen, dass alle Status-Variablen existieren
const U = 'undefined';
var forceCreation = 0;
var BatteryPercentage = U; createState('CarNet.eGolf.BatteryPercentage', 'undefined', forceCreation, {name: 'CarNet.eGolf.BatteryPercentage'});
var ElectricRange = U; createState('CarNet.eGolf.ElectricRange', 'undefined', forceCreation, {name: 'CarNet.eGolf.ElectricRange'});
var LockState = U; createState('CarNet.eGolf.LockState', 'undefined', forceCreation, {name: 'CarNet.eGolf.LockState'});
//var ExtPowerState = U; createState('CarNet.eGolf.ExtPowerState', 'undefined', forceCreation, {name: 'CarNet.eGolf.ExtPowerState'});
//Car-Net Funktion
function CNExecCmd(cmd, callback){
var cnCmd="";
var data={};
cmdUmsetzen(cmd,function(c,d){
cnCmd=c;
data=d;
});
var req=require('request');
var j=req.jar();
getLoginPage="https://www.volkswagen-car-net.com/portal/de_DE/web/guest/home/-/csrftokenhandling/get-login-url";
loginReq="https://security.volkswagen.com/ap-login/jsf/login.jsf";
loginReqParam="loginForm=loginForm&loginForm:email="+encodeURIComponent(eMail)
+"&loginForm:password="+encodeURIComponent(passWord)+"&loginForm:j_idt18=&javax.faces.ViewState="
+"XVIEWSTATEX"
+"&javax.faces.source=loginForm:submit&javax.faces.partial.event=click&javax.faces.partial.execute=loginForm:submit%20loginForm"
+"&javax.faces.partial.render=loginForm&javax.faces.behavior.event=action&javax.faces.partial.ajax=true";
loginReq2="https://www.volkswagen-car-net.com/portal/de_DE/web/guest/complete-login?p_auth="
+ "XSTATEX"
+ "&p_p_id=33_WAR_cored5portlet&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_33_WAR_cored5portlet_javax.portlet.action=getLoginStatus&_33_WAR_cored5portlet_code="
+ "XCODEX"
+ "&_33_WAR_cored5portlet_landingPageUrl=";
req.post({url: getLoginPage,
jar: j},
function(error, response, body){
var json=JSON.parse(body);
u=json.loginURL.path;
req.post({url: u,
jar: j},
function(error, response, body) {
u=response.headers.location;
req.post({url: u,
jar: j},
function(error, response, body) {
var viewState=body.substr(body.indexOf("j_id1:javax.faces.ViewState:0")+38);
viewState=viewState.substr(0,viewState.indexOf('"'));
u=loginReq+"?"+loginReqParam.replace("XVIEWSTATEX",encodeURIComponent(viewState));
req.post({url: u,
jar: j},
function(error, response, body) {
u=response.headers.location;
req.post({url: u,
jar: j},
function(error, response, body) {
u=response.headers.location;
var code=u.substr(u.indexOf("?code")+6,u.indexOf("&state"));
var state=u.substr(u.indexOf("&state")+7);
u=loginReq2.replace("XSTATEX",state);
u=u.replace("XCODEX",code);
req.post({url: u,
jar: j},
function(error, response, body) {
u=response.headers.location+"/-/"+cnCmd;
console.log("CMD: "+cnCmd+" - "+JSON.stringify(data));
req.get({url: u,
jar: j,
json: data},
function(error, response, body) {
callback(body);
});
});
});
});
});
});
});
function cmdUmsetzen(cmd,callback){
var newCmd="vehicle-info/get-vehicle-details";
var data={};
if (cmd==="car.details"){}
if (cmd==="charge.status") newCmd="emanager/get-emanager";
if (cmd==="car.lasttrip") newCmd="rts/get-latest-trip-statistics";
if (cmd==="refuel.details") newCmd="rts/get-last-refuel-trip-statistics";
if (cmd==="get.messages") {
newCmd="msgc/get-messages";
data={'selectedVehicle':fin};
}
if (cmd==="car.wakeGolf") newCmd="vsr/request-vsr";
if (cmd==="climate.start") {
newCmd="emanager/trigger-climatisation";
data={"triggerAction":"true"};
}
if (cmd==="climate.stop") {
newCmd="emanager/trigger-climatisation";
data={"triggerAction":"false"};
}
if (cmd==="charge.start") {
newCmd="emanager/charge-battery";
data={"triggerAction":"true"};
}
if (cmd==="charge.stop") {
newCmd="emanager/charge-battery";
data={"triggerAction":"false"};
}
callback(newCmd,data);
}
}
function cnGetCarNetData(){
CNExecCmd('charge.status', function(cnAnswer){
log(JSON.stringify(cnAnswer));
//log(cnAnswer.EManager.rbc.status.batteryPercentage);
//log(cnAnswer.EManager.rbc.status.electricRange);
//log(cnAnswer.EManager.rbc.status.lockState);
//log(cnAnswer.EManager.rbc.status.extPowerSupplyState);
var temp;
// SOC in %
if ((temp = cnAnswer.EManager.rbc.status.batteryPercentage) != BatteryPercentage) {
log(temp, 'debug');
setState('CarNet.eGolf.BatteryPercentage', temp);
BatteryPercentage = temp;
}
// Reichweite in km
if ((temp = cnAnswer.EManager.rbc.status.electricRange) != ElectricRange) {
log(temp, 'debug');
setState('CarNet.eGolf.ElectricRange', temp);
ElectricRange = temp;
}
// // Ladestecker gesteckt
// if ((temp = cnAnswer.EManager.rbc.status.extPowerSupplyState) != extPowerSupplyState) {
// log(temp, 'debug');
// setState('CarNet.eGolf.ExtPowerState', temp);
// ElectricRange = temp;
// }
// Türen & Fenster
if ((temp = cnAnswer.EManager.rbc.status.lockState) != LockState) {
log(temp, 'debug');
setState('CarNet.eGolf.LockState', temp);
LockState = temp;
}
});
}
setInterval(cnGetCarNetData, 1800000); // Abfrage alle 10 Minuten = 600000 ms