ESP32/ESP8266: Optimizing the hell out of ESPAsyncWebServer

Das schöne an dem Microcontroller ist ja, dass man einen kleinen WebServer darauf laufen lassen kann. Damit hat man eine tolle Möglichkeit ein kleines aber immer verfügbares User Interface (UI) bereitzustellen, das mit fast allen modernen Geräten die einen Webbrowser haben (Tablet, Smartphone, Laptop, PC) sofort funktioniert.

WebServer in klein

Exception Decoder MenuWas man jedoch schnell vergisst, wenn man zuvor schon WebApplications mit WebServern wie nginx oder Apache ausgeliefert hat, ist der Ressourcenbedarf von so einem Server. Der Microcontroller ist halt klein deshalb ja auch „Micro“, hat wenig Speicher und wenig CPU-Zyklen die er für sowas entbehren kann.

Die Kunst liegt also in der Beschränkung. Doch das fällt sauschwer, wenn man erstmal einen gewissen Anspruch an seine Webseiten hatte. Niemand mag gern zurück in die Steinzeit und eine Webseite bauen z.B. ohne Stylsheets. Klar, das geht, sieht aber so schlimm aus und funktioniert auf dem Smartphone z.B. so gar nicht.

Zunächst habe ich den klassischen Weg zur Gestaltung meiner Webseite gewählt, ich hab HTML geschrieben mit Bildern darin und JavaScript das dynamisch Bilder austauscht und platziert, ich habe CSS geschrieben, das Bilder zur Gestaltung einsetzt. Es sieht wunderschön aus auf dem Desktop, aber… es crasht den WebServer des Microcontrollers. Da nutzt dann das ganze tolle Design auch nichts, wenn es letztlich nicht funktioniert.

Und ich habe zig Crashes gehabt. Ich habe mir mühsam den Arduino ESP8266/ESP32 Exception Stack Trace Decoder in der Arduino IDE installiert (Anleitung). Ein dekodierter Stacktrace sieht dann z.B. so aus:

Da sieht man, dass es im konkreten Fall eher ein Speicherproblem ist bei diesem Crash, weil eine alloc Funktion involviert ist. Aber viele andere Crashes sind eben anderer Natur.

Optimizing the hell out of it

Dann beginnt man zu begreifen und optimiert. Was kann man alles tun um zu optimieren? Anfangs dachte ich die Dateigröße wäre der Bottleneck des Microcontrollers. Ich hab die JS, CSS und HTML Dateien mittels GZIP komprimiert und mit dem content-type/gzip im Header ausliefern lassen. Das reduziert auch die Menge an Daten hervorragend. Oft wird nur noch ein Zehntel der Daten übertragen, was die Auslieferung selbst deutlich schneller macht.

Doch die Dateigröße ist gar nicht das Problem beim ESPAsyncWebServer. Das eigentliche Limit ist, dass der nur maximal 3 bis 4 Requests „gleichzeitig“ bzw. parallel bearbeiten kann. Der Rest der Requests hängt dann einfach und wartet ewig auf Antwort und wird verworfen oder führt zu einer Blockade des Webservers und einem späteren Crash. Es hat auch nichts damit zu tun, dass das SPIFFS Filesystem eine Obergrenze an gleichzeitig geöffneten Files hat wie mir ein Entwickler des ESPAsyncWebServer versicherte. Und darauf nun eine passende Antwort bzw. Optimierung zu finden ist gar nicht so einfach gewesen.

Klar, man kann das CSS und das JS alles mit in das HTML-file kippen, aber dann wird es schon arg unübersichtlich. Und des weiteren bleibt das Problem mit den vielen kleinen Icons bestehen, die alle je einen Request auslösen. Das kostet Zeit und trifft auf die Limitierung des Webservers. Das Hauptziel kann also zunächst nur sein die Anzahl initialer Requests (also der Requests die benötigt werden die Seite einmal komplett zu laden) zu minimieren. Und zwar sollte das so passieren, dass man unterhalb des Limits bleibt von max. 3-4 gleichzeitig eintreffenden Requests. Das ist natürlich ein Limit, dass sobald mehr als ein Nutzer gleichzeitig auf das UI zugreift bereits zu Problemen führen kann. Es ist schade, dass die Entwickler von ESPAsyncWebServer das nicht vorhergesehen haben und entsprechend zuviele Requests schlicht und einfach mit Fehler 503 ablehnen sondern stattdessen den Server crashen lassen. Aber vielleicht gibt es auch einen Grund der mir nicht begreiflich ist derzeit.

The Magic of Data-URI’s

Hier kommt dann jetzt eine Optimierungsstrategie zum Zuge, die auch bei „normalen“ Webseiten zu krass verbesserter User Experience (UX) führen kann. Das Einbetten der Bilddaten als sogenannte Daten-URI. Was ist das eine Daten-URI?

The data URI scheme is a uniform resource identifier (URI) scheme that provides a way to include data in-line in Web pages as if they were external resources. It is a form of file literal or here document. This technique allows normally separate elements such as images and style sheets to be fetched in a single Hypertext Transfer Protocol (HTTP) request […]

Das schreibt die Wikipedia dazu. und auf dieser Webseite heißt es „You can embed the image data directly into the document with data URIs.“ und genau das ist eine sehr sinnvolle Sache. Einerseits wird das Dokument (HTML, JS, CSS) in das man diese Daten dann einbettet zwar etwas größer, aber dafür unterbleiben Requests für Bilddaten komplett.

