Seite 10 von 24
Re: NIU Cloud (?)
Verfasst: Do 20. Jun 2019, 20:20
von blackblade
ludwich hat geschrieben: Do 20. Jun 2019, 20:04
Die Einträge unter
items Array.<Object> ?
items.x number ?
items.y number ?
items.z number ?
sind bei meinen M+ leider "leer".
Hast du die Daten aus diesen "items" generiert?
ludwich
Das ist bei mir auch alles leer. Ich lasse die Daten alle zwei Minuten abfragen.
Re: NIU Cloud (?)
Verfasst: Fr 21. Jun 2019, 00:26
von BlueAndi
Bei mir sind Werte hinterlegt, scheint aktuell ein NGT Feature zu sein.
Re: NIU Cloud (?)
Verfasst: Fr 21. Jun 2019, 00:42
von guro
Ups mein fehler, nachdem ich sie nicht deuten konnte habe ich items[] aussortiert. Allerdings zählt pro Akku nur X von 0 bis 450 und Y,Z sind immer 0.
Ich glaub nicht das es nur ein N-GT feature ist, die App zeigt mir beim meinem Npro das ja auch an. Glaube kaum das sie das in der App speichert.
Re: NIU Cloud (?)
Verfasst: Fr 21. Jun 2019, 01:59
von guro
@blackblade: du sammelst die aktuellen Daten regelmäßig vom Server und baust dir daraus den Graph?
Ich hab mal n bissl gebastelt und folgendes gefunden:
Code: Alles auswählen
/v3/motor_data/cycling_statistics?sn='{sn}&sortby={x}
--> x=1,2,3; returns daily/weekly/monthly statistic like 'Ride Statistics' in app
/v3/motor_data/battery_chart?sn={sn}&page={?}&page_size={?}&pageLength={?}
--> apparently the right url, but always getting empty data-array as return, no matter what page, page_size and pageLength are set to...; if not set it returns missing argument
jemand noch eine Idee ?

Re: NIU Cloud (?)
Verfasst: Fr 21. Jun 2019, 03:37
von guro
Ich habs entschlüsselt!!!

(sorry für die vielen Posts, danke @ Moderatoren!)
der bmsID hat mich nerven gekostet, habe hier natürlich immer die Batterie-ID aus anderen Querys eingefügt... auf 3 kommt man da nicht so schnell
Code: Alles auswählen
/v3/motor_data/battery_chart?sn={sn}&page={8}&page_size={A}&pageLength={1}&bmsId=3'; //page=number, newest_km is 0; page_size=A|B -> Batteryselector; pageLength=1,2 -> x*~100 Items; bmsID == 3 dunno why
Output ist dann ein Array mit Km-Stand[m]->Batterie%[ b]
Man muss immer min. den page=0 query machen, sonst liefert der Rest ein leeres Array (der Server muss wohl erstmal sortieren); danach zählt man 'page' so lange hoch bis das Return-Array 0 groß ist. Idealerweise speichert man sich einfach die Werte noch Lokal, dann muss man nur die neuesten holen->Schneller.
Achja, Pro KM gibts einen Wert:
Code: Alles auswählen
stdClass Object
(
[items1] => Array
(
[0] => stdClass Object
(
[m] => 1
[b] => 100
)
[1] => stdClass Object
(
[m] => 2
[b] => 100
)
[2] => stdClass Object
(
[m] => 3
[b] => 100
)
[..]
[18] => stdClass Object
(
[m] => 19
[b] => 52
)
[19] => stdClass Object
(
[m] => 20
[b] => 99
)
)
)
PS: Das gute an der Sache: Der NIU Server überwacht die Anzahl der Querys wohl nicht. über 1000 Querys "BruteForce" gingen ohne Probleme durch, nur die übliche Verzögerung pro Anfrage für Verarbeitung
Gute Nacht

Re: NIU Cloud (?)
Verfasst: Fr 21. Jun 2019, 07:53
von blackblade
guro hat geschrieben: Fr 21. Jun 2019, 01:59
@blackblade: du sammelst die aktuellen Daten regelmäßig vom Server und baust dir daraus den Graph?
exakt
Re: NIU Cloud (?)
Verfasst: Fr 21. Jun 2019, 13:21
von guro
und heute kommt die Ernüchterung: Nachdem ich den Graph geplotet habe kommt doch nur Unsinn raus.
Page=0 & page_size=A & pageLength=1 liefert die letzten ~100 Werte von Akku A
Page=0 & page_size=B & pageLength=1 liefert die letzten ~200 Werte von Akku A (!?)
macht man pageLength=2 bekommt man das gleiche Array einfach Doppel (items1 und items2) zurück.
Es scheint also die Umschaltung nicht zu funktionieren
Page_size ändert einfach nur die Länge des Arrays
Die NIU-App zeigt weiterhin den Rücksprung eines Akkus von 91% auf 100%, welches ich in den Daten nicht sehe.
Re: NIU Cloud (?)
Verfasst: Fr 21. Jun 2019, 13:36
von BlueAndi
Habe es mir auch gerade angeschaut und sieht für mich wie folgt aus:
bmsId 1 = Akku A
bmsId 2 = Akku B
bmsId 3 = Akku A + B (?)
Bei page_size kann ich auch "apfel" angeben, ist irgendwie egal.
Es scheint aber mit pageLength irgendwie zu korrelieren.
Re: NIU Cloud (?)
Verfasst: Fr 21. Jun 2019, 13:39
von guro
und heute kommt die Ernüchterung: Nachdem ich den Graph geplotet habe kommt doch nur Unsinn raus.
Page=0 & page_size=A & pageLength=1 liefert die letzten ~100 Werte von Akku A
Page=0 & page_size=B & pageLength=1 liefert die letzten ~200 Werte von Akku A (!?)
macht man pageLength=2 bekommt man das gleiche Array einfach Doppel (items1 und items2) zurück.
Es scheint also die Umschaltung nicht zu funktionieren
Page_size ändert einfach nur die Länge des Arrays
Die NIU-App zeigt weiterhin den Rücksprung eines Akkus von 91% auf 100%, welches ich in den Daten nicht sehe.
Edit: bmsId ist die Lösung! page=0, _size=a, length=1, bmsID=3 -> Akku A; bmsID=2 -> Akku B
Re: NIU Cloud (?)
Verfasst: Fr 21. Jun 2019, 17:44
von bilbo_b
Hallo zusammen,
habe mal mit kräftiger Unterstützung zweier Freunde (Danke telegnom und Hinerk) was in python zusammen geklöppelt (im Wesentlichen aus Volkers php-Script und Andis node-Implementierung portiert). Ist das erste Mal, daß ich Code veröffentliche also wenn nicht genügend Hinweise woher inspiriert oder sonst was nicht ok, laßt es mich bitte wissen, es ist nichts in böser Absicht passiert. Wollte nur für mich was in python haben und hatte Andere auch danach fragen sehen.
Also schaut mal hier:
https://github.com/bilbo-b/niu-api.py und laßt mich wissen, was Ihr denkt, bitte.
Gruß,
bilbo_b