NIU Cloud (?)

Antworten
Benutzeravatar
ludwich
Beiträge: 44
Registriert: Fr 3. Mai 2019, 19:36
Roller: NIU M+ Sport
PLZ: 81
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von ludwich »

Morgen Bilbo-B,

ich bekomme es nicht zum laufen (SBC mit Armbian Ubuntu Linux)
Erst hat er die Sprachcodierung angemeckert, trotz explizitem Hinweis auf Python3 ??
FiX:
# -*- coding: utf-8 -*

Weiter meckert er an os.py rum.
keine Ahnung wie ich das prüfen kann...

Traceback (most recent call last):
File "niu-api.py", line 13, in <module>
NIU_EMAIL = os.environ['mail@email.com']
File "/usr/lib/python3.6/os.py", line 669, in __getitem__
raise KeyError(key) from None
KeyError: 'mail@email.com'

Hast du nen Tipp für mich?
Ludwig

bilbo_b
Beiträge: 7
Registriert: So 16. Jun 2019, 18:56
Roller: NIU N1S
PLZ: 6
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von bilbo_b »

Hallo Ludwig,

sieht so aus, als hättest Du nicht die Shell Environment-Variable gesetzt, sondern Deine Email-Adresse im Programm eingetragen.

wenn Du es hart codieren möchtest, würdest Du die Zeile in

NIU_EMAIL = 'mail@email.com'

ändern (und die nächsten beiden entsprechend). Ansonsten VOR dem Aufruf des Python-Scripts die 3 exports in der Shell ausführen.

Ich hab mir diese exports in meine .profile gelegt, so daß sie immer gesetzt sind und ich mein Passwort nicht in Programmtext eintragen muß.

Gruß,
Bilbo

Benutzeravatar
ludwich
Beiträge: 44
Registriert: Fr 3. Mai 2019, 19:36
Roller: NIU M+ Sport
PLZ: 81
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von ludwich »

Meister Beutlin,

das war ein guter Tipp. Es wirft zwar noch Fehler wenn keine Track-Daten vorhanden sind - wie es bei meinem Roller der Fall ist.
Das macht er bis heute noch nicht - Niu, KSR und mein Händler haben noch keine Lösung parat...

Traceback (most recent call last):
File "niu-api.py", line 106, in <module>
print (' Timestamp: ', motorInfo['data']['lastTrack']['time'])
KeyError: 'time'

Ich habe das PHP Script um eine Anzeige der Position auf der Openstreetmap-Karte erweitert.
Du siehst dann ein neues Browserfenster mit Marker an der Position.

echo "\t<a href='https://www.openstreetmap.org/?mlat={$d ... stion->lng}' target='_blank'>Standort in OSM anzeigen</a>" . PHP_EOL;

Code: Alles auswählen

	=============================================================================================
	= Daten meines roten NIU M+ Sport                                                           =
	=============================================================================================
	Batterie im Roller?                            : ja
	Abgesperrt?                                    : ja
	Batterietemperatur                             : 33 °C
	Batterie Ladestand                             : 64 %
	Pufferakku Ladestand                           : 100 %
	Voraussichtliche Fahrleistung                  : 76 Km
	GPS-Daten                                      : 49.089405, 12.599212 at 06/21/2019 19:43:14
	GPS Qualität - GSM Qualität 0-5                : 4 GPS-Balken  4 GSM-Balken
	
	
	[u]Standort in OSM anzeigen[/u]
	
Bitte weiterbasteln -- ich würde für meine Lösung Python vorziehen. ;-)

Gruß Ludwig

bilbo_b
Beiträge: 7
Registriert: So 16. Jun 2019, 18:56
Roller: NIU N1S
PLZ: 6
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von bilbo_b »

Hallo Ludwig,

freut mich, daß es grundsätzlich bei Dir läuft. Den Fehler sollte ich noch abfangen, muß ich später mal schauen.

ich hab die CLI-Variante quasi als Vorstufe für einen Prometheus-Exporter gebaut. Den hab ich grade gepusht.
Screenshot 2019-06-22 at 11.16.44.png
Dabei fiel mir auf, daß ein Bindestrich im Dateinamen doof ist, wenn man es anschließend als Modul importieren möchte.

