NEWS
Test Adapter Niu E-Scooter
-
Natürlich nicht - Das steht im Log:
niu.0 2022-04-30 23:16:11.097 error "" niu.0 2022-04-30 23:16:11.097 error Error: Request failed with status code 500 niu.0 2022-04-30 23:16:11.096 error https://app-api-fk.niu.com//v5/scooter/motor_data/index_info?sn=undefined
Da die SN bzw FIN nicht ausgelesen wird kommt es zu dem Status 500.
-
@cws Ich brauch entweder den debug log via PN oder Zugangsdaten dann könnte ich das beheben
-
Nabend zusammen,
ich habe mal den Debug-Log angeschmissen und habe dort festgestellt, dass es bei dem UQi den Datenpunkt "sn" nicht gibt. Der heißt dort "sn_id".
Wenn ich in der main.js in Zeile 121
const vin = device.sn
inconst vin = device.sn_id
ändere, dann kommt auch der 500er Fehler nicht mehr und es werden Daten ausgelesen. Leider funktioniert hier keine if-Schleife im Sinne vonconst vin = device.sn_id; if (device.sn) { vin = device.sn; }
Er meckert wegen der Konstanten.
Bei der weiteren Recherche bin ich noch auf folgendes Re-Engineering gestoßen:
https://github.com/Bonnee/niu-app-apiDort sind noch ein paar URL's enthalten, die noch mehr Daten auslesen können. Diese habe ich nun auch etwas durchgetestet und ebenfalls in der main.js in der Funktion
asnyc updateDevices()
folgenden Code angehängt:{ path: "scooter_info", url: "https://app-api-fk.niu.com/v3/motor_data/index_info?sn=$vin", desc: "More Information of the scooter", }, { path: "track", url: "https://app-api-fk.niu.com/v5/scooter/motor_data/track?sn=$vin", desc: "Tracks of the scooter", }, { path: "cycling_statistics.day", url: "https://app-api-fk.niu.com/v3/motor_data/cycling_statistics?sortby=1&sn=$vin", desc: "Cycling statistics by day of the scooter", }, { path: "cycling_statistics.week", url: "https://app-api-fk.niu.com/v3/motor_data/cycling_statistics?sortby=2&sn=$vin", desc: "Cycling statistics by week of the scooter", }, { path: "cycling_statistics.month", url: "https://app-api-fk.niu.com/v3/motor_data/cycling_statistics?sortby=3&sn=$vin", desc: "Cycling statistics by month of the scooter", },
Damit erhalte ich noch etwas mehr Informationen.
Interessanter Weise bekomme ich beim Aufruf der URL https://app-api-fk.niu.com/v5/scooter/motor_data/index_info?sn= ebenfalls einen 500er-Fehler und daher keine Daten. Der Teil zu "track" liefert im Moment auch nur einen 404-Fehler, von daher muss man mal schauen, wie da die richtige URL lautet. Habe ich im Moment noch etwas ausgeklammert.
Zumindest mit "scooter_info" bekomme ich noch etwas mehr Informationen, wie den aktuellen Batterieladestand und auch die Position (lng / lat) von dem Scooter.
Bei "cycling_statistics" hab ich noch nicht ganz raus, was die Parameter bei "sortby" bedeuten: Hier kann man 1, 2 oder 3 angegeben. Vermutlich die Statistic für Tag, Woche und Monat - ich glaube so gibt es das auch in der App. Daher hier mal die 3 Varianten.
"batter_info" bringt bei mir nur unmengen an Datenpunkten ohne wirklich Inhalte. Daher habe ich die auch mal ausgeklammert. Ebenso "battery_info_health". Die Informationen, die ich über "scooter_info" bekomme, reichen mir da. Bei "battery_info_health" versucht er bei mir auch einen Datenpunkt "Ladezyklen * 2" zu setzen, der nur auf Fehler läuft. Ich vermute mit dem "* 2" kommt er nicht zurecht.
Hier die Fehlermeldungen dazu:
State "niu.0.VIN.battery_info_health.data.batteries.compartmentA.Ladezyklen * 2.result" has no existing object, this might lead to an error in future versions Error: Invalid ID: niu.0.VIN.battery_info_health.data.batteries.compartmentA.Ladezyklen * 2.name Error: Invalid ID: niu.0.VIN.battery_info_health.data.batteries.compartmentA.Ladezyklen * 2.time Error: Invalid ID: niu.0.VIN.battery_info_health.data.batteries.compartmentA.Ladezyklen * 2.color Error: Invalid ID: niu.0.VIN.battery_info_health.data.batteries.compartmentA.Ladezyklen * 2.chargeCount Error: Invalid ID: niu.0.VIN.battery_info_health.data.batteries.compartmentA.Ladezyklen * 2.result Error: Invalid ID: niu.0.VIN.battery_info_health.data.batteries.compartmentA.Ladezyklen * 2
Soweit meine aktuelle Analyse. Ich mache gleich mal ein Pull request für die main.js, dann siehst Du, wo ich die Veränderungen gemacht habe.
Schönen Abend.
Michael -
@cws Kann ich mergen aber mit zugangsdaten könnte ich genau sehen was die App wie abfragt
-
Danke an @tombox für die weiter Umsetzung.
Mit Version 0.0.2 sieht erst mal alles soweit gut aus und liefert zumindest keine Fehlermeldungen mehr.
Ich glaube aber, dass die Objekte unter "status" und "scooter_info" nahezu die gleichen sind. "status" hat sogar noch ein paar mehr Informationen. Das prüfe ich nochmal im Detail, aber vermutlich kann man dann die Sachen für "scooter_info" noch aus der main.js wieder raus nehmen (oder zunächst mal auskommentieren).
Gibt es noch weitere Niu-ioBroker-User? Damit natürlich auch andere Modelle getestet werden können. Mein UQi GT ist ja eher ein exot hier in Deutschland.
-
Jo, sorry, war etwas in der Versenkung, da ich auch die Login Daten von meiner Frau nicht hatte
Ich hatte ja auch den NIU Adapter request gestellt.
Auf jeden Fall erst einmal super, dass da was gemacht wurde.Sie hat einen NQi Sport. Die Daten kommen. Und die Fehler sind ab der neuen Version auch verschwunden.
-
Eine Sache fällt doch auf.
Und zwar sind die Datenpunkte nicht immer aktuell.
Oft mal hängen alte Daten drin, erst wenn ich den Adapter neu starte werden sie aktualisiert.
Update interval habe ich auf 2 Minuten eingestellt. -
@hg6806 Sollte eigentlich nicht passieren kannst ja den adapter in log level debug setzen und schauen ob er aktualisiert
-
Das hatte gestern alles funktioniert, jetzt kommt wieder kein Update mehr und eine Menge Fehlermeldungen. Steht alles auf Debug.
niu.0 2022-06-02 17:26:20.823 error TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "token" niu.0 2022-06-02 17:26:20.822 error https://app-api-fk.niu.com/v3/motor_data/cycling_statistics?sortby=3&sn=NA2L4Axxxxxxxxx niu.0 2022-06-02 17:26:20.820 error TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "token" niu.0 2022-06-02 17:26:20.820 error https://app-api-fk.niu.com/v3/motor_data/cycling_statistics?sortby=2&sn=NA2L4Axxxxxxxxxxx niu.0 2022-06-02 17:26:20.817 error TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "token" niu.0 2022-06-02 17:26:20.816 error https://app-api-fk.niu.com/v3/motor_data/cycling_statistics?sortby=1&sn=NA2L4Axxxxxxxxxxx niu.0 2022-06-02 17:26:20.814 error TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "token" niu.0 2022-06-02 17:26:20.814 error https://app-api-fk.niu.com/v5/track/list/v2 niu.0 2022-06-02 17:26:20.811 error TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "token" niu.0 2022-06-02 17:26:20.811 error https://app-api-fk.niu.com/v3/motor_data/index_info?sn=NA2L4Axxxxxxx niu.0 2022-06-02 17:26:20.808 error TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "token" niu.0 2022-06-02 17:26:20.808 error https://app-api-fk.niu.com/v5/scooter/motor_data/index_info?sn=NA2L4Axxxxxxxx niu.0 2022-06-02 17:26:20.805 error TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "token" niu.0 2022-06-02 17:26:20.805 error https://app-api-fk.niu.com/v3/motor_data/battery_info?sn=NA2L4Axxxxxxx niu.0 2022-06-02 17:26:20.802 error TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "token" niu.0 2022-06-02 17:26:20.802 error https://app-api-fk.niu.com/v3/motor_data/battery_info/health?sn=NA2L4Axxxxxxx
-
@hg6806 Kannst du nochmal installieren und schauen ob der fehler weg ist
-
So, ich hab den Adapter jetzt seit dem letzten Update laufen und es kamen keine Fehler mehr usw. Würde sagen das Ding ist reif, um es auch auf mehr loszulassen. Was meint ihr?
Jemand ne Idee für die Adapter-Beschreibung? Ich kann ansonsten gerne mal den Vorschlag machen - erst mal auf Deutsch. Hab ich aber noch nie gemacht, von daher bräuchte ich da mal Hilfe.
-
Sagt mal, gibt es seitens API keine Info über den derzeitigen Kilometerstand des Fahrzeugs?
Also ich habe zumindest nichts gefunden.
Da ich das Ladegerät PV-bedingt über einen SONOFF POW freigebe, kann ich auch die Ladeenergie mittracken und somit immer den derzeitigen Stromverbrauch des Rollers berechnen. Dazu brauche ich aber immer den Kilometerstand.