Ich habe hier ein Shelly-Skript mit Versuch-und-Irrtum zusammengebastelt, was erstaunlicher Weise funktioniert (ich habe keine Programmierkenntnisse).
Ich verwende einen Shelly Plus 1 + Add-on + DHT22-Sensor.
Das Skript fragt Temperatur und Luftfeuchtigkeit ab und errechnet den Taupunkt:
function Loop(){
try{
let a = 17.27; // Konstante für die Magnus-Formel
let b = 237.7; // Temperaturkonstante in der Magnus-Formel
function calculateDewPoint(t, rh) {
// Berechnung des Sättigungsdampfdrucks
let gamma = (a * t) / (b + t) + Math.log(rh / 100.0);
// Berechnung des Taupunkts basierend auf dem Sättigungsdampfdruck
let dp = (b * gamma) / (a - gamma);
return dp;
}
let temp= Shelly.getComponentStatus('Temperature', 100).tC;
let humidity= Shelly.getComponentStatus('Humidity', 100).rh;
let dewPoint = calculateDewPoint(temp, humidity);
print("Temperatur: ", temp, "°C");
print("Luftfeuchtigkeit: ", humidity, "%");
print("Taupunkt: ", dewPoint.toFixed(2), "°C");
}catch(e){print(e);}
}
Timer.set(2000,true,Loop);
Alles anzeigen
Was ich noch nicht erreicht habe:
Der Taupunkt soll anhand eines Referenzwerts überwacht werden, d.h. dieser wird definiert oder durch einen weiteren Sensor gemessen (z.B. am Vorlauf des Heizkreises).
Bei Erreichen/Unterschreiten des Taupunkts soll
=> eine Nachricht oder besser ein Alarm über die Shelly-App erfolgen
=> der Shelly 1 Plus soll schalten, z,B. bei meiner Wärmepumpe müßte der potentialfreie Kontakt geöffnet werden, um die Kühlung zu unterbrechen
Vielleicht kann jemand das Skript helfen zu ergänzen.
Ich freue mich auf eure Beiträge.