Aus folgendem Code für ein Favicon als Meta-Link im Header in HTML…

<link rel='icon' type='image/png' sizes='32x32' href='fav-icon-32x32.png'>

…wird folgender Code als eingebettete URI:

<link rel='icon' type='image/png' sizes='32x32' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA9tpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowMzhmMTQ5NC1lNGJkLTExZTEtOGQ4MC1jYjVjZDBjYjc4N2QiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDJDODA5ODk0RjU1MTFFQThBRjNFQkJENEQ2MUU4MDUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDJDODA5ODg0RjU1MTFFQThBRjNFQkJENEQ2MUU4MDUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAyODAxMTc0MDcy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'>

Der entscheidende Teil ist, dass man statt einer Hyperlink-URI eine Data-URI nutzt, die eben so ausschaut:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAA

Als Werkzeug zur Umwandlung gibt es zahlreiche Online Tools dafür, wie z.B. den Image to data-URI converter. Dort kann man seine Grafikdateien umwandeln lassen. Es gibt auch apps z.B. für macOS den Data URI Converter von Chris Yip.
Mit dem richtigen Tool ist es jedenfalls schnell gemacht.

Ergebnis: Schnell, schneller, embedded Data-URI

Die Ergebnisse sprechen absolut für sich. Nachfolgend habe ich mit zwei Screenshots im Safari Browser festgehalten, die initialen Requests und deren Laufzeit und Datenumfang, die gegen den Controller gehen im zeitlichen Verlauf. Die Ergebnisse sind absolut eindeutig: Data-URI schlägt den klassischen Weg um Längen.

Man erkennt sofort, dass nach dem Laden der initialen HTML Seite core.html weitere Requests ausgelöst werden, klar ist die core.css und core.js werden benötigt, um die Seite überhaupt korrekt anzuzeigen. Aber allein schon die erste Seite auszuliefern benötigt 1,14 Sekunden Zeit, und dann wird es problematisch, da gleich fünf weitere Requests losgehen gleichzeitig, unter anderem eben auch requests wegen Grafiken. Das schafft der Server eben manchmal nicht. Und dann sieht man auch noch, dass jedes Bild ca. 300 bis 700 Millisekunden Zeit benötigt, und das ist sehr lang!! Die gesamte Seite ist erst nach über sechs Sekunden geladen.

Die gleiche Seite optimiert mit Data-URI’s verhält sich deutlich besser. Zwar wird der initiale Download der core.html um etwa 15KB größer, interessanterweise aber kostet das kaum Zeit. Und der initiale Download führt zu lediglich zwei weiteren Requests für die core.css und core.js. Beide Dateien enthalten selbst wiederum ausschließlich Data-URI’s und führen somit zu keinen Folgerequests.

Die Auswirkung ist enorm. Die Bilddaten sind nun in 10 bis 20 Millisekunden geladen statt wie vorher in 300 bis 700. Eine Verbesserung um Faktor zehn. Insgesamt ist die ganze Seite vollständig geladen nach nur etwas über zwei Sekunden. Das erspart satte 4 Sekunden Wartezeit.

Fazit

Wer Webseiten auf dem Microcontroller ausliefert, der sollte ausschließlich inline Data-URI’s für grafische Inhalte verwenden und die Anzahl der Requests soweit wie möglich senken. Für mein Setup bestünde jetzt noch die Option auch die core.css und core.js in die core.html zu integrieren. Dann wäre nur noch eine große Datei nötig.

Aus Gründen der Code-Übersicht sehe ich davon aber erstmal ab. Sollte es aber nochmal Probleme mit dem WebServer geben, dann kann ich hier gezielt weiter optimieren.

Why do I blog this? Das Problem des instabilen und ständig crashenden ESPAsyncWebServer hat mich einige endlos erscheinende Stunden des Debuggens gekostet. Weil ich auch einfach nicht wusste was den WebServer crasht und/oder blockiert und Serial.print() statements haben nicht wesentlich geholfen. Ich hoffe es hilft anderen nicht in die gleiche Falle zu tappen. Sehr hilfreiche Hinweise zum Thema ESPAsyncWebServer habe ich überigens im Diskussionsforum/Chat zu dem Server gefunden. Das hat mir sehr geholfen.

ESP32/ESP8266: Besuch in der Welt der Microcontroller

Ich habe kürzlich einen kleinen Ausflug in die Microcontrollerwelt gemacht. Eigentlich bin ich noch mittendrin. Aber ich fang am besten am Anfang an.

Erste Schritte mit dem Arduino Uno

In 2019 habe ich einen kleinen Workshop/Kurs zu Microcontrollern bei Mathias mitgemacht. Mathias ist unser Arduino bzw. Microcontroller Guru im Hackerspace. Angefixt hatte er mich mit einem Bastelnachmittag, an dem ich mein erstes eigenes Oszilloskop DSO138 gebaut (mehr so Teile nach Plan zusammengelötet) habe. Ein tolles kleines Gerät (DSO-138-Datenblatt, DSO-138-Anleitung), hier hat das mal wer reviewed.

