Vielen Dank für dein tun.
Dankeschön für den Einsatz Markus
Hallo,
ich versuche seit einiger Zeit die SoC-Lücke zwischen dem Polestar und meiner openWB-Wallbox zu schließen, um sinnvolles Überschussladen umzusetzen. Es liegt nahe, hierfür den HTTP-Webhook im CSV zu verwenden. Dafür habe ich eine HTTPS-geeignete NodeRed-Instanz auf einem Raspi aufgesetzt und ein wenig programmiert und was soll ich sagen … … es geht noch nicht
Ich habe einen Flow erstellt, der über einen http-in-Node mit BasicAuth versehene HTTPS-POSTs mit JSON-Payload entgegennimmt und - nach Extraktion des SoC - diesen über einen mqtt-out-Node an die Wallbox weiterreicht. Die gesamte Kette funktioniert, wenn ich sie mit einem Test-Request von „https://reqbin.com/post-online“ beaufschlage. Dabei habe ich auch versucht, die JSON-Datenstruktur von CSV nachzubilden. Ich kann hierüber wunderbar den SoC meines Polestars „einstellen“.
Leider bekommt CSV über seine API keine Verbindung zu der NodeRed-Instanz, trotz gleicher Zieladresse (…myfritz.net), gleichem Port, gleichem User und gleichem Passwort. Ich ernte im CSV-Log nur „HTTP Connection Error“.
Weiß jemand, wo mein Denkfehler ist?
Gruß
Ralph
Ist dein Endpoint mit Zertifikat, also httpS?
Android setzt das voraus, ansonsten gehts nicht.
Ja, https ist in den NodeRed-Einstellungen aktiviert, mit einem selbstsignierten Zertifikat. Zugriff von Vivaldi aus funktioniert nach dem obligatorischen „…unsicher…“.
Das bedeutet auf jeden Fall, dass auf dem Transportweg etwas schief geht (also die POST-API in der App eine Exception wirft). Ansonsten würde dort der HTTP-Error-Code mit dabei stehen (z.B. wenn nicht autorisiert), oder hast du die Meldung dort übersehen?
ich hatte schon mal eine ähnliche Fehlermeldung von einem anderen User erhalten, da war auf dem Server etwas falsch konfiguriert (Passwortschutz, der von Basic Auth abgewichen ist).
Einen Error-Code habe ich nicht übersehen:
(Sorry übrigens für das abstruse Format der Log-Meldungen, aber Email-Versand geht auch nicht, anderes Problem(?)
Dass der Server falsch konfiguriert ist, hatte ich auch bereits vermutet. Ich weiß aber nicht, wo ich hingreifen soll. Eine falsche eingetippte URL habe ich ausschlossen, indem ich die aktuell zugeteilte IP-Adresse verwendet habe, aber keine Verbesserung.
Im nächsten Schritt habe ich von deswegen eine Ersatzmessage schicken lassen, welche korrekt ankam:
Gibt es evtl. einen Unterschied zur Art und Weise, wie CSV die POST Requests verschickt?
Bei der Fehlermeldung bei der Mail hast du leider den wichtigen Teil oben abgeschnitten Interessant sind immer die ersten paar Zeilen. Hast du denn einen SMTP-Server angegeben? Ohne gehts natürlich nicht (und es werden auch nicht alle Provider unterstützt, da primär Debugging, aber z.B. GMail funktioniert.).
Würdest du mir per PN mal deine Zugangsdaten für deinen Endpoint schicken? Dann probiere ich das mal im Emulator aus, da sieht man noch mal mehr als im Auto.
DNS-Problem? Hast Du es mal über die IP versucht?
Edit: Ich meine für den Webhook, nicht die Mail.
Ja, habe ich. Keine Verbesserung
Also die App scheint sich am Self-Signed Zertifikat zu stören:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Da kann ich leider auch nicht auf die Schnelle Abhilfe leisten, da ich mich mit dem Thema so gut wie gar nicht auskenne. Ich werde mal nebenbei schauen, ob ich da an der App irgendwas verändern kann, ohne die Sicherheit zu torpedieren.
Oder hat vielleicht schon jemand anderes hier Erfahrung was Self-Signed Zertifikate betrifft? Gibt ja schon ein paar, die ihre eigenen Server nutzen
Super, vielen Dank, das hilft zu vermeiden, dass ich mir einen Wolf suche. Jetzt weiß ich, in welche Richtung ich mich auch weiterbilden muss.
Eine Möglichkeit wäre z.B. einen Server bei einem Webhoster zu nutzen, der wiederum nichts anderes macht, als den SOC bereitzustellen, den dein Self-Hosted-Server dann abholen kann. Das ließe sich in einem recht kompakten PHP-Skript umsetzen.
Der übliche Weg wäre, das eigene Root-Zertifikat in den Trust Store des Systems bzw. der JRE zu importieren. Ich kenne mich da aber nur in der Windows-Welt aus. Bei Android muss ich passen. Sollte sich googeln lassen.
Mich würde überraschen, wenn Du das in AAOS (als Endanwender) darfst.
Ich habe auch mal versucht die CSV Daten an einen eigenen Server (Smart Home Instanz mit der Möglichkeit webhocks zu empfangen) zu senden. Leider ist mir das bis zum Schluss nicht gelungen.
Vom Vivald Browser konnten Daten verschicken werden, aus dem CSV hat es nicht geklappt.
Vermutlich war auch hier das Problem mit dem Self-Signed Zertifikat.
Eine Möglichkeit das Zertifikat über AAOS zu importieren sehe ich nicht.
Evtl. geht es über Umwege und dem Vivaldi Browser: Siehe hier:
Müsste man testen, aber sieht wohl eher schlecht aus.
Neuer Feature Request:
Der CSV sollte für seinen Webhook einen eigenen TrustManager implementieren, um die Requests abzusetzen. Dieser TrustManager sollte optional ein cacerts verwenden, das der Anwender auf einem USB-Stick bereitstellt.
Dies würde es den Bastlern unter den Anwendern erlauben, den Webhook ohne kostenpflichtiges Serverzertifikat einer CA zu verwenden.
Guckst Du hier:
Hallo zusammen,
XC40 Recharge Fahrer hier. Die App ist wirklich vom feinsten . Ich glaube alles funktioniert soweit.
Zwei Fragen:
Das AAOS vom XC40 scheint sich, während des Ladevorgangs, komplett abzuschalten, sobald man das Auto verlässt. Die App kann dann den Ladeverlauf natürlich nicht aufzeichnen.
Habt ihr Polestar-Fahrer das auch und gibts da einen Workaround für?
Ich hab es bisher auch noch nicht geschafft, das Auto über den Key mit ABRP zu verbinden. Sehe ich irgendwo einen Log oder Fehlermeldungen dafür?