Skip to content

Commit

Permalink
auto
Browse files Browse the repository at this point in the history
  • Loading branch information
zoernert committed Sep 10, 2024
1 parent 42ab76c commit 7d0761c
Show file tree
Hide file tree
Showing 2 changed files with 129 additions and 0 deletions.
73 changes: 73 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,75 @@
# gsi_verbrauchempfehlung
Beispiel für die Nutzung des GrünstromIndex als Empfehlung für Zeiten zur Stromnutzung

*Ich möchte ein einfaches Javascript erstellen, welches mir eine Empfehlung gibt, wann ich in den kommenden 24 Stunden mehr Strom verbrauchen sollte und wann weniger. Datenquelle ist der GrünstromIndex unter https://api.corrently.io/v2.0/gsi/prediction?zip=69256, wobei 69256 die Postleitzahl meines Ortes ist. Im Ergebnis des API Aufrufs gibt es einen Array von Objekten mit dem Namen "forecast", der den Wert GrünstromIndex für eine Stunde (Feld timeStamp) im Feld "gsi" enthält. Auf meiner Webseite soll die Stunde mit dem höchsten GSI Wert in den kommenden 24 Stunden ausgegeben werden als die Stunde, bei dem viel Strom aus erneuerbarer Energie stammt. Das Javascript sollte sich einfach in eine Webseite implementieren lassen.*

## Claude.AI
Gerne erstelle ich ein einfaches JavaScript für Sie, das die gewünschte Funktionalität bietet. Ich werde ein Script erstellen, das die Daten vom GrünstromIndex API abruft, analysiert und die Empfehlung für den Stromverbrauch ausgibt.

```Javascript
// Funktion zum Abrufen und Analysieren der GrünstromIndex-Daten
async function getGruenstromEmpfehlung(plz) {
const url = `https://api.corrently.io/v2.0/gsi/prediction?zip=${plz}`;

try {
const response = await fetch(url);
const data = await response.json();

// Finden der Stunde mit dem höchsten GSI-Wert in den nächsten 24 Stunden
const jetzt = new Date();
const in24Stunden = new Date(jetzt.getTime() + 24 * 60 * 60 * 1000);

let maxGSI = -1;
let maxGSIZeit = null;

data.forecast.forEach(stunde => {
const stundeZeit = new Date(stunde.timeStamp);
if (stundeZeit >= jetzt && stundeZeit <= in24Stunden && stunde.gsi > maxGSI) {
maxGSI = stunde.gsi;
maxGSIZeit = stundeZeit;
}
});

if (maxGSIZeit) {
return `Die beste Zeit für hohen Stromverbrauch ist am ${maxGSIZeit.toLocaleDateString()} um ${maxGSIZeit.toLocaleTimeString()} Uhr mit einem GrünstromIndex von ${maxGSI}.`;
} else {
return "Keine Daten für die nächsten 24 Stunden verfügbar.";
}
} catch (error) {
console.error('Fehler beim Abrufen der Daten:', error);
return "Fehler beim Abrufen der GrünstromIndex-Daten.";
}
}

// Funktion zum Anzeigen der Empfehlung auf der Webseite
function zeigeEmpfehlung(plz) {
const empfehlungElement = document.getElementById('gruenstrom-empfehlung');
empfehlungElement.textContent = 'Lade Empfehlung...';

getGruenstromEmpfehlung(plz).then(empfehlung => {
empfehlungElement.textContent = empfehlung;
});
}

// Beispielaufruf (kann in Ihre Webseite integriert werden)
zeigeEmpfehlung('69256');
```

Dieses JavaScript kann einfach in Ihre Webseite integriert werden. Hier sind die Schritte, um es zu implementieren:

1. Fügen Sie folgenden HTML-Code an der Stelle ein, wo die Empfehlung angezeigt werden soll:
```
<div id="gruenstrom-empfehlung"></div>
```
Fügen Sie das obige JavaScript in ein `<script>`-Tag am Ende Ihres `<body>`-Tags ein oder in eine separate .js-Datei, die Sie in Ihre HTML-Seite einbinden.

Rufen Sie die Funktion `zeigeEmpfehlung('69256')` auf, wenn die Seite geladen ist oder wenn Sie die Empfehlung anzeigen möchten. Sie können die Postleitzahl nach Bedarf ändern.

Das Script macht Folgendes:

- Es definiert eine asynchrone Funktion getGruenstromEmpfehlung, die die Daten vom API abruft und analysiert.
- Es findet die Stunde mit dem höchsten GSI-Wert in den nächsten 24 Stunden.
- Es gibt eine Empfehlung mit Datum, Uhrzeit und GSI-Wert zurück.
- Die Funktion zeigeEmpfehlung ruft getGruenstromEmpfehlung auf und zeigt das Ergebnis auf der Webseite an.

Dieses Script ist einfach zu implementieren und sollte die gewünschte Funktionalität bieten. Wenn Sie Fragen haben oder Änderungen wünschen, lassen Sie es mich wissen!
56 changes: 56 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<html>
<head>
<title>gsi_verbrauchempfehlung</title>
</head>
<body>
<div id="gruenstrom-empfehlung"></div>
</body>
<script>
// Funktion zum Abrufen und Analysieren der GrünstromIndex-Daten
async function getGruenstromEmpfehlung(plz) {
const url = `https://api.corrently.io/v2.0/gsi/prediction?zip=${plz}`;

try {
const response = await fetch(url);
const data = await response.json();

// Finden der Stunde mit dem höchsten GSI-Wert in den nächsten 24 Stunden
const jetzt = new Date();
const in24Stunden = new Date(jetzt.getTime() + 24 * 60 * 60 * 1000);

let maxGSI = -1;
let maxGSIZeit = null;

data.forecast.forEach(stunde => {
const stundeZeit = new Date(stunde.timeStamp);
if (stundeZeit >= jetzt && stundeZeit <= in24Stunden && stunde.gsi > maxGSI) {
maxGSI = stunde.gsi;
maxGSIZeit = stundeZeit;
}
});

if (maxGSIZeit) {
return `Die beste Zeit für hohen Stromverbrauch ist am ${maxGSIZeit.toLocaleDateString()} um ${maxGSIZeit.toLocaleTimeString()} Uhr mit einem GrünstromIndex von ${maxGSI}.`;
} else {
return "Keine Daten für die nächsten 24 Stunden verfügbar.";
}
} catch (error) {
console.error('Fehler beim Abrufen der Daten:', error);
return "Fehler beim Abrufen der GrünstromIndex-Daten.";
}
}

// Funktion zum Anzeigen der Empfehlung auf der Webseite
function zeigeEmpfehlung(plz) {
const empfehlungElement = document.getElementById('gruenstrom-empfehlung');
empfehlungElement.textContent = 'Lade Empfehlung...';

getGruenstromEmpfehlung(plz).then(empfehlung => {
empfehlungElement.textContent = empfehlung;
});
}

// Beispielaufruf (kann in Ihre Webseite integriert werden)
zeigeEmpfehlung('69256');
</script>
</html>

0 comments on commit 7d0761c

Please sign in to comment.