Großartige Unterlagen im Arduino Uno Workshop und eine top Vorbereitung haben dafür gesorgt, das ich jedes Mal mit dem Gefühl aus dem Kurs kam „Ach, das geht auch damit!?“. Der Kurs hat mir die Augen geöffnet wie gut man selber Dinge mit Elektronik tun kann. Und die Bedingungen waren nie besser, da die Komponenten günstig zu haben sind und somit auch das finanzielle Risiko echt überschaubar klein ist. Ab 30 Euro ist man dabei und hat einen Arduino am Start mit par Teilen.

Während des Kurses habe ich mit Hilfe des Microcontrollers eine Mood Lamp realisiert, Drucktaster abgefragt für eine Ampelschaltung, Töne generiert, ein Dot-Matrix-Display, eine 7-Segment-Anzeige und ein LC-Display angesteuert und vieles mehr. Alles Dinge die ich vorher für unmöglich hielt das mal selber zu können.

Level Up: ESP32/ESP8266

Kaum war der Kurs vorüber, erinnerte ich mich daran, dass ich ein Lights & More Projekt begonnen hatte im Space. Das Projekt hatte im Prinzip zum Gegenstand die Beleuchtung des Hackerspace im Allgemeinen zu verbessern durch ein gemütlicheres Ambiente. Dazu zählt für mich auch Low-Light und bunte Farben. Zumal wir in Bremen einen der buntesten Tunnel haben, den ich wirklich toll finde. Und ich wette da sind auch Microcontroller involviert.

Fünf Rollen NeoPixel LEDS waren dafür bereits beschafft nachdem wir einige Experimente gemacht hatten was gut ausschaut und gutes Licht erzeugt. Doch diese LEDS wollen gesteuert werden. Und genau diese Steuerung war noch eine offene Frage. Andere im Space fühlten sich schon immer superwohl mit den Hardware-Herausforderungen, ich jetzt auch.

Nachdem ich den ersten ESP32 per USB angeschlossen habe an den Rechner und feststellte, dass das Ding fast genauso wie der Arduino programmiert werden kann, war das Feuer entzündet. Ich wollte diesem Chip jetzt beibringen Licht für uns zu machen. Doch dafür brauchte ich auch erstmal ein paar LEDs an dem Chip.

Nachdem ich mir 10 LEDs von der Rolle abgeschnitten und verkabelt hatte und dann erstmals gesehen habe, dass man die zum Leuchten bringen kann, war mir klar, das Ding muss was werden. Und die ersten Zeilen Code standen da bereits. Mia hatte mir gezeigt, dass man die LEDs auch per UDP-Datenpaketen fernsteuern könnte wenn man sich das vornimmt.

Lohnenswerte Zeit

Das Finden von Zeit ist allerdings bei solchen Dingen ein großes Problem. Durch eine Fügung ergab sich, dass ich ein wenig Zeit geschenkt bekam für Experimente bzw. die gedankliche Beschäftigung mit dem Thema.

Level Up: IDE, C++, LED-Stripes, Breadboard Action

Neben einem ESP32 der relativ leistungsstark mit 2-Kern-Architektur kommt, hatte mir Marco einen ESP8266 (der Vorgänger des ESP32) zum spielen gegeben. Die Hardware war also da, und als ich dann noch PlatformIO entdeckte, konnte es auch mit einer einigermaßen schönen IDE ans Werk gehen.

Nützliche Links

Why do I blog this? Seit meinem ersten Kontakt mit dem Arduino Uno, bei dem die Programme meist nicht aus mehr als 50 bis 100 Zeilen Code bestanden, hat sich eine ganze Menge getan und ich habe endlos viel gelernt und noch viel mehr Code geschrieben. Was genau, das werde ich in weiteren Blogposts dann mal beschreiben. To be continued…

Sonnenschutz. Kosmetik. Chemie. Allergie.

Es ist Sommer. Das ist an und für sich eine schöne Sache. Mit dem Sommer einher geht, dass man bei längerem Aufenthalt in der Sonne für Sonnenschutz sorgen sollte. Die Haut der Menschen ist unterschiedlich, und nicht jeder kann Sonne gleich gut vertragen.

Kleidung

Der einfachste Weg für Sonnenschutz zu sorgen ist richtige Kleidung. Wenn ich z.B. dafür sorge dass die besonders gefährdeten Stellen der Haut (Schultern, Arme, Kopf, Füße) – dort wo die Sonne mit der größten intensität einfällt – mit Textil bedecke, dann ist das eine gute Lösung. zum Beispiel ein langes Kleid, ein Sonnenhut, langärmliges Shirt, etc. hier kommt es auch auf das Alter des Menschen an. Ein Säugling / Kleinkind sollte prinzipiell auf Sonnenschutz durch Textil setzen und aus der intensive Sonne ferngehalten werden. Die Haut der Kleinen ist extrem empfindlich und eine Sonnencreme wie die Sonne selbst kann schnell zu Irritationen führen.

Oft jedoch mag der erwachsene Mensch lieber leicht und luftig unterwegs sein und jedes Stück Kleidung fühlt sich wie ein wärmendes und überflüssiges Stück Stoff an. in einem solchen Fall greift man gerne zu Sonnencremes.

Sonnencreme

