Projektvorstellung: Spritpreis von deiner Heimtankstelle mit ESP32 auf Display anzeigen

Mal ne Frage in die Runde:
Hat wer Lust und das für einen ARDUINO mit Netzwerkshield schon ins Auge gefasst?
(Duck und weg)

Bei mir läuft es mit Display, ohne NeoPixel.
Aktuell habe ich noch Probleme es auf dem ESP8266 zum Laufen zu bringen.
Da muss ich noch etwas tiefer einsteigen.
Aber wird schon, hoffe ich.

Das sieht Tankerkönig aber anders:

Gruß Tommy

Hi Tommy, wo hast Du das her?
Ich bekomme unter deinem link:
https://creativecommons.tankerkoenig.de/
eine schicke Seite angezeigt, in der alle API-Methoden erklärt werden .
Nicht mehr und nicht weniger. Die Textsuche auf der Seite nach 'Foren' ist ergebnislos.
Ein Klick auf home bringt ein "403 - forbidden", terms ein "Seite nicht vorhanden" - selbes für api-key.
Wie bist Du an die Info gekommen?

Bei meinem Link komme ich auf den Menüpunkt "Terms" und da ziemlich unten.

Der TO hat seinen Beitrag schon angepasst.

Gruß Tommy

Offensichtlich war ein Teil der Seite zwischendurch offline...
Und ja - steht drin..... - wer mit Suchmaschine nach Wahl an die api-Funktion kommt, kann das übersehen.
Thx für Aufklärung.

Hier bitte unbedingt das Ergebnis mitteilen! :slight_smile:

Hast du folgendes beachtet? Sprich: #include <ESP8266WiFi.h> und #include <ESP8266HTTPClient.h> Habe leider keinen ESP8266 zum testen hier, vielleicht kann dir @Tommy56 helfen.

Danke, habe es direkt angepasst!

Hallo,

erstmal Danke für das schöne Projekt. Ich wollte es gestern eigenlich auch auf einen ESP8266 packen, weil hier noch ein Heltec-Modul mit 0,91" OLED rumliegt. Hatte aber dann doch keine Zeit, mal heute schauen.
Ich muß mir erstmal die HTTPS-Geschichte auf dem ESP8266 anschauen, hatte bisher noch keine notwendigkeit dafuer, ein HTTPS Client Demo ist ja in den Beipielen.
Speicherbedarf für den JSON-Parser sollte kein Problem sein, OpenWeathermap braucht mehr und läuft ja auch.
Vermutlich werde ich es aber auf ein E-Paper 2.13" mit ESP32 und Akku packen, liegt auch noch hier und das könnte ich dann einfach irgendwo hinstellen...

Gruß aus Berlin
Michael

Das ganz sicher, hatte ich ja schon geschrieben.

Ja, habe ich direkt angepasst.

Hier kommt der Fehler "-1".
Habe da bisher noch nicht herausgefunden, wo genau das Problem ist.
Er kompiliert fehlerfrei.

Da bin ich nicht weit genug drin.

Dieser Fehlercode steht wohl für HTTPC_ERROR_CONNECTION_FAILED sprich der Server lehnt die Verbindung ab. Kann der ESP8662HTTPClient eventuell nicht mit https umgehen?

Es gibt ja Beispiele für HTTPS und ich habe auch alles auf HTTPS umgestellt. Dennoch der Fehler.
Ich werde mich damit heute noch mal beschäftigen.

Kann es sein, dass man beim ESP8662 mit einem SHA-1 Fingerprint vom Zertifikat arbeiten muss und nicht wie unter dem ESP32 mit dem ganzen Zertifikat. Hab auch was mit WifiClientSecure gelesen. Wäre super wenn sich hier jemand mit ESP8662 einklinken könnte, habe leider (noch) keinen.

Ja, das sieht genau danach aus.
Ich versuche mal daraus schlau zu werden. :wink:
Bisher fehlt mir da die Erfahrung komplett. :fearful:

Fingrprint hat den Nachteil, dass er eine Gültigkeit von (in der Regel) 3 Monaten hat.
Der ESP8266 benutzt Root-Zertifikate im DER-Format (in Gegensatz zum ESP32, der PEM akzeptiert).
Im Beispiel BearSSL_Certstore befindet sich ein Pythonscript (leider ohne sinnvolle Ausgaben und läuft nicht), dass ein File certs.ar erzeugen soll, dass man ins LittleFS legen muss. Dieses File enthält Alle Root-Zertifikate, die Mozilla kennt.
Ich habe dann im Netz eine andere Version dieses certs-from-mozilla.py gefunden und zum Laufen gebracht.
Man muss zusätzlich openSSL, installieren (DLL ins Win-Verzeichnis), das in den PATH aufnehmen oder einen Symbolischen Link ins Verzeichnis der py-Datei legen und das File (ESP8266-Core)/\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\bin\xtensa-lx106-elf-ar.exe als ar.exe dorthin kopieren.
Dann erhält man das File certs.ar.
Den Rest muss ich noch weiter erforschen.

Gruß Tommy

Edit: Da man *.ar hier nicht hochladen kann, habe ich das File certs.ar bei mir hochgeladen, wenn jemand den Aufwand nicht machen will und trotzdem damit experimentieren will.

3 Likes

Wahnsinn Tommy! Aber das muss doch auch einfacher gehen? Ich dachte der Fingerprint ist so lange gültig wie das Root Zertifikat.

Hallo,
Ich muss da leider passen.
Aber danke an Tommy, dass er sich damit beschäftigt.
Ich habe mich mit dem ESP32 weiter beschäftigt und einen Webserver inkl. OTA eingebaut. Das funktioniert auch schon und ich kann auch den aktuellen Wert per UDP an mein SmartHome senden.
Zudem auch einen ESP32 Mini geordert, falls es mit dem ESP8266 nicht klappt.

Nö, der Fingerprint gehört zum Zertifikat und das gilt z.B. bei Lets Encrypt 3 Monate, bei bezahlten Ausstellern oft 1 Jahr. Die Root-Zertifikate sind meist bis 2031/2035 gültig.

Wenn Du nicht prüfen willst, ob Dein Gegenüber auch echt ist, brauchst Du natürlich dessen Zertifikat nicht prüfen und kannst client.setInsecure() benutzen.

Gruß Tommy

Schau mal was ich hier gefunden habe. Sieht danach aus als würde dieses Script sich die aktuellen Root Zertifikate automatisch ziehen und selbst aktualisieren? Verstehe es aber noch nicht ganz.

Nö, tut es nicht. Es hat nur die Root-Certifikate zu github (DigiCERT) drin.
Aber ich werde mal testweise auf ESP8266 Version 3.02 gehen (zusätzliche portable IDE). Bisher bin ich noch bei 2.7.4, weil die flinker ist.

Gruß Tommy

Schade.

Hierzu habe ich etwas gefunden. Und hier noch etwas.

Dein Ansatz scheint wohl, in Anbetracht meiner eigenen unabhängigen Recherchen die einzige und vielleicht zum jetzigen Zeitpunkt beste Lösung zu sein.