Gute Frage, Nein ich hoffe, das er die Excel Tabelle für den ganzen Tag (Daten) mit exportieren kann. Ja vielleicht hast du recht. Ich glaube ich brauch noch ein paar Wochen aber vielleicht werde ich mir HA + Mini PC auch zu Gemüte führen. Mal sehen! glg aus Wien
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.");
}
}