Auch die Industrie hat erkannt, dass eine Sonnencreme mittlerweile ein favorisierter Weg der Menschen ist sich zu schützen. Auch wenn das Aufbringen des Sonnenschutzes oft mühsam ist und auch die „Entsorgung“ durch Abwaschen später durchaus Probleme mit sich bringt für die Abwasseraufbereitung, hat sich Sonnencreme & -spray weit verbreitet.

Nun ist allerdings die Frage, wieviel Sonnencreme ist genug? Und vor allem wie nutzt man Sonnencreme richtig? Welche der tausend Angebote nutzt man? Welche Aspekte sollten im Vordergrund stehen?

Über diese Fragen habe ich lange Zeit nicht nachgedacht, bis ich eines Tages eine komische Hautreaktion am Bein und den Füßen hatte. Eine unerklärliche Rötung der Haut, die immer weiter zunahm, so dass ich es irgendwann mit der Angst bekam. Ich dachte erst es wäre Sonnenbrand und habe mehr Sonnenschutz auf diese Regionen aufgetragen.

Wie sich drei Jahre später herausstellen sollte, war es einen Allergie gegen die Sonnencreme. Ich war in meinem ganzen Leben nie allergisch gegen irgendwas. Und plötzlich bin ich von einer Allergie betroffen, ohne die Zeichen rechtzeitig richtig deuten zu können. Wer denkt schon bei einem Allerweltsprodukt wie Sonnencreme an eine allergische Reaktion? Immerhin wird das Zeug von Millionen Menschen benutzt.

Fängt man an sich näher mit der Materie Sonnenschutz durch Auftragen einer Schutzschicht auf die Haut zu beschäftigen, dann wird jedoch schnell klar, dass man hier unfreiwillig Teilnehmer an einem chemischen Experiment der Kosmetikindustrie wird.

Kosmetik

Während es anfangs der Industrie vielleicht noch gereicht hat einen funktionierenden Sonnenschutz bereitzustellen, so sind Sonnencremes und Sprays mittlerweile zu ausgefeilten und komplexen Kosmetikprodukten geworden. Eigentlich ist das Prinzip einfach:

  1. Durch Experimente fand man heraus, dass Titandioxid, ein weißer Stoff UV-Strahlung gut blockiert
  2. Titandioxid ist die Grundlage fast jedes Sonnenschutzproduktes
  3. Das normalerweise weisse Pulver Titandioxid, wird Teil einer Creme, um das gleichmäßige Auftragen und die gleichmäßige Verteilung der Pulverpigmente sicherzustellen
  4. Der Lichtschutzfaktor wird übrigens durch Tests ermittelt, die die gleichmäßige Verteiltheit der Pigmente überprüft, und damit die Blockadewirkung gegenüber UV-Einstrahlung

Neben Titandioxid befinden sich allerdings mittlerweile eine unüberschaubare Anzahl an Zusatzstoffen in den Cremes der Anbieter. Der komplette Irrsinn dieser Entwicklung wird augenfällig, wenn man von ein und dem gleichen Hersteller zwei Cremes mit gleichen Schutzeigenschaften erwerben kann, von dem ein Produkt eine sogenannte „Allergiker“-Variante ist. Das Produkt für Allergiker (die Schuld wird hier subversiv dem Anwender/Menschen zugeschoben) weist plötzlich nur noch einen Bruchteil der Inhaltsstoffe auf wie die „Normale“ Version des Produktes.

Produktchemie

Ich habe vier Produkte (Eucerin von Beiersdorf, todaysun von der today GmbH, elkos von EDEKA und Sun Ozon von Rossmann) unfreiwillig getestet, drei davon rufen eine Allergie bei mir hervor. Eine Allergie die nicht nötig sein müsste, die aber dank der ausgefeilten Produktchemie dem Kunden bewusst untergejubelt wird. An dieser Stelle möchte ich daher mal für das Thema Produktchemie sensibilisieren.

Zunächst möchte ich mit einem Rant eröffnen:<rant> Ich finde es ein absolute Frechheit, dass auf allen vier Produkten die Inhaltsangaben in viel zu kleiner Schrift aufgebracht werden. Es ist hier eine optische Vergrößerung notwendig, um den Text einfach und flüssig lesbar ohne optische Lesehilfen entziffern zu können. Hier besteht dringender Handlungsbedarf mit einer EU-weiten Regelung zur Angabe von Inhaltsstoffen auf Produktverpackungen.

Es wäre kein Problem, die nötigen Texte als kleines Beiheftchen an der Verpackung anzukleben, wenn man unbedingt auf eine Umverpackung mit Beipackzettel verzichten möchte. Doch die Industrie entscheidet sich hier dafür die Inhaltsstoffe in kleinster Schrift die gesetzlich gerade noch zulässig ist aufzubringen, und macht es dem Verbraucher damit schwer bis unmöglich das Produkt noch im Laden vor dem Kauf zu beurteilen.

Das macht leider auch die Auswertung und den vergleich der Produkte nahezu unmöglich ohne Hilfsmittel und einen enormen Zusatzaufwand, denn allein die Länge der Liste an Inhaltsstoffen ist beeindruckend. und dann kommen noch Symbole hinzu, deren Bedeutung der Gelegenheitsnutzer von Kosmetika gar nicht deuten kann, wenn er nicht darauf geschult wurde. </rant>

Allergieauslöser Eucerin Sun Lotion – Extra Leicht

