Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RefreshToken error #71

Open
Heini1985 opened this issue Aug 28, 2023 · 14 comments
Open

RefreshToken error #71

Heini1985 opened this issue Aug 28, 2023 · 14 comments
Labels
bug Something isn't working

Comments

@Heini1985
Copy link

Hallo zusammen ich habe seit einiger zeit diesen Fehler.

AxiosError: Request failed with status code 401
RefreshToken error

Seit heute geht die Instanz auf rot. Wenn ich SignalR an habe funktioniert es zwar aber sehr träge und die Instanz ist gelb.
ich habe die Version 1.0.10 installiert.

image

image

könnt ihr mir weiter helfen?

Gruß

Heini1985

@Newan
Copy link
Owner

Newan commented Aug 28, 2023

Es gab wohl wieder eine Änderung an der api. Muss ich genauer bei sehen

@Newan Newan added the bug Something isn't working label Aug 28, 2023
@ivo443
Copy link

ivo443 commented Sep 5, 2023

Es gab wohl wieder eine Änderung an der api. Muss ich genauer bei sehen

Hi Newan, schon News hier? Danke dir. LG Ivo

@NCIceWolf
Copy link

Hatte ich bei mir auch im Log.
Die letzten drei Tage gab es aber eine Menge Wartungsarbeiten von Easee.

Seit der letzten heute Nachmittag und einem Neustart des Adapters danach ist bei mir wieder alles sauber.
Lag also vielleicht einfach an der Cloud API, nicht am Adapter.

@Newan
Copy link
Owner

Newan commented Sep 6, 2023

Ja es funktioniert immer mal wieder. Solange da easee die Server net stabil hat, ist es ein zeitliches Problem hier durchgehend Support zu geben. Denke wir warten noch 1-2 Tage ab.

@NCIceWolf
Copy link

Da ich heute mal wieder das Auto geladen habe:
Fehlermeldungen habe ich zwar nicht mehr, aber es scheint Probleme mit SignalR zu geben.
Updates gab es nur zum Abfrageintervall, jedoch nicht über SignalR.
Irgendwas hat Easee hier also definitiv geändert.

Im Changelog finde ich allerdings nichts. Das letzte war der SignalR URI Change, den hast du ja schon eingebaut.

@barznet
Copy link

barznet commented Sep 10, 2023

Vielleicht hilft das evcc-io/evcc#9717

@Newan
Copy link
Owner

Newan commented Sep 10, 2023

Hab ich auch beobachtet und teste gerade in meinem Evcc

@unstressable
Copy link