Also heißt das was vorher niu-api.py hieß jetzt niu.py und es gibt einen niu_exporter.py, der auf niu.py angewiesen ist.

Noch recht rudimentär, erst mal die (mir) wichtigsten Daten, um zu schauen, wo es noch klemmt.

Hast Du eine Idee und magst mal testen, wieso das mit dem OverallTally nicht klappt? Hab schon statt get ein post probiert, half aber nix.
Krieg immer 404 not found :(

Gruß,
Bilbo

bilbo_b
Beiträge: 7
Registriert: So 16. Jun 2019, 18:56
Roller: NIU N1S
PLZ: 6
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von bilbo_b »

So, jetzt hab ich auch verstanden, wie das mit dem overallTally läuft
(daß man die sn nicht als param, sondern in post-data mit gibt).

Gruß,
bilbo

Benutzeravatar
ludwich
Beiträge: 44
Registriert: Fr 3. Mai 2019, 19:36
Roller: NIU M+ Sport
PLZ: 81
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von ludwich »

Hallo Bilbo,

ich habe den Fehler bei fehlenden Trackdaten mal so abgefangen.
Klappt das auch bei dir mit Werten im Array?

Code: Alles auswählen

if (len(motorInfo['data']['lastTrack'])) != 0:
                print ('Last Track:  ')
                print ('  Timestamp:   ', motorInfo['data']['lastTrack']['time'])
                print ('  Distance:    ', motorInfo['data']['lastTrack']['distance'])
                print ('  Riding Time: ', motorInfo['data']['lastTrack']['ridingTime'])
ludwich

bilbo_b
Beiträge: 7
Registriert: So 16. Jun 2019, 18:56
Roller: NIU N1S
PLZ: 6
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von bilbo_b »

Hallo Ludwig,

hab ich so eingebaut und funktioniert auch mit Werten bei mir.

Im Zweifel müßte man eigentlich jeden Teil einzeln prüfen ob da, bevor man ihn ausgibt.

Hab nur generell gecheckt, ob auf den request "was vernünftiges" kommt, nicht für jeden Einzelwert.

Hab Deine Lösung so aufgenommen, kommt bei der nächsten Änderung mit ins Git.

Gruß,
Bilbo

Benutzeravatar
ludwich
Beiträge: 44
Registriert: Fr 3. Mai 2019, 19:36
Roller: NIU M+ Sport
PLZ: 81
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von ludwich »

Ich hab grad nen PullReq angelegt

ludwich

bilbo_b
Beiträge: 7
Registriert: So 16. Jun 2019, 18:56
Roller: NIU N1S
PLZ: 6
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von bilbo_b »

Hallo Ludwig,

wow, mein erster Merge ;)

Scheint jetzt aber nach leichter Korrektur nach dem Merge jetzt wieder zu funktionieren.
Zieh Dir noch mal die aktuelle Fassung und schau, ob es so für Dich funktioniert wie geplant, bitte.

Gruß,
bilbo

bilbo_b
Beiträge: 7
Registriert: So 16. Jun 2019, 18:56
Roller: NIU N1S
PLZ: 6
Kontaktdaten:

Re: NIU Cloud (?)

Beitrag von bilbo_b »

Habe gestern festgestellt, daß die Ladewerte nicht grade in feiner Granularität über die API bereit stehen.

z.B. stand der Charge-Wert beim Laden 30 Minuten auf 72%, dann mit einem Satz auf 82% (andere Stufen ähnlich).
Ich frage alle 2 Min die API ab.

Ist das bei Euch ähnlich? Habt Ihr evtl. schon rausgekriegt woran das liegt (könnte mir in der Tiefgarage vorstellen, daß mancher Update-Versuch wg. schlechtem Mobil-Empfang fehlschlägt?)

Gruß,
bilbo

Antworten

Zurück zu „NIU“

Wer ist online?

Mitglieder in diesem Forum: Selectric und 382 Gäste