@AlCalzone was soll ich sagen:
Vielen, Vielen Dank für deine Mühe (mein Weihnachtsgeschenk)!!!
Genau das hat mein Problem gelöst. Anbei noch der code, vielleicht erspart es anderen genau die 2 Tage, die es mich gekostet hat.
Zuerst mal installieren: (später für adapter natürlich in dependencies nicht vergessen)
npm i axios tough-cookie axios-cookiejar-support
in der main.js ganz oben mal alles einbinden:
const axios = require('axios').default;
const axiosCookieJarSupport = require('axios-cookiejar-support').default;
const tough = require('tough-cookie');
axiosCookieJarSupport(axios);
const cookieJar = new tough.CookieJar();
In der onReady() aufrufen:
async onReady() {
await this.webLogin();
}
async webLogin() {
try {
//Anmelden
const response = await axios.post(API_SERVER + '/web/login', { email, password }, { jar: cookieJar, withCredentials: true });
// in response steht jetzt die Antwort
// wenn du sie außerhalb der Funktion nutzen willst:
// return response; // oder einen Teil davon
this.log.info('webLogin OK')
//getstoveValues aufrufen, wenn webLogin OK
await this.getstoveValues();
} catch (e) {
// fehler behandeln/loggen
this.log.error('webLogin: ' + e.message);
}
}
async getstoveValues() {
try {
//json von API-Seite holen
const response2 = await axios.get(API_SERVER + '/api/client/12345678/status', { jar: cookieJar, withCredentials: true })
// in response steht jetzt die Antwort
// wenn du sie außerhalb der Funktion nutzen willst:
// return response; // oder einen Teil davon
this.log.info(JSON.stringify(response2.data));
} catch (e) {
// fehler behandeln/loggen
this.log.error('getstoveValues: ' + e.message);
}
}
Schöne Weihnachten, und nochmal vielen Dank.