Shelly Plug + mit Tibber Puls Überschussladen

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