Re: NIU Cloud (?)
Verfasst: Di 16. Mär 2021, 00:17
Des Rätsels Lösung war der User-Agent im HTTP Request Header. Dieser wird ab v5 der NIU Cloud API nun überprüft. 
Aktualisiere Deine Version der niu-cloud-cli, es sollte nun ein Fehlercode zurückgeliefert werden, z. B. wenn das Token nicht mehr gültig ist.tbrettinger hat geschrieben: Do 1. Apr 2021, 11:21 Was mir aufgefallen ist: die cloud-cli läuft ja eine undefinierte Zeit in einer Schleife im Container - irgendwann hat das mal nicht funktioniert und die Daten blieben aus (Token ungültig?!) - leider gibt die CLI immer status "0" zurück, so dass ich per Errorcode nicht prüfen kann, ob ein Zugriff auf die Cloud geklappt hat. Im Augenblick löse ich das darüber, dass ich mir regelmässig (2 x / Tag) ein neues Token hole. Da ich mehr so der Scripter und Admin und weniger ein Entwickler bin, und auch bisher wenig Energie gehabt habe, mich mit Java zu befassen, musste das für mich erstmal reichen![]()
Wenn der esp z. B. eine REST API zur Verfügung stellt, kann man das sicherlich auch in openHAB integrieren.techsoz hat geschrieben: Do 1. Apr 2021, 11:44 Ich Weiss, das ist was ganz anderes, aber vielleicht kann man die Initiativen zusammenführen? Z. B. Auch das evoceevice von ruckelg mit open hab verbinden?
Mach ich mal, ich werde berichten, ob das klapptBlueAndi hat geschrieben: Do 1. Apr 2021, 13:54 Aktualisiere Deine Version der niu-cloud-cli, es sollte nun ein Fehlercode zurückgeliefert werden, z. B. wenn das Token nicht mehr gültig ist.
Das mit der Schleife habe ich nicht ganz verstanden, aber zeitliche Vorgaben kommen über die HTTP-Request-Response Time, d. h. unendlich lange sollte hier nichts laufen. Ist übrigens Javascript, kein Java.![]()
Das würde ich so lösen, dass ich den esp32 auch die Daten in ein mqtt schreiben lasse, und OpenHAB holt sich die Daten von da. Das ist straightforward und es geht ohne grosse Fummelei mit angepassten Bindings (auf OpenHAB Seite) - für den esp gibt es eine mqtt library die die ganze Arbeit schon macht (ich hab jetzt nicht geschaut, ob die ruckelg Lösung die Arduino IDE nutzt - dort habe ich das mit einem esp32 nämlich schonmal gemacht, allerdings um Bodenfeuchte zu messen...)BlueAndi hat geschrieben: Do 1. Apr 2021, 13:54Wenn der esp z. B. eine REST API zur Verfügung stellt, kann man das sicherlich auch in openHAB integrieren.techsoz hat geschrieben: Do 1. Apr 2021, 11:44 Ich Weiss, das ist was ganz anderes, aber vielleicht kann man die Initiativen zusammenführen? Z. B. Auch das evoceevice von ruckelg mit open hab verbinden?
Hallo Thomastbrettinger hat geschrieben: Do 1. Apr 2021, 11:21 Hallo zusammen,
ich habe mich auch mal mit dem Thema ein wenig befasst und nun einen Stand erreicht, über den ich gern mal berichten wollte (falls sonst jemand was damit anfangen kann).
Ich nutze die Cloud-CLI https://github.com/BlueAndi/niu-cloud-cli in einem Docker-Container, um damit die Werte meines Rollers auszulesen und regelmässig in mein mqtt (mosquitto) zu schreiben.
Darauf greife ich mit OpenHAB zu, wo ich das ganze dann nett darstellen kann (inkl. Grafana) aber vor allem die eine oder andere Logik implementieren (das Ladegerät hängt an einer Tasmota-Steckdose, die durch OpenHAB ebenfalls geschaltet wird):
- das Ladegerät wird bei erreichen des Ziel-Ladestands (zB 80%) abgeschaltet
- das laden wird begonnen, wenn der Roller durch längere Standzeit unter einen Minimal-Ladestand gefallen ist (zB 60%)
- die Ladeautomatik (o.g. Verhalten) wird ausgeschaltet, wenn der Roller sich weiter als x (z.B. 500) Meter von zuhause entfernt (ich bzw OpenHAB bekomme ja nicht mit, ob der Roller an das stromlose Ladegerät angeschlossen ist. Idee daher: ich stecke den Roller ein, starte die Automatik und OpenHAB hält den Roller immer zwischen 60-80% Ladung. Wenn ich dann fahre, wird die Automatik abgeschaltet. Nach dem nächsten anschliessen schalte ich sie dann wieder über das Webinterface ein).
- Ich habe noch ein "jetzt sofort aufladen" (egal, wo der Ladestand gerade ist) und ein "diesmal bis 100% laden" implementiert, aber das braucht noch etwas Pflege.
Meine Anforderungen sind damit wohl zunächst erfüllt.
Was mir aufgefallen ist: die cloud-cli läuft ja eine undefinierte Zeit in einer Schleife im Container - irgendwann hat das mal nicht funktioniert und die Daten blieben aus (Token ungültig?!) - leider gibt die CLI immer status "0" zurück, so dass ich per Errorcode nicht prüfen kann, ob ein Zugriff auf die Cloud geklappt hat. Im Augenblick löse ich das darüber, dass ich mir regelmässig (2 x / Tag) ein neues Token hole. Da ich mehr so der Scripter und Admin und weniger ein Entwickler bin, und auch bisher wenig Energie gehabt habe, mich mit Java zu befassen, musste das für mich erstmal reichen
Bei Fragen -> fragen, ich liefere gern mehr Infos zu meinem Setup.
Viele Grüße
Thomas
Danke, ich kann dir leider nicht antworten (muss wohl einen Admin kontaktieren)