Das Produkt Eucerin von Beiersdorf hat bei mir als erste Sonnencreme allergische Reaktionen hervorgerufen. Schaut man auf die Produktseite zu diesem Ding dann wird einem speiübel.

Folgende Inhaltsstoffe sind in einer Allergikervariante nämlich NICHT enthalten:

  1. Cetearyl Alcohol
  2. Cetyl Alcohol
  3. Glyceryl Stearate SE
  4. Glycyrrhiza Inflata Root Extract
  5. Myristyl Myristate
  6. Octyldodecanol
  7. Parfum
  8. PEG-40 Castor Oil
  9. Sodium Cetearyl Sulfate
  10. Sodium Phenylbenzimidazole Sulfonate
  11. Tapioca Starch
  12. Titanium Dioxide
  13. Trimethoxycaprylylsilane

Folgende jedoch in der normalen laut Code Check:

  1. Aqua
  2. Octocrylene
  3. Alcohol Denat
  4. Butyl Methoxydibenzoylmethane
  5. Ethylhexyl Salicylate
  6. Homosalate Bis-Ethylhexyloxyphenol
  7. Methoxyphenyl Triazine
  8. Ethylhexyl Cocoate
  9. Ethylhexyl Stearate
  10. Tapioca Starch
  11. Butylene Glycol
  12. Dicaprylate/Dicaprate
  13. Glyceryl Stearate
  14. Hydrogenated Coco-Glycerides
  15. Synthetic Beeswax
  16. Glycerin
  17. Glycyrrhiza Inflata Root Extract
  18. Tocopheryl Acetate
  19. Phenylbenzimidazole
  20. Sulfonic Acid
  21. VP/Hexadecene Copolymer
  22. Xanthan Gum Silica Dimethyl Silylate
  23. Sodium
  24. Stearoyl
  25. Glutamate
  26. Dimethicone
  27. Trisodium EDTA
  28. Sodium Acrylates/C10-30
  29. Alkyl Acrylate
  30. Crosspolymer
  31. Sodium Chloride
  32. Phenoxyethanol
  33. Parfum

Hinweis: Die Liste ist nicht identisch mit der Liste hier drunter, die ich vor einigen Jahren runtergeladen habe, da war Titandioxid wie man sieht ein fester Bestandteil.

Besonders perfide ist bei der Eucerin Creme gewesen, dass diese in der Apotheke(!) verkauft wurde und eines der teuersten Sonnenschutzprodukte dort war. In diesem Fall ist also weder der Verkauf in der Apotheke ein Hinweis auf ein gesundes Produkt, noch ist es ratsam teures Geld für einen schädlichen Chemiecocktail auszugeben. Das Businessmodell der Apotheke hingegen hat das Produkt prima gefördert, denn ich wurde unmittelbar Kunde eines Antiallergie-Medikaments und einer Behandlungscreme. Schönen Dank auch!

Allergieauslöser todaysun sonnenmilch von der today GmbH und der Emil Kiessling GmbH für die ReWe Gruppe

Today ist ein Kosmetiklieferant für die ReWe Gruppe.

Folgende Inhaltsstoffe laut Code Check:

  1. Aqua
  2. Octocrylene
  3. Alcohol Denat.
  4. Glycerin
  5. C12-15 Alkyl Benzoate
  6. Butyl Methoxydibenzoylmethane
  7. Dicaprylyl Ether
  8. Titanium Dioxide (Nano)
  9. Tocopheryl Acetate
  10. VP/Hexadecene Copolymer
  11. Panthenol
  12. Caprylyl Glycol
  13. Silica
  14. Parfum
  15. Acrylates/C10-30 Alkyl Acrylate Crosspolymer
  16. Sodium Hydroxide
  17. Xanthan Gum
  18. Carbomer
  19. Disodium EDTA
  20. Ethylhexylglycerin
  21. Dimethicone
  22. Tocopherol
  23. Linalool
  24. Limonene
  25. Benzyl Alcohol
  26. Alpha-Isomethyl Ionone
  27. Benzyl Benzoate
  28. Hexyl Cinnamal
  29. Citronellol
  30. Geraniol

Allergieauslöser elkos sun sonnenmilch von EDEKA

Dieses Produkt hat bei mir nachgewiesener Maßen krasse Reaktionen vor allem im Nacken und an den Unterarmen hervorgerufen. Es fängt harmlos mit Juckreiz und kleiner pickelartiger Strukturierung der Haut an und geht dann über zu Bläschenbildung die schnell (innerhalb eines Tages) zu nässen beginnen. Dann hilft nur noch ein Antiallergikum.

Enthält laut Code Check folgende Inhalte:

  1. Aqua
  2. Alcohol Denat.
  3. Octocrylene
  4. Glycerin
  5. C12-15 Alkyl Benzoate
  6. Butyl Methoxydibenzoylmethane
  7. Ethylhexyl Salicylate
  8. Titanium Dioxide (Nano)
  9. Dicaprylyl Carbonate
  10. Tocopheryl Acetate
  11. Vp/hexadecene Copolymer
  12. Panthenol
  13. Silica
  14. Parfum
  15. Acrylates/c10-30 Alkyl Acrylate Crosspolymer
  16. Ethylhexylglycerin
  17. Carbomer
  18. 1, 2-Hexanediol
  19. Caprylyl Glycol
  20. Xanthan Gum
  21. Sodium Hydroxide
  22. Disodium Edta
  23. Dimethicone
  24. Citral
  25. Linalool
  26. Benzyl Alcohol
  27. Citronellol
  28. Tocopherol

