Guten Morgen, habe mal das Script etwas modifiziert für meine Anwendung : Bei Überschreiten einer Schwellenwertes der Luftfeuchtigkeit soll ein Webhook versendet werden damit in meinem Homee System ein Ventilator angeht.
Nur scheinbar sc heint es ein Problem beim Versenden zu geben. Der Webhook im Browser eingegeben löst die gewünschte Reaktion aus, so dass es nicht am Webhook selbst liegen kann.
Könntet Ihr mir mal helfen den Fehler zu finden. Danke im Voraus.
// Konfigurierbare Variablen
let humidityThreshold = 41; // Schwellenwert für die Luftfeuchtigkeit in %
let webhookUrl = "https://192.168.178.89/api/v2/webhook…NJ&event=Keller"; // URL des Webhooks
let checkInterval = 60; // Intervall in Sekunden für die Messung
// Funktion zum Versenden des Webhooks
function sendWebhook(humidity) {
Shelly.call(
"HTTP.POST",
{
url: webhookUrl,
body: JSON.stringify({ humidity: humidity }),
headers: { "Content-Type": "application/json" },
},
function (response, error_code, error_msg) {
if (error_code === 0) {
print("Webhook erfolgreich gesendet: ", response);
} else {
print("Fehler beim Senden des Webhooks: ", error_msg);
}
}
);
}
// Funktion zur Überwachung der Luftfeuchtigkeit
function checkHumidity() {
Shelly.call(
"http.get",
{ url: "http://localhost/rpc/Sensor.GetStatus?id=0" }, // Sensorstatus abrufen
function (result, error_code, error_msg) {
if (error_code === 0) {
let sensorData = JSON.parse(result.body);
if (sensorData.aHum && sensorData.aHum > humidityThreshold) {
print("Luftfeuchtigkeit überschreitet Schwellenwert: ", sensorData.aHum);
sendWebhook(sensorData.aHum);
} else {
print("Luftfeuchtigkeit im Normalbereich: ", sensorData.aHum);
}
} else {
print("Fehler beim Abrufen der Sensordaten: ", error_msg);
}
}
);
}
// Wiederholter Aufruf der Überwachungsfunktion
Timer.set(checkInterval * 1000, true, checkHumidity);