Scripterstellung in Verbindung mit externer Webadresse

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

  • Guten Tag,

    ich habe folgendes Anliegen. Ich habe ein Shelly 1 Plus mit einem Addon verbunden und dort den Temperatur/Feuchtigkeitssensor angeschlossen. Funktioniert soweit gut.

    Nun möchte ich eigentlich bei einer Überschreitung eines bestimmten Werte der Luftfeuchtigkeit z-wave gesteuerte Ventilatoren aktivieren. Diese sind in einem hom.ee System eingebunden.

    Meine Frage gibt es eine Möglichkeit über ein Script an eine bestimmte Web-Adresse (in diesem Fall ist es der Webhook von Homee) anzusprechen. Wenn wo kann ich dazu eine Aneitung finden.

    Vielen Dank für Eure Hilfe.

    Grüße

    Michael

  • Meinst Du sowas:

    server_url_c ist die Serveradresse:
    https://www.domain.de/cgi/script.pl

    body_string_v ist die Payload:
    also dass, was hinter obigem Script steht.

  • 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);

  • Dieses Thema enthält 9 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.