Interessant ist auch, wie die Sonnencremeanbieter (hier EDEKA) offenbar erst vor zwei Jahren auf eine neue Kennzeichnung für Haltbarkeit des Produktes umgeschwenkt sind. Ich habe zufällig noch eine Creme mit Lichtschutzfaktor 20 gefunden, die bis 2016 haltbar war. Hier sieht man im direkten Vergleich was verändert wurde an der Aufschrift auf der Packung.

EDEKA Packungsvergleich alte und neue Packung
EDEKA Packungsvergleich alte und neue Packung

Hautverträgliches Sun Ozon MED Sonnenspray von Rossmann bzw. der Dirk Rossmann GmbH

Das Sonnenspray von Rossmann für allergische Haut und bei Sonnenallergie ohne Duftstoffe ist derzeit das einzige Sonnenschutzmittel, das mit meiner Haut kompatibel ist. Und vermutlich zu Recht. Denn Titandioxid fehlt in dieser Lösung. Zugleich fehlen zig Duftstoffe und andere komische Dinge. Was ebenfalls sehr sympathisch ist, Rossman schreibt eindeutig auf die Packung wie lange das Produkt haltbar ist, nämlich bis 08/2020. Die anderen Hersteller weichen hier auf eine Tarnung des Haltbarkeitsdatums aus, die sich sehen lassen kann. (Mehr dazu später ganz unten!)

Inhaltsstoffe laut Code Check:

  1. Aqua
  2. Octocrylene
  3. Alcohol Denat.
  4. Glycerin
  5. C12-15 Alkyl Benzoate
  6. Butyl Methoxydibenzoylmethane
  7. Ethylhexyl Salicylate
  8. Dicaprylyl Ether
  9. Triacontanyl PVP
  10. VP/Hexadecene Copolymer
  11. Phenylbenzimidazole Sulfonic Acid
  12. Ethylhexyl Triazone
  13. Tocopheryl Acetate
  14. Microcrystalline Cellulose
  15. Caprylyl Glycol
  16. Sodium Hydroxide
  17. Carnosine
  18. Galactoarabinan
  19. Acrylates/C10-30 Alkyl Acrylate Crosspolymer
  20. Disodium EDTA
  21. Ethylhexylglycerin
  22. Cellulose Gum
  23. Carbomer
  24. Xanthan Gum
  25. Citric Acid
  26. Tocopherol

Ergebnis

Interessant ist zunächst, dass von den vier Produkten die ich probiert habe, drei Titandioxid enthalten. Das eine, das bei mir verträglich scheint jedoch kein Titandioxid enthält. Das ist schonmal ziemlich auffällig. Noch auffälliger ist allerdings, welche schiere Menge an Substanzen in den Sonnenschutzmitteln enthalten ist. Hier kann man nicht mehr auf einen Stoff rückführen, gegen den man allergisch ist es kann durchaus eine spezifische Kombination aus chemischen Substanzen sein.

Mein vorläufiges Fazit lautet: Sonnenschutz in chemischer Form nach Möglichkeit vermeiden und auf physischen Schutz durch Textilbedeckung umstellen wo es möglich ist. Wenn es ein chemischer Sonnenschutz sein muss, dann auf jeden Fall die Allergiker Produkte nehmen und darauf achten dass die Dinger kein Parfum enthalten (das ist überflüssig und nur ein Risikofaktor mehr).

Eine weitere Recherche ergab, dass Octocrylene derzeit ein neuer beliebter Stoff für UV-B-Blocking ist. Auf der Wikipediaseite steht dazu etwas Spannendes:

In den letzten Jahren wurde eine Häufung von Kontaktallergien bei Verwendung von Octocrilen in Sonnenschutzmitteln berichtet, die bei Erwachsenen anscheinend im Wesentlichen auf eine vorherige Photosensibilisierung durch die äußerliche Anwendung von Ketoprofen-Präparaten zurückzuführen ist.

So, und dann hab ich mal überlegt… und ich stellte fest, ja, Ketoprofen, damit bist du in Kontakt gekommen. Und zwar als ich mir mal den Knöchel verstaucht habe. Das Produkt das ich noch im Schrank hatte hieß Advel Schmerzgel und es enthält 25mg Ketoprofen auf 1 g Gel.

Die Wirksamkeit dieses Gels ist hoch, es wirkt sehr gut als Schmerzstiller. Allerdings habe ich damit vermutlich meine Haut insgesamt Photosensibilisiert, so dass ich jetzt in Verbindung mit Octocrylene und Titandioxid eine Kontaktallergie ausbilde.

Allergiereaktion

Wie sieht es aus wenn die chemische Industrie einen Versuch mit deiner Haut durchführt?

Ausschlag / Blaeschen
Ausschlag & Bläschen am Hals

Antiallergika

Antiallergika vom Arzt sind die einzige Hilfe in der Not. Konkret in meinem Fall Fexofenadin Hydroclorid. Das Schöne selbst in diesen Pillen ist Titandioxid enthalten.

Fexofenadin & MomeGalen

Inhaltsstoffe laut Codecheck:

