NEWS
Adapter DEV FordPass JS Error Handler
-
Hallo ich habe in den letzten Tagen probiert einen Adapter zu erstellen.
Was ioBroker und JavaScript betrifft habe ich sehr wenig Erfahrung, ich programmiere normal hardwarenahe C oder kleine Python Scripte.https://github.com/Horatio2084/ioBroker.fordpass
Zurzeit funktioniert es schon Daten von der Ford API abzufragen und in ioBroker zu bringen.
Ich bin jetzt über folgendes Problem gestolpert.
Wenn die Zugangsdaten nicht korrekt sind kommt es zu einem Fehler, das ist ja auch so weit in Ordnung. Jedoch lässt sich das nicht mit den Befehlen try.... catch.. auffangen da der Error offensichtlich in dem eingebunden Modul entsteht.ffpass ist das eingebundene Modul welche die Authentifizierung mit Token usw. übernimmt.
Aus irgend einem unerklärlichen Grund wurde die Source von Github genommen und ist nur mehr über NPM verfügbar.
https://github.com/d4v3y0rk/ffpassError Message: ()
(node:3493) UnhandledPromiseRejectionWarning: Error: Request failed with status code 400 at createError (/root/node_modules/ffpass/node_modules/axios/lib/core/createError.js:16:15) at settle (/root/node_modules/ffpass/node_modules/axios/lib/core/settle.js:17:12) at IncomingMessage.handleStreamEnd (/root/node_modules/ffpass/node_modules/axios/lib/adapters/http.js:236:11) at IncomingMessage.emit (events.js:326:22) at endReadableNT (_stream_readable.js:1241:12) at processTicksAndRejections (internal/process/task_queues.js:84:21) (node:3493) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2) (node:3493) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Verwendetes Tesscript:
const fordApi = require('ffpass') async function main() { try{ const car = new fordApi.vehicle("XX", "Xx", "XX") await car.auth() // to view current vehicle information including location var vehicleData = await car.status() console.log(vehicleData) } catch(e){ console.log(e) } } main()
Zurzeit habe ich das Problem wenn die Zugangsdaten nicht in Ordnung sind, dass der Adapter ständig mit einem Error abbricht und neu startet.
Hat hier jemand eine Idee wie ich das Problem umgehen kann bzw. vorher abfragen kann ob die Zugangsdaten in Ordnung sind?
Freundliche Grüße
Horatio -
@Horatio2084 Soweit ich das beurteilen kann, ist der Fehler wirklich in der Library. Ich sehe das aber nicht so schlimm, schliesslich hat der Benutzer einen Fehler gemacht und dann stürzt halt der Adapter ab.
Einzige Möglichkeit sehe ich, dass du Benutzername und Passwort selber überprüfst, aber dann brauchst du die Library ja nicht mehr...