Template Sensor Berechnung

Hallo Zusammen,

kann mir jemand dabei helfen folgende Berechnung in einen template Sensor zu schreiben?

 calcTemp: function (voltage) {
     const constVoltage = 10;
     const R1 = 10000;
     const A = 0.000618353611051952;
     const B = 0.00032943669584351726;
     const C = -2.9274756803753964e-7;
 
     const R2 = R1 * (voltage / (constVoltage - voltage));
     const logR2 = Math.log(R2);
     let T = 1.0 / (A + (B + C * logR2 * logR2) * logR2);
     T = T - 273.15; // Celcius
 
     return T;

Die Variable voltage ist eine Entität von einem Shelly und T ist dann der Wert des Template Sensors.

Ich stehe irgendwie auf Kriegsfuß mit den template Sensoren und weiß nicht mal wie ich genau anfange.

Vielen Dank für eure Unterstützung.

Versuche es mal so:

          {% set voltage = states('sensor.your_voltage_sensor') | float(0) %}
          {% set constVoltage = 10 %}
          {% set R1 = 10000 %}
          {% set A = 0.000618353611051952 %}
          {% set B = 0.00032943669584351726 %}
          {% set C = -2.9274756803753964e-7 %}
          {% if 0 < voltage < constVoltage %}
            {% set R2 = R1 * (voltage / (constVoltage - voltage)) %}
            {% set logR2 = R2 | log %}
            {% set T = 1.0 / (A + (B + C * logR2 * logR2) * logR2) %}
            {{ T - 273.15 }}
          {% else %}
            unknown
          {% endif %}

Ich habe deine Funktion durch ChatGPT in den Template-Code umwandeln lassen und nur beim Float den Default 0 ergänzt, da dadurch ein Fehler vermieden wird, wenn der Sensor mal “unknown” oder “unavailable” ist.

2 „Gefällt mir“

Hat perfekt funktioniert. Danke dir.