Beiträge von Wolfgang Rotschek

    Das Wall Display selbst unterstützt derzeit keine Scripts. Jedenfalls nicht über das Webinterface, obwohl die API-Funktionen offenbar vorhanden sind.

    Das Script läuft bei mir daher extern auf einem Shelly, welches auch den potentialfreien Kontakt für die Therme bereit stellt, sowie an dem der externe Sensor angeschlossen ist.

    Das Problem am Wall-Display ist, dass die interne Elektronik, sowie das Display, eine nicht unerhebliche Temperaturabweichung bewirken.

    Da die Rückgabe der Werte asynchron über Callback erfolgt, gibt es in der derzeitigen Fassung ein Delay von einem Timer-Intervall. Dazu kommt noch vermutlich eine gewisse Ungenauigkeit mit Rundungen, da die Sensoren die Werte mit zwei Dezimalstellen liefern, der Offset im WD, sowie die Anzeigen im WD aber mit nur einer Dezimalstelle arbeiten.

    Für Anwendungen mit hohen Anforderungen sicher ungeeignet. Für die Regelung einer Raumheizung aber sicher ausreichend. Und in jeden Fall wird die Temperaturdrift des Sensors im WD kompensiert

    Nach dem etwas enthusiastischen Weihnachsteinkauf und der ersten Ernüchterung zu den Problemen des internen Sensors kam natürlich nach dem Kauf des Shelly-Addons mit einem DS18B20 die zweite Ernüchterung, da sich ein DS18B20 nicht direkt als externer Sensor einbinden lässt.

    Aber frei nach dem Motto - "geht nicht, gibt es nicht", verhalf etwas Scripting zu einer funktionierenden Lösung.

    Neben dem Wall Display verwende ich dafür ein Plus1PM, welches mit dem Shelly-Addon verheiratet wurde, und an dem wiederum der DS18B20.

    Die Lösung über Script liegt darin, dass ich über ein Script im Plus1PM den Messwert aus dem Wall-Display mit dem Messwert vom DS18B20 vergleiche. Daraus wird der notwendige Offset für das Wall-Display berechnet und in das Wall-Display geschrieben. Somit hat man den Wert auch mit schwankenden Offset immer auf dem "richtigen" Wert. Es ist dadurch auch möglich, das Display eingeschaltet zu lassen, ohne dass der Messwert durch die Eigenerwärmung "davon läuft". Ein allfällig notwendige Kompensation (Offset) wird rein über den DS18B20 durchgeführt.

    In Summe sind drei RPC-Calls erforderlich um die erforderlichen Werte abzufragen, sowie ein Call um den neuen Offset zu setzen. Der Aufruf aller Funktionen erfolgt über einen Timer, wobei sichergestellt wird, dass alle drei Aufrufe zur Abfrage erfolgreich waren, bevor ein neuer Offset berechnet und geschrieben wird. Das Schreiben des neuen Offsets erfolgt dabei immer um einen Timer-Zyklus verzögert.

    Das Script ist sicher noch nicht perfekt. Es fehlt in jedem Fall noch die eine oder andere Fehlerprüfung. Insbesonders werden die Rückgabewerte der verschiedenen Calls nicht auf Plausibilität geprüft. Schlagend wird dieser Umstand aber nur, wenn die IP für das Wall-Display auf einen anderen Shelly zeigt.