Hatte den heute auch bekommen und er hat das log vollgespammt:
`

easee.0 2023-11-05 13:13:23.936 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:13:23.936 error RefreshToken error
easee.0 2023-11-05 13:12:52.845 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:12:52.844 error RefreshToken error
easee.0 2023-11-05 13:12:22.415 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:12:22.415 error RefreshToken error
easee.0 2023-11-05 13:11:52.044 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:11:52.043 error RefreshToken error
easee.0 2023-11-05 13:11:21.634 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:11:21.634 error RefreshToken error
easee.0 2023-11-05 13:10:51.203 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:10:51.202 error RefreshToken error
easee.0 2023-11-05 13:10:20.835 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:10:20.834 error RefreshToken error
easee.0 2023-11-05 13:09:50.445 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:09:50.444 error RefreshToken error
easee.0 2023-11-05 13:09:20.008 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:09:20.008 error RefreshToken error
easee.0 2023-11-05 13:08:49.588 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:08:49.588 error RefreshToken error
easee.0 2023-11-05 13:08:19.138 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:08:19.138 error RefreshToken error
easee.0 2023-11-05 13:07:48.805 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:07:48.804 error RefreshToken error
easee.0 2023-11-05 13:07:18.315 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:07:18.314 error RefreshToken error
easee.0 2023-11-05 13:06:47.870 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:06:47.870 error RefreshToken error
easee.0 2023-11-05 13:06:17.434 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:06:17.434 error RefreshToken error
easee.0 2023-11-05 13:05:46.979 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:05:46.978 error RefreshToken error
easee.0 2023-11-05 13:05:16.496 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:05:16.496 error RefreshToken error
easee.0 2023-11-05 13:04:46.066 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:04:46.065 error RefreshToken error
easee.0 2023-11-05 13:04:15.601 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:04:15.600 error RefreshToken error
easee.0 2023-11-05 13:03:45.235 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:03:45.234 error RefreshToken error
easee.0 2023-11-05 13:03:14.797 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:03:14.797 error RefreshToken error
easee.0 2023-11-05 13:02:44.200 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:02:44.199 error RefreshToken error
easee.0 2023-11-05 13:02:13.766 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:02:13.765 error RefreshToken error
easee.0 2023-11-05 13:01:43.357 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:01:43.356 error RefreshToken error
easee.0 2023-11-05 13:01:12.989 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:01:12.988 error RefreshToken error
easee.0 2023-11-05 13:00:42.466 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:00:42.465 error RefreshToken error
easee.0 2023-11-05 13:00:12.095 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 13:00:12.095 error RefreshToken error
daswetter.0 2023-11-05 13:00:12.004 error exception in HourlyForecast [TypeError: Cannot read properties of undefined (reading 'city')]
easee.0 2023-11-05 12:59:41.613 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 12:59:41.612 error RefreshToken error
easee.0 2023-11-05 12:59:11.120 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 12:59:11.119 error RefreshToken error
easee.0 2023-11-05 12:58:40.739 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 12:58:40.739 error RefreshToken error
easee.0 2023-11-05 12:58:10.351 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 12:58:10.350 error RefreshToken error
easee.0 2023-11-05 12:57:39.940 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 12:57:39.939 error RefreshToken error
easee.0 2023-11-05 12:57:09.535 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 12:57:09.534 error RefreshToken error
easee.0 2023-11-05 12:56:39.104 error AxiosError: Request failed with status code 401
easee.0 2023-11-05 12:56:39.103 error RefreshToken error
easee.0 2023-11-05 12:56:08.748 error AxiosError: Request failed with status code 401
`

Vielleicht kann man das irgendwie abfangen, dass der Fehler nur 1x pro 10 Minuten oder so angezeigt wird und nicht jede halbe Minute.

@Bulls91
Copy link

Bulls91 commented Nov 16, 2023

habe den gleichen Fehler. Wenn man die Instanz von hand stoppt und 2 mins wartet dann wieder startet, dann tritt der Fehler für ein paar stunden bis zu einem Tag nicht mehr auf. Wäre schön wenn man das irgendwie abfangen könnte

@NCIceWolf
Copy link

Falls das jemandem hilft, habe mir hierfür ein Skript gebaut was genau diesen Fall abfängt und den Adapter von selbst neu startet. sollte dieser einmal nicht erreichbar sein:

// Easee adapter Neustarten falls offline
on({ id: 'system.adapter.easee.0.alive' /* easee.0 alive /, val: false }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
setStateDelayed('system.adapter.easee.0.alive' /
easee.0 alive /, true, 10000, false);
console.error('Easee Adapter gestoppt, Start in 10 Sekunden');
(() => { if (timeout) { clearTimeout(timeout); timeout = null; }})();
});
// Easee adapter Neustarten falls offline
on({ id: 'easee.0.info.connection' /
If communication with easee works /, change: 'any' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
if (getState('easee.0.info.connection').val == true) {
console.debug('Easee wieder erreichbar');
(() => { if (timeout) { clearTimeout(timeout); timeout = null; }})();
} else {
console.warn('Easee nicht erreichbar, Timer gestartet');
timeout = setTimeout(async () => {
timeout = null;
setState('system.adapter.easee.0.alive' /
easee.0 alive */, false);
console.error('Easee nicht erreichbar, Adapter Stopp');
}, 180000);
}
});

@Bulls91
Copy link

Bulls91 commented Feb 29, 2024