Fexofenadine HCl (180 mg). Purpose: Antihistamine. Inactive Ingredients: Colloidal Silicon Dioxide, Croscarmellose Sodium, Hypromellose, Iron Oxide Black, Iron Oxide Red, Iron Oxide Yellow, Lactose Monohydrate, Magnesium Stearate, Microcrystalline Cellulose, Polyethylene Glycol, Povidone, Titanium Dioxide

Zur direkten Behandlung auf der Haut habe ich MomeGalen Fettcreme verwendet. Diese enthält Mometasonfuroat und wer hätte es gedacht E 171 (Titandioxid).

Links & Artikel

Warum unparfümierte Sonnencreme die bessere Wahl ist — Unreinheiten und dunkle Flecken ade
Franziska Grammes
4-5 minutes

So schön der Frühling ist – für unsere Haut birgt er auch Schattenseiten. Schon die ersten Sonnenstrahlen haben genug Kraft, unserer Haut zu schaden. Daher sollten wir uns schützen. Doch für viele hat Sonnenschutz – gerade im Gesicht – Unreinheiten, Rötungen, Juckreiz und sogar dunkle Flecken zur Folge. Das hat nicht selten mit den extensiv genutzten Duftstoffen und weiteren kritischen Stoffen in vielen Sonnencremes zu tun.

Viele Hersteller verwenden in Sonnenschutz Inhaltsstoffe wie Emulgatoren, minderwertige chemische Filter oder eben Duftstoffe.
Duftstoffe und andere kritische Stoffe in Sonnenschutz

Emulgatoren

Die berüchtigte Mallorca-Akne wird unter anderem durch Fette und Emulgatoren in Sonnenschutzmitteln ausgelöst. In Kombination mit UV-Licht bilden diese Substanzen nämlich bestimmte Reizstoffe in den Talgdrüsen, die Entzündungen verursachen – und das vor allem an Stellen, wo viele Talgdrüsen vorhanden sind: also im Gesicht und am Dekolleté. Um Emulgatoren wie Polyethylenglykolen zu meiden, solltest Du auf die Vorsilbe „PEG“ und die Buchstabenfolge „eth“ im Inhaltsstoffverzeichnis achten. Beispiele sind: Laureth 4, Ceteareth–15 oder PEG-8.

UV-Filter

Nicht alle chemischen Filter in Sonnenschutz sind schlecht, aber einige von ihnen können Allergien auslösen oder gar hormonell wirken. Wenn sie über die Haut ins Meer gelangen, können sie außerdem Schäden am Erbgut von Fischen und Korallen verursachen. Kritische chemische Filter erkennst Du unter anderem an den Bezeichnungen Benzophenone 3-5, Ethylhexyl Methoxycinnamate oder 4-Methylbenzylidene Camphor.

Nanopartikel

Mineralische Filter sind tendenziell besser verträglich, als chemische Filter. Wenn sie wie Titanium Dioxide (nano), Zinc Oxide (nano) oder Methylene Bis-Benzotriazolyl Tetramethylbutylphenol (nano) in Nanoform daher kommen, sorgen sie wegen ihrer geringen Größe für ein besseres Verstreichen der Creme und verringern so den Weißeffekt. Aber in Nanoform sind sie auch umstritten. Bei gesunder Haut gelten Nanopartikel als unbedenklich. Bei Sonnenbrand, sehr empfindlicher Haut und kleinen Kindern sollte hingegen auf Nanopartikel verzichtet und der „Geister-Effekt” in Kauf genommen werden.

Duftstoffe

Schon der Geruch von Sonnencreme weckt bei vielen Urlaubsgefühle. Doch gerade in Sonnenschutz können Duftstoffe dunkle Flecken und sogar allergische Reaktionen begünstigen. Duftstoffe erkennst Du an Namen wie Coumarin, Citral, Butylphenyl Methylpropional oder auch schlicht an der Bezeichnung „Parfum”.

Bei Duftstoffen in Sonnencremes solltest Du besonders Aufmerksam sein, denn unter hoher UV-Einstrahlung sind phototoxische Reaktionen möglich. Wenn die Haut nach der direkten Sonnenbestrahlung mit Rötungen, Quaddeln, Knötchen und Bläschen reagiert, spricht man von einer Lichtdermatose – auch Sonnenekzem oder eben „Mallorca-Akne” genannt.

Wenn der Ausschlag abgeheilt ist, können braune Flecken oder Linien zurückbleiben. Sie zeichnen die Parfumtropfen oder -streifen nach. In der Fachsprache heißt diese Hautveränderung Berloque-Dermatitis. Viele Parfumstoffe, etwa Bergamottöl, reagieren mit UV-Strahlen auf der Haut beziehungsweise in Hautzellen.
Weniger ist mehr

Klar ist es schön, wenn die Haut nach Urlaub duftet. Doch noch viel schöner, ist eine gesunde, schöne Haut, die ohne Ausschlag oder gar braune Flecken vor schädlichen UV-Strahlen geschützt wird. Checke daher die Inhaltsstoffe Deiner Sonnenpflege daher stets genauestens.

Quelle: https://www.codecheck.info/news/Warum-unparfuemierte-Sonnencreme-die-bessere-Wahl-ist-329303

