hey leute.
Ich habe ein Thermostat eingerichtet, mit dem ich ja meine Heizung steuere. Heute habe ich den Shelly uni gegen einen Shelly Plus Uni getauscht.
Dieser unterstützt ja auch Skripte.
Nun Will ich gerne über ein Skript, dass mein Thermostat automatisch über einer gewissen Temperatur deaktiviert wird und unter einer Temperatur wieder aktiviert wird.
Der Temperaturfühler hängt im Geräteschuppen als Addon an einem Shelly 1.
Ich habe schon mit Copilot versucht ein Skript zu erstellen, was aber nicht funktioniert.
Könnt ihr mir dabei helfen? Kann ja eigentlich so schwer nicht sein, nur das ich von programmieren null Ahnung habe 
Was für mich noch wichtig ist: Ist es egal auf welche shelly mein script läuft?
Info:
Sensor hängt an: 192,168,178,202
Sensor-ID: 101
Script läuft auf: 192,168,178,39 kanal 1
Thermostat ID: 1727380077147
Mfg
Marcel
Code
// Konfiguration
let upperLimit = 25; // ab dieser Temperatur Schema AUS
let lowerLimit = 20; // unter dieser Temperatur Schema EIN
let schemaID = 1727380077147; // deine Schema-ID
let thermostatOn = null; // Merkt sich den aktuellen Zustand
let sensorID = 101; // Außensensor-ID (z. B. 100)
// Temperatur prüfen
function checkTemperature() {
Shelly.call("Temperature.GetStatus", { id: sensorID }, function(result) {
if (result && result.tC !== undefined) {
let temp = result.tC;
print("Außentemperatur: " + temp + " °C");
if (temp > upperLimit && thermostatOn !== false) {
Shelly.call("Schedule.Update", { id: schemaID, enable: false });
thermostatOn = false;
print("Schema AUS (über " + upperLimit + " °C)");
} else if (temp < lowerLimit && thermostatOn !== true) {
Shelly.call("Schedule.Update", { id: schemaID, enable: true });
thermostatOn = true;
print("Schema EIN (unter " + lowerLimit + " °C)");
} else {
print("Keine Änderung – Zustand bleibt erhalten");
}
} else {
print("Keine Temperaturdaten verfügbar");
}
});
}
// --- Startprüfung beim Booten ---
checkTemperature();
// --- Regelmäßige Prüfung alle 5 Minuten ---
Timer.set(300000, true, checkTemperature);
Alles anzeigen