Beiträge von Alex1220

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.

    Danke für den Input aber wenn ich das richtig verstehe heist HA immer Mini PC bzw. Rasberry Pi o. ä. . D. h. finanzieller Aufwand und auskennen tu ich mich mit dem Rasberry Pi & HA auch nicht, aber mit Excel schon, d. h ich nehme an, ich bin ich weit schneller mit Makros usw. zu visualisieren als mit R PI & HA zu lernen. Klar , ich weiß halt nicht wilange R Pi & HA zeit zum einlernen benötigen!

    Hallo, Ja noch machts es das nicht möglich (schade) aber wenigstens gibt es Vertrauen, sodass man einen Versuch startet. Vielleicht komplettiere ich es ja mit Euer Hilfe.

    Das Skript läuft (1 mal täglich) Online über einen Trigger auf Google Apps Scrips. Ich könnte es auch wenn nötig auf meinem Arbeitscomputer machen (tagsüber eingeschaltet) und die Triggerzeit verändern, da Rasperry PI werde ich mir momentan nicht kaufen für sowas aber ich glaube und hoffe, dass es so auch funktioniert.

    Hallo Leute bin neu hier und auch nicht fit mit dem coden aber Chat-gtp usw. machts möglich.

    Ich habe einen Shelly PM1 Plus mit Add on bei meiner Ölheizung installiert (funktioniert super) um hauptsächlich diese zu kontrollieren>>> noch kein Eingriff in die Heizungssteuerung (momentan auch nicht erwünscht). Meine Sensoren sind DS18b20. D. h. genauer Leitungstemperatur (100), Warmwasserspeichertemp. (101) Vorlauf (102) & Rückauftemp. (103) und Warmwasserkreis (104).

    Wichtig und wenn ich das richtig versehe relativ leicht möglich, wäre jetzt ein Google Apps skript zu schreiben (Versuch siehe unten), dass einmal Täglich (23.59 Uhr) die Tagestemperaturenhistorie (Minimal und Maximalwert). Daten von allen 5 Sensoren ausliest bzw. mir in meine Google sheets tabelle (Shelly) ausgibt.

    Danach würde ich natürlich gerne mit Makros usw. diese Daten verwenden und Heizenergie (kWh & Heizkosten) täglich automatisiert auswerten, sowie ein paar Diagramme machen. Dies ist aber momentan nicht das Problem.

    Mein Problem ist, dass er mir mit meinem fabrizierten Code keine Daten ausliest bzw. nicht ins Test sheet von Google schreibt (3x jede dritte Spalte). Server, ID, API-Key usw. habe ich natürlich verändert. Hat jemand eine Ahnung was in meinem Google apps script falsch ist?

    Ausführungsprotokoll

    12:35:47

    Hinweis

    Ausführung begonnen

    12:35:49

    Hinweis

    Ausführung abgeschlossen


    // Funktion zur Erstellung eines täglichen Triggers

    function createDailyTrigger() {

      ScriptApp.newTrigger('grabDailyData')

    .timeBased()

    .atHour(23) // Festlegen der Stunde (23 Uhr)

    .nearMinute(59) // Festlegen der Minute (59 Minuten nach der Stunde)

    .everyDays(1) // Jeden Tag ausführen

    .create();

    }


    // Funktion zum Abrufen und Speichern der Temperaturdaten von Shelly

    functiongrabDailyData() {

      vartemperatureData = [];

      varsensorIds = [100, 101, 102, 103, 104]; // IDs der 5 Sensoren

      vartimestamp = newDate(); // Aktuelles Datum

      varsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Shelly Datatabelle Test');


      // API für jeden Sensor abfragen

      for (var i = 0; i < sensorIds.length; i++) {

        try {

          var sensorId = sensorIds[i];

          var url = 'https://shelly-xxx-eu.shelly.cloud/device/status?…xxxxxxx&sensor=' + sensorId;

          var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});

          var data = JSON.parse(response.getContentText());


          // Überprüfen, ob Temperaturdaten für den Sensor vorhanden sind

          if (data.device_status && data.device_status.temperature) {

            vartemperature = data.device_status.temperature; // Temperaturwert des Sensors

            temperatureData.push(temperature); // Temperatur speichern

    } else {

            Logger.log("Keine Temperaturdaten für Sensor " + sensorId + " verfügbar.");

    }

    } catch (e) {

          Logger.log("Fehler beim Abrufen der Daten für Sensor " + sensorId + ": " + e);

    }

    }


      // Temperaturdaten in das Tabellenblatt einfügen (jede dritte Spalte A, D, G, ...)

      if (temperatureData.length > 0) {

        var lastRow = sheet.getLastRow();

        var dataRow = [new Date()]; // Erstes Element ist das aktuelle Datum

        varcolumnOffset = 0;


        // Temperaturdaten in jede dritte Spalte einfügen (Spalten A, D, G, ...)

        for (var j = 0; j < temperatureData.length; j++) {

          var col = 1 + (j * 3); // A=1, D=4, G=7, usw.

          sheet.getRange(lastRow + 1, col).setValue(temperatureData[j]);

    }


        // Datum in die erste Spalte einfügen (A-Spalte)

        sheet.getRange(lastRow + 1, 1).setValue(timestamp);

    } else {

        Logger.log("Keine Daten zum Einfügen verfügbar.");

    }

    }