# Vorhersage / Prognose

[![ebene1_vorhersage.png](https://casa.corrently.de/uploads/images/gallery/2020-07/scaled-1680-/ebene1_vorhersage.png)](https://casa.corrently.de/uploads/images/gallery/2020-07/ebene1_vorhersage.png)

Die Vorhersage in Ebene 1 erfolgt durch Fortschreibung der [Prognose in Ebene 0](https://casa.corrently.de/books/ebenen-modell/page/vorhersage-prognose "Vorhersage / Prognose"). Basierend auf den Ebene 0 Werten, wird der Speicherfüllstand vorhergesagt und die flexiblen Lasten ergänzt.

Funktion Vorhersage SoC und Flex Integration

```JavaScript
let saldo = flow.get("Saldo") - flow.get("Consumption");
let options = global.get("FlexOptions");

for(let i=0; i<msg.payload.length;i++) {
    msg.payload[i].measurement = "e1forecastSaldo";
    let w = (-1) * msg.payload[i].fields.w;
    let flex = 0;
    
    if(i<24) {
        for(let j=0;j<options.length;j++) {
             w -= options[j][i];
             flex += options[j][i];
        }        
    }
    
    
    if(w > 2000) w = 2000;
    if(w < -2000) w = -2000;
    
    if(saldo + w > 5500) w = 5500-saldo;
    if(saldo + w < 0) w = saldo;
    
    saldo += w;
    
    msg.payload[i].fields.w -= w;
    msg.payload[i].fields.flex = flex;
    msg.payload[i].fields.wh = saldo;

}

flow.set("forecastSaldo",msg.payload);
node.status({text:""+new Date().toLocaleString()});
return msg;
```

Optionen für Flexibilitäten werden im globalen Array `FlexOptions` gehalten (Zeile 2). Dort gespeichert werden sie durch das individuelle Fahrplanmanagement zum Gerät. Diese einzelnen Vorhersagen werden vor der Berücksichtigung des Speichers integriert (Zeile 9-14).

Eine Besonderheit hier ist, dass der Speicher der Referenzimplementierung maximal mit 2.000 beladen und entladen werden kann. Entsprechend kann der Speicherfüllstand innerhalb von einer Stunde maximal um +/- 2 kWh verändert werden (Zeile 17-18).