Danke @NCIceWolf für das Skript. Wenn ich das so übernehme, bekomme ich es jedoch in der Zeile 20 mit setState('system.adapter.easee.0.alive' / easee.0 alive */, false); nicht zum laufen. Da sagt mir der javascript-Adapter liegt ein Fehler vor.

Ich habe mir den Code auf folgendes angepasst und so startet er bei mir:

let timeout = null; // Timeout-Variable außerhalb der Funktionen deklarieren

// Wenn der Adapter offline ist
on({ id: 'system.adapter.easee.0.alive', val: false }, async (obj) => {
    let value = obj.state.val;
    let oldValue = obj.oldState.val;
    setStateDelayed('system.adapter.easee.0.alive', true, 10000, false); // Adapterstatus auf true setzen
    console.error('Easee Adapter gestoppt, Start in 10 Sekunden'); // Fehlermeldung ausgeben
    if (timeout) {
        clearTimeout(timeout); // Timeout löschen, wenn es existiert
        timeout = null;
    }
});

// Überwachen der Verbindung zum Easee
on({ id: 'easee.0.info.connection', change: 'any' }, async (obj) => {
    let value = obj.state.val;
    let oldValue = obj.oldState.val;
    if (getState('easee.0.info.connection').val === true) {
        console.debug('Easee wieder erreichbar'); // Debugmeldung ausgeben
        if (timeout) {
            clearTimeout(timeout); // Timeout löschen, wenn es existiert
            timeout = null;
        }
    } else {
        console.warn('Easee nicht erreichbar, Timer gestartet'); // Warnmeldung ausgeben
        if (timeout) {
            clearTimeout(timeout); // Timeout löschen, wenn es existiert
            timeout = null;
        }
        timeout = setTimeout(async () => {
            setState('system.adapter.easee.0.alive', false); // Adapterstatus auf false setzen
            console.error('Easee nicht erreichbar, Adapter Stopp'); // Fehlermeldung ausgeben
            timeout = null;
        }, 180000); // 180 Sekunden Timeout
    }
});

Da ich zum jetzigen Zeitpunkt den Fehlerfall nicht hatte, kann ich noch nicht sagen, ob es läuft

@NCIceWolf
Copy link

Danke @NCIceWolf für das Skript. Wenn ich das so übernehme, bekomme ich es jedoch in der Zeile 20 mit setState('system.adapter.easee.0.alive' / easee.0 alive */, false); nicht zum laufen. Da sagt mir der javascript-Adapter liegt ein Fehler vor.

Scheinbar hatte er die Definition des Timeouts nicht übernommen, hab nur eben schnell das Blockly konvertiert und hier rein kopiert.
Zumindest bei mir klappt das Skript bisher sehr gut.
Und das Easee immer mal wieder Probleme mit der API-Erreichbarkeit hat, ist leider Fakt.

Praktisch wäre wenn man die Wallbox direkt ansteuern könnte, das geht aber wohl nur über OCPP.
Und da müsste jemand schon viel Langeweile mitbringen um den Adapter hier umzubauen...
Oder man baut die Prüfung der Erreichbarkeit mit in diesen Adapter ein, ist aber natürlich auch etwas Aufwand.

@unstressable
Copy link

Danke @NCIceWolf für das Skript. Wenn ich das so übernehme, bekomme ich es jedoch in der Zeile 20 mit setState('system.adapter.easee.0.alive' / easee.0 alive */, false); nicht zum laufen. Da sagt mir der javascript-Adapter liegt ein Fehler vor.

Scheinbar hatte er die Definition des Timeouts nicht übernommen, hab nur eben schnell das Blockly konvertiert und hier rein kopiert. Zumindest bei mir klappt das Skript bisher sehr gut. Und das Easee immer mal wieder Probleme mit der API-Erreichbarkeit hat, ist leider Fakt.

Praktisch wäre wenn man die Wallbox direkt ansteuern könnte, das geht aber wohl nur über OCPP. Und da müsste jemand schon viel Langeweile mitbringen um den Adapter hier umzubauen... Oder man baut die Prüfung der Erreichbarkeit mit in diesen Adapter ein, ist aber natürlich auch etwas Aufwand.

Also wenn ich dein Script als Blockly importiere passiert gar nichts.
Als JavaScript kommt dieser Fehler:
`

javascript.0 | 2024-03-01 09:27:56.288 | error | at processImmediate (node:internal/timers:478:21) -- | -- | -- | -- javascript.0 | 2024-03-01 09:27:56.288 | error | at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1670:17) javascript.0 | 2024-03-01 09:27:56.288 | error | at /opt/iobroker/node_modules/iobroker.javascript/main.js:2195:17 javascript.0 | 2024-03-01 09:27:56.288 | error | at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2097:37) javascript.0 | 2024-03-01 09:27:56.288 | error | at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1844:21) javascript.0 | 2024-03-01 09:27:56.287 | error | at new Script (node:vm:94:7) javascript.0 | 2024-03-01 09:27:56.287 | error | SyntaxError: Unexpected token ')' javascript.0 | 2024-03-01 09:27:56.287 | error | ^ javascript.0 | 2024-03-01 09:27:56.287 | error | setState('system.adapter.easee.0.alive' / easee.0 alive */, false); javascript.0 | 2024-03-01 09:27:56.286 | error | script.js.Erkennungslogiken.Störungserkennungen.Easee-Adapter.Neustart compile failed: at script.js.Erkennungslogiken.Störungserkennungen.Easee-Adapter.Neustart:20 `

@unstressable
Copy link

Danke @NCIceWolf für das Skript. Wenn ich das so übernehme, bekomme ich es jedoch in der Zeile 20 mit setState('system.adapter.easee.0.alive' / easee.0 alive */, false); nicht zum laufen. Da sagt mir der javascript-Adapter liegt ein Fehler vor.

Ich habe mir den Code auf folgendes angepasst und so startet er bei mir:

let timeout = null; // Timeout-Variable außerhalb der Funktionen deklarieren

// Wenn der Adapter offline ist
on({ id: 'system.adapter.easee.0.alive', val: false }, async (obj) => {
    let value = obj.state.val;
    let oldValue = obj.oldState.val;
    setStateDelayed('system.adapter.easee.0.alive', true, 10000, false); // Adapterstatus auf true setzen
    console.error('Easee Adapter gestoppt, Start in 10 Sekunden'); // Fehlermeldung ausgeben
    if (timeout) {
        clearTimeout(timeout); // Timeout löschen, wenn es existiert
        timeout = null;
    }
});

// Überwachen der Verbindung zum Easee
on({ id: 'easee.0.info.connection', change: 'any' }, async (obj) => {
    let value = obj.state.val;
    let oldValue = obj.oldState.val;
    if (getState('easee.0.info.connection').val === true) {
        console.debug('Easee wieder erreichbar'); // Debugmeldung ausgeben
        if (timeout) {
            clearTimeout(timeout); // Timeout löschen, wenn es existiert
            timeout = null;
        }
    } else {
        console.warn('Easee nicht erreichbar, Timer gestartet'); // Warnmeldung ausgeben
        if (timeout) {
            clearTimeout(timeout); // Timeout löschen, wenn es existiert
            timeout = null;
        }
        timeout = setTimeout(async () => {
            setState('system.adapter.easee.0.alive', false); // Adapterstatus auf false setzen
            console.error('Easee nicht erreichbar, Adapter Stopp'); // Fehlermeldung ausgeben
            timeout = null;
        }, 180000); // 180 Sekunden Timeout
    }
});

Da ich zum jetzigen Zeitpunkt den Fehlerfall nicht hatte, kann ich noch nicht sagen, ob es läuft

Danke, dein Script funktioniert bei mir auch, also bringt keine Fehler beim Start.
Ob es auch den Adapter ordentlich neu startet und das Problem behebt, wird sich zeigen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants