Selbstverständlich ist Linearität die wichtigste anzustrebende Eigenschaft. Nach meinen Erfahrungen mit der Analog-Digital-Umsetzung eines ESP32 ist diese Linearität ausschließlich im großen mittleren Messbereich zufriedenstellend, an den Rändern eher verfälscht. Ich kann nur vermuten, dass auch in den Shelly mit AddOn die ESP32 interne ADU genutzt wird, was letztlich unwesentlich ist. Bei hohen Anforderungen der Linearität ist diese ADU ungeeignet. Zur Verbesserung, d.h. feinstufigeren Korrekturen sind folgende Mittel geeignet, allerdings auch aufwändig. Diese notiere ich nur der Vollständigkeit wegen.
- Messreferenz mit hoher Genauigkeit, um feinschrittige Messfehler des Shelly zu ermitteln - in der etwas naiven, aber nicht ganz unbegründeten Hoffnung, dass diese Messfehler bei allen Shelly sehr ähnlich sind.
- Ein Skript, in welchem eine Tabelle aus Stützpunkten genutzt wird. Diese Stützpunkte müssen eine mehr oder weniger feinschrittige Korrekturfunktion abbilden, mit welcher Fehler der ADU verringert werden kann.
Im Rahmen von Feuchtigkeitsmessungen halte ich einen solchen Aufwand für unangemessen. Hier dürfte es genügen, den Custom Expression für Schwellenwerte in Actions zu nutzen. Ich bevorzuge Skripte, weil diese mehr Möglichkeiten bieten als Actions.
Zugegeben, ein vom TE festgestelltes Offset im Bereich des oberen ADU Grenzwertes ist unbefriedigend. Vermutlich ist dieser der ESP32 ADU geschuldet, also dem implementierten AD Umsetzverfahren oder der Nichteinschränkung auf den weitgehend linearen Bereich. Hier könnte der Anbieter optional eine Konfiguration von Grenzwerten anbieten, zwischen denen die Umsetzung als hinreichend valide gilt. Eine weitergehende Möglichkeit sehe ich im Rahmen eines vertretbaren Aufwandes nicht. Perfektion gibt es halt bei menschlichen Konstrukten nicht. ![]()
Für die übliche Anwendung sehe ich hierin allerdings kein Problem.
Btw, der Messbereich des SMT50 ist auch stark eingeschränkt, jedenfalls stärker als der des SMT100.