Wenn man mal schaut wieviele Sonnencremes Parfum einsetzen, dann wird klar, dass hier die Sicherheit für die Haut eine untergeordnete Rolle bei den Herstellern spielt, denn sogenannte Furocumarine werden offenbar gerne und viel eingesetzt. Diese können aber unter UV-Bestrahlung zu einer Berloque-Dermatitis werden. Also Hände weg von parfümierten Sonnencremes.

Stoffmix

Hier hab ich eine gute Übersicht der wichtigsten Stoffe gefunden:

Sunscreen lotions vary enormously with their active ingredients. The following list of active chemical compounds found in sunscreen formulas are approved by FDA legislation:

  • p-Aminobenzoic acid (PABA) – up to 15 %
  • Avobenzone – up to 3%
  • Cinoxate – up to 3%
  • Dioxybenzone – up to 3%
  • Homosalate – up to 15%
  • Methyl anthranilate – up to 5%
  • Octocrylene – up to 10%
  • Octyl methoxycinnamate (Octinoxate) – up to 7.5%
  • Octyl salicylate (Octisalate) – up to 5%
  • Oxybenzone – up to 6%
  • Padimate O – up to 8%
  • Phenylbenzimidazole sulfonic acid (Ensulizole) – up to 4%
  • Sulisobenzone – up to 10%
  • Titanium dioxide – up to 25%
  • Trolamine salicylate – up to 12 %
  • Zinc oxide – up to 25%
  • Mexoryl SX (Ecamsule) – UVA absorber

The following list, in addition to the above, is approved by the EU and other parts of world:

  • 4-Methylbenzylidene camphor (Enzacamene)
  • Tinosorb M (Bisoctrizole)
  • Tinosorb S (Bemotrizinol)
  • Mexoryl XL (Drometrizole Trisiloxane)
  • Neo Heliopan AP (Bisdisulizole Disodium)
  • Uvinul A Plus (Diethylamino Hydroxybenzoyl Hexyl Benzoate)
  • Uvinul T 150 (Octyl Triazone)
  • Uvasorb HEB (Iscotrizinol)
  • Parsol SLX (Polysilicone-15)
  • Amiloxate (Isoamyl p-Methoxycinnamate)

References:
Hanson Kerry M.; Gratton Enrico; Bardeen Christopher J. (2006). „Sunscreen enhancement of UV-induced reactive oxygen species in the skin“. Free Radical Biology and Medicine 41 (8): 1205-1212

Why do I blog this? Eine Allergie zu bekommen, obwohl man seine Haut gerade schützen wollte ist so ziemlich die unangenehmste Überraschung die es gibt. Und es kann einem den Urlaub gründlich verderben, wenn man die Allergie nicht schnell behandelt. Es gibt Antiallergika, die man umgehend einnehmen sollte. Auch eine spezielle Fettcreme hilft die irritierte Haut wieder auf Kurs zu bringen.

Was ich der Industrie vorwerfe ist der leichtfertige Umgang mit den Zutaten. Hier scheinen echte Künstler am Werk zu sein, die gerne zig Stoffe mischen, ohne Rücksicht darauf, dass das später mal auf der Haut landen wird von Millionen von Menschen. Um Titandioxid sollte man vermutlich einen großen Bogen machen. Frankreich hat den Stoff bereits im April 2019 verboten. Aber auch Octocrylene scheint nicht unproblematisch, insbesondere, wenn man zuvor einmal mit Ketoprofen-Produkten in Berührung gekommen ist.

Mein persönliches Fazit lautet: Man sollte extrem vorsichtig sein, was man überhaupt an seine Haut ranlässt. Einmal mit einem problematischen Stoff in Berührung gekommen, kann dies offenbar zu einer Sensibilisierung führen die einen das gesamte Leben hindurch begleiten kann. Daher ist hier Vorsicht die Mutter der Porzellankiste. Keine neuen Substanzen auf die Haut lassen wenn es nicht absolut notwendig ist. Gerade bei Cremes und Gels und klebrigen Materialien extreme Vorsicht walten lassen und im Zweifel darauf verzichten. Als Grundregel sollte man zudem JEDES Jahr die Sonnenschutzprodukte neu kaufen. Denn die Haltbarkeit nach Öffnung beträgt bei keinem der Produkte länger als 12 Monate.

Als Produktempfehlung für mich halte ich mich zunächst an das Rossmann Produkt und sonst werde ich mal Daylong Extreme ausprobieren, wenn es nötig sein sollte, denn das scheint weder Octocrylene noch Titandioxid zu enthalten.

Was ich übrigens ebenfalls eine Frechheit finde, ist, dass auf einem Teil der Sonnencremeprodukte ein ominöses Symbol prangt, dessen Bedeutung ich mir von meiner Freundin erklären lassen musste. Es ist eine Art symbolisierter Topf mit Deckel und einer Zahl mit Buchstabe daneben. Dieses Symbol bedeutet, dass das Produkt „12 Monate nach Öffnung“ haltbar ist. Welcher Politiker sich da von der Industrie hat über das Ohr hauen lassen, hier von gängiger Kennzeichnung abzuweichen, der hat sich seinen eigenen Deppen-Award verdient. Ich würde jede Wette eingehen, dass nichtmal jeder zweite Mann weiß was dieses Symbol bedeutet. Frauen die öfter mit Kosmetika hantieren wissen das vielleicht eher, ich wusste es definitiv nicht.