Beiträge von Frank Freiburg

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.

    Hallo, hat mir jemand ein funktionierendes Skript, mit welchem ich Überschussladen machen kann. Dies mit Tibber und dem Tibber Puls. Ziehl ist es bei Überschuss ein Ladegerät mit Shelly Plug + zu starten. Tibber ID und Token ist vorhanden. Alle gefundenen Vorlagen funktionieren nicht. Lege einmal ein Muster Skript unten bei- welches leider nicht schaltet.

    // Konfigurationswerte
    let tibberApiUrl = "https://api.tibber.com/v1-beta/gql"; // Tibber API URL
    let tibberApiToken = "xxxxxx mein Token xxxxxx"; // Tibber API Token
    let refreshInterval = 30; // Datenabrufintervall in Sekunden
    let shellyPlugRelayIndex = 0; // Index des Relays im Shelly Plug (meist 0)

    function getEnergyPriceQuery() {
    return JSON.stringify({
    query: "{\n viewer {\n homes {\n currentSubscription {\n priceInfo {\n current {\n total\n }\n }\n }\n }\n }\n}"
    });
    }

    function controlSwitchBasedOnPrice() {
    Shelly.call(
    "HTTP.POST",
    {
    url: TIBBER_CONFIG.apiEndpoint,
    method: "POST",
    headers: {
    "Authorization": "Bearer " + TIBBER_CONFIG.accessToken,
    "Content-Type": "application/json"
    },
    body: getEnergyPriceQuery()
    },
    function (response) {
    if (response.code === 200) {
    let data = JSON.parse(response.body);
    let power = data.viewer.home.power; // Aktuelle Leistung in Watt
    handlePowerData(power);
    } else {
    print("Fehler beim Abrufen der Tibber-Daten:", response.code, response.body);
    }
    }
    );
    }

    // Funktion zur Verarbeitung der Leistungsdaten
    function handlePowerData(power) {
    if (power < 0) {
    // Überschüssiger Strom wird eingespeist
    print("Einspeisung erkannt: ", power, "Watt - Shelly Plug einschalten.");
    Shelly.call("Switch.Set", { id: shellyPlugRelayIndex, on: true });
    } else {
    // Kein Überschuss oder Verbrauch
    print("Kein Überschuss erkannt: ", power, "Watt - Shelly Plug ausschalten.");
    Shelly.call("Switch.Set", { id: shellyPlugRelayIndex, on: false });
    }
    }

    // Regelmäßige Abfrage einrichten
    Timer.set(refreshInterval * 1000, true, function () {
    getTibberData();
    });

    print("Script gestartet. Abfrageintervall: ", refreshInterval